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. Common values:
product- e-commerce product detail pagelisting- search results or category pagearticle- news, blog, or editorial contentjob- job postingreal_estate- property listingsocial_profile- a creator/brand profile on TikTok or Instagramsocial_post- a single TikTok video or Instagram post/reelunknown- extractor could not classify the page
source
Which extraction strategy produced the data:
data
The extracted fields. Schema depends on page_type. Field names are normalized across sources - a product always has title and price regardless of whether source is schema_org or ai_rule.
Social pages: TikTok and Instagram
TikTok and Instagram build their pages in the browser from a JSON payload embedded in the HTML, so there is very little in the markup to read. Both are handled by dedicated extractors that read that payload directly, which means the engagement numbers come back as exact integers rather than the rounded, prose-formatted values the page eventually paints (36K likes).
TikTok - a video URL returns page_type: "social_post":
page_type: "social_profile" with username, nickname,
bio, verified, avatar_url, followers, following, likes and videos.
Instagram - a post or reel URL returns page_type: "social_post" with
shortcode, caption, likes, comments, posted_at, media_type
(image / video / carousel), thumbnail_url, video_url, hashtags and an
author block. A profile URL returns page_type: "social_profile" with
username, full_name, biography, followers, following, verified,
external_urls and a recent_posts array.
Instagram does not include per-post engagement in the payload it serves on a
profile page, so
recent_posts[].likes and .comments are null there
rather than guessed at. Each entry carries a post url - fetch that for the
exact counts. TikTok profiles are the same: the profile carries account
totals, and per-video numbers come from the video URL.Verified against live payloads: a profile timeline node carries only
code, caption, display_uri, media_type and the author - Instagram
serves engagement for exactly one media per page, the one the page is about.
Both shapes also carry counts_hidden: on a post it is true when the
creator has turned like counts off, which tells a null you can act on apart
from one you cannot. On a profile grid it is null along with the counts,
because Instagram sends neither. posts_count is null on a logged-out
profile fetch for the same reason - the field is in the payload, sent empty.When parsed data is the right choice
Use it when you’re scraping a known page type at scale - products, articles, listings, jobs. Saves you from writing per-site parsers.
Combining with get_cookies
You can set both parsed_data=true and get_cookies=true on the same request. The response gains a cookies field and a proxy field alongside data:

