Turn Any Rendered Web Page Into Structured Data With the Analyze API

The v3/analyze endpoint takes the other route: it renders the page like a browser would, captures it, and hands back a structured payload describing what rendered, in one call…com”, “format”: “png”, “width”: 1280, “height”: 720, “waitForDom”: true, “enableSummary”: true, “…

Raw HTML is a poor description of what a page actually shows. Modern sites assemble their real content client-side — after the JavaScript runs, after the data loads, after the layout settles — so scraping the initial markup often gives you a shell, not the page a visitor sees. The v3/analyze endpoint takes the other route: it renders the page like a browser would, captures it, and hands back a structured payload describing what rendered, in one call.
That payload is the useful part. Instead of a screenshot you then have to look at, you get JSON your code can act on directly.
What Analyze Actually Returns
A single POST to /api/v3/analyze gives you both the capture and structured insights about it:
curl --request POST
--url https://api.prod.ss.snapshot-site.com/api/v3/analyze
--header 'Content-Type: application/json'
--header 'x-snapshotsiteapi-key: YOUR_API_KEY'
--data '{
"url": "https://example.com",
"format": "png",
"width": 1280,
"height": 720,
"waitForDom": true,
"enableSummary": true,
"enableQuality": true
}'
The response bundles the rendered screenshot with the structured data:
{
"status": "success",
"fetchTime": "2026-07-22T09:00:00.000Z",
"message": "Analysis completed",
"url": "https://example.com",
"screenshot": {
"link": "https://api.prod.ss.snapshot-site.com/screenshots/.../capture.png",
"width": 1280,
"height": 720
},
"summary": "A concise AI-generated description of what the page contains.",
"topics": [
"primary subject",
"secondary theme",
"notable detail"
],
"quality": {
"isBlank": false,
"hasCaptcha": false,
"httpStatus": 200,
"readabilityScore": 60
},
"fromCache": true
}
Three fields carry the structured data:
summary— an AI-generated description of the rendered page (returned whenenableSummaryistrue).topics— an array of key subjects extracted from the page content.quality— a set of validation signals (returned whenenableQualityistrue):isBlankflags an empty render,hasCaptchaflags a bot wall,httpStatusreports the response code, andreadabilityScoreestimates how legible the text is.
That is the shape of the “structured data” here: a fixed, predictable insight payload about the rendered page. It is not a scraper — you don’t define your own fields or CSS selectors to pull arbitrary values into a custom schema. Analyze reads the page and returns its structured summary, topics, and quality assessment. If you’re deciding between this and the plainer capture endpoints, Snapshot API v1 vs v2 vs v3: Which Endpoint Should You Use? lays out where each one fits.
Render First, Then Read
The reason this beats parsing HTML for so many pages is timing. analyze accepts the same rendering controls as the capture endpoints, so you can make sure the page is fully settled before anything is read from it:
waitForDomwaits for the DOM to stabilize before capture — useful on data-heavy pages that keep mutating after first paint.delay(0–10 seconds) buys extra time for content that loads late.hideCookieremoves common cookie banners so they don’t dominate the summary or block content.hidetakes comma-separated CSS selectors to strip noise (overlays, chat widgets, promo bars) before the page is read.fullSizecaptures the whole page rather than just the viewport.
If your target lazy-loads images or animates content into view, the same timing tactics from Waiting for Lazy-Loaded Images and Animations Before Screenshots apply directly — a summary generated from a half-loaded page is a summary of the wrong page.
Three Ways to Put It to Work
Content QA
Point analyze at a page after a deploy and check the quality block before a human ever looks. isBlank: true means the render came back empty — a broken build or a failed data fetch. hasCaptcha: true means a bot wall is intercepting your own monitoring. A low readabilityScore on a page that should be text-rich is a signal that the main content didn’t render. These are cheap, automatic gates that catch the failures screenshots alone make you eyeball.