{"uid":"cap_ghQSm7UcCyQj60FSrE2rJ","slug":"x402-snap-browser-rendering-api-e347d637","name":"x402-snap Browser Rendering API","description":"Pay-per-call browser rendering for AI agents. Render any URL in a real headless browser and get back a full-page screenshot (PNG), a PDF, or the JavaScript-rendered HTML — solves the empty-shell problem when plain HTTP fetches hit client-rendered pages.","url":"https://x402-snap.zaden-gaming.workers.dev/snap?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public http/https URL to render"},"width":{"type":"integer"},"format":{"enum":["screenshot","pdf","html"],"type":"string","description":"What to return: PNG screenshot (base64), PDF (base64), or JS-rendered HTML (string)"},"height":{"type":"integer"},"waitMs":{"type":"integer","description":"Extra milliseconds to wait after page load before capturing"},"fullPage":{"type":"boolean","description":"Screenshot the full scrollable page instead of just the viewport"}}},"responseSchema":{"type":"object","required":["format","finalUrl"],"properties":{"html":{"type":"string","description":"Present for html format"},"base64":{"type":"string","description":"Present for screenshot and pdf formats"},"format":{"type":"string"},"status":{"type":["integer","null"],"description":"HTTP status of the target page"},"finalUrl":{"type":"string","description":"URL after any redirects"},"contentType":{"type":"string"}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_OhFGtQ6Za9JyhkSFD3NM3","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Renders any URL in a headless browser and returns a full-page screenshot (PNG), PDF, or JavaScript-rendered HTML for AI agents","exampleAgentPrompt":"Take a full-page screenshot of https://example.com — render it in a real browser so JavaScript executes, wait 2000ms for dynamic content to load, and give me back a PNG.","exampleUseCases":[{"title":"Scraping a client-rendered SPA","prompt":"Fetch the fully rendered HTML from https://app.mystore.com/products — it's a React app so a plain HTTP request just gives me an empty shell; I need the real DOM after JavaScript runs."},{"title":"Visual snapshot for compliance archiving","prompt":"Take a full-page PDF screenshot of https://terms.mycompany.com and give it back to me so I can archive what the page looked like today."},{"title":"Social media preview thumbnail","prompt":"Capture a viewport screenshot of https://myportfolio.dev at 1280 pixels wide and 800 pixels tall as a PNG — I want to use it as a preview thumbnail for my link."}],"resultDescription":"Returns a JSON object containing: the output format identifier, the final URL after redirects, and either a base64-encoded PNG or PDF (in the `base64` field) or a JavaScript-rendered HTML string (in the `html` field), plus the HTTP status of the target page and its content type.","failureModes":["Target URL is unreachable or returns a non-200 status — status field reflects the actual HTTP error code","Timeout if the page takes too long to load or waitMs is set too high","Invalid or non-public URL (e.g. localhost, private IP) rejected","Unsupported format value causes a format error","Page with heavy anti-bot protections (Cloudflare, CAPTCHAs) may not render correctly","Payment not completed — x402 payment required before rendering begins"],"whenToPreferThis":"Choose this endpoint when a plain HTTP fetch returns an empty or incomplete HTML shell because the page uses client-side JavaScript rendering (React, Vue, Angular, etc.), or when you specifically need a visual screenshot or PDF of a page rather than raw HTML. It is especially valuable for AI agents that need to see what a page actually looks like, archive a visual snapshot, or extract data from SPAs. Prefer it over static HTTP fetchers whenever JavaScript execution is required to see meaningful content.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-02T03:05:36.772Z","isFirstParty":false,"canonicalSlug":"x402-snap-browser-rendering-api-e347d637"}