{"uid":"cap_ZktRr7LRe43mjVz4jfCvr","slug":"agent-screenshot-hub-full-page-snapshot-c6adf6c4","name":"Agent Screenshot Hub - Full Page Snapshot","description":"One page load answers everything an agent needs to reason about a page: the DOM after JavaScript capped at 2 MB, the CDP accessibility tree flattened with parent references, every link with rel and target and an internal or external verdict, every form field with its label and autocomplete hint, console errors and warnings with source and line, a screenshot, navigation timings and a summary of the requests the page fired. Chrome runs without credentials, without cookies and without login, so a s","url":"https://shot.halowerk.com/snapshot?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Absolute http or https URL to render."},"include":{"type":"array","items":{"enum":["dom","a11y","links","forms","console","screenshot"],"type":"string"},"default":["dom","a11y","links","forms","console","screenshot"],"description":"Which parts to return. Omit for all of them. Leaving parts out makes the answer smaller, not cheaper: the page is loaded once either way."},"wait_ms":{"type":"integer","default":0,"maximum":8000,"minimum":0,"description":"Wait this long after the page is ready before reading it. Counts against the 20 second budget, it is not added on top."},"viewport":{"type":"object","properties":{"width":{"type":"integer","default":1280,"maximum":2560,"minimum":360},"height":{"type":"integer","default":800,"maximum":2000,"minimum":360}},"description":"Viewport in CSS pixels. Default 1280x800.","additionalProperties":false},"full_page":{"type":"boolean","default":false,"description":"Capture the whole document instead of the viewport. Same price on this endpoint."},"wait_until":{"enum":["load","domcontentloaded","networkidle"],"type":"string","default":"networkidle","description":"When the page counts as ready. networkidle waits until at most two connections stay open for half a second, which is what most JavaScript pages need."},"check_links":{"type":"boolean","default":false,"description":"Look up the HTTP status of up to 50 links with HEAD, without following redirects. No extra charge. Without this, links carry no status field."},"screenshot_format":{"enum":["png","webp","jpeg"],"type":"string","default":"webp","description":"Image format. webp is the smallest and keeps the answer under the size cap most often."},"screenshot_quality":{"type":"integer","default":80,"maximum":100,"minimum":1,"description":"Compression quality for webp and jpeg. Ignored for png."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.006","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.006/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.006","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.006","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_4mPlivx8qViSoSl1DnOnk","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.006","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Renders a URL in a headless Chrome browser and returns a comprehensive snapshot including DOM, accessibility tree, links, forms, console logs, screenshot, and network timings in a single request","exampleAgentPrompt":"Load https://example.com in a 1280x800 viewport, wait 2000ms for everything to settle, then give me the full rendered DOM, accessibility tree, all links with internal/external labels, any form fields, console errors, and a webp screenshot — I need everything to reason about that page.","exampleUseCases":[{"title":"Audit landing page accessibility","prompt":"Can you load https://acme.com/landing in a 1280x800 viewport and give me the full accessibility tree, all form fields with their labels, and any console errors so I can audit it for WCAG issues?"},{"title":"Extract and verify all page links","prompt":"Go to https://myblog.com/post/123, wait 1500ms after it loads, then pull all links with their internal or external verdict and check the HTTP status of each one — I want to find any broken links."},{"title":"Visual regression snapshot for CI","prompt":"Capture a full-page webp screenshot of https://staging.myapp.io/dashboard at a 1920x1080 viewport with networkidle load strategy so I can compare it against our baseline for visual regressions."}],"resultDescription":"A JSON object containing any combination of: the rendered DOM HTML (up to 2MB), a flattened CDP accessibility tree with parent references, an array of every link with rel, target, and internal/external classification (optionally with HTTP status), all form fields with their labels and autocomplete attributes, console errors and warnings with source file and line number, a base64-encoded screenshot in the requested format, and navigation timing metrics plus a summary of network requests fired during page load.","failureModes":["URL is unreachable or returns non-2xx — snapshot may be empty or partial","Page exceeds 20-second load budget — request times out","DOM exceeds 2MB cap — content is truncated","wait_ms plus page load time exceeds 20s budget — effective wait is reduced","Page requires authentication/cookies — content will reflect logged-out state only","check_links covers at most 50 links — excess links have no status field","Invalid URL format — 400 error returned","Screenshot quality out of 1-100 range — validation error"],"whenToPreferThis":"Choose this endpoint when an AI agent needs a rich, multi-signal snapshot of a public web page in a single call — combining visual screenshot, rendered DOM, accessibility tree, link graph, form metadata, and console diagnostics. It is especially valuable when the page relies heavily on JavaScript for rendering. Prefer it over standalone screenshot APIs when you also need structured data (links, forms, a11y). Prefer it over HTML-only scrapers when you need a visual artifact or console telemetry. Note it runs without credentials, so it is best suited for public or unauthenticated pages.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T06:39:59.179Z","isFirstParty":false,"canonicalSlug":"agent-screenshot-hub-full-page-snapshot-c6adf6c4"}