parsed_data=true to /getPageSource and ScrapeUnblocker extracts structured data using the best available method for that page.
Request
Response shape
page_type
Detected category of the page:
product_detail- a single product (also films, books, apps)listing_detail- a single classified listing: vehicle, property, job, event, placerecipe_detail- a recipearticle_detail- a news story, blog post or wiki articlesearch_list- search results or a listing gridarticle_list- a list of articles or posts (news front page, forum)category_index- a category navigation pagehomepage- a site’s home pagereview_list- a page of reviews (Trustpilot, G2, Yelp, …)social_profile/social_post- a creator or brand profile, a single postnot_found- the target answered404/410(see below)unknown- the page could not be classified
data
The extracted fields. Field names are English snake_case whatever the language of the page, and every price is normalized to { "value": <number>, "currency": "<code>" }.
List pages (search_list, article_list, …) return the results as items, plus total and next_page (the URL of the next results page, or null on the last one).
Detail pages (*_detail) return the item’s fields at the top level, filled from the page’s own spec table, its labelled values and the Schema.org data it publishes (price, brand, rating, mileage, ingredients, salary, …). Next to them:
Use the top-level fields for values you read across many sites; use
specifications when you need a row the page shows that has no top-level field.
When nothing can be extracted
If the page exists and renders (a call withoutparsed_data would return 200 with its HTML) but no structured data can be extracted from it, the answer is still 200. The body keeps the usual data envelope with an empty data, says that nothing was extracted, and carries the rendered HTML so you can parse it yourself:
data_extracted (present only in this case) or an empty data.data. The call is billed like a call without parsed_data, since you receive the same page. Retrying returns the same result; if you expected data from this page, retry once with refresh_rules=true and a rules_hint.
A dead URL is different: when the target itself answers 404 / 410, you get that status with {"data": {"page_type": "not_found", "data": {}}} - see Dead URLs.
When parsed data is the right choice
Use it when you’re scraping a known page type at scale - products, listings, articles, recipes, jobs. Saves you from writing per-site parsers.
Combining with get_cookies
get_cookies=true takes precedence over parsed_data=true: with both set, you get the html + cookies + proxy JSON of a cookies call, without data. If you need structured data and cookies for the same page, make two calls.
See cookies and sessions.
