{"service":"webcap","description":"Capture any URL as PNG/JPEG/PDF (+ free OG metadata), paid per-request in USDC via x402 (HTTP 402).","paymentProtocol":"x402","x402Version":2,"paidEndpoints":[{"method":"POST","path":"/v1/x402/capture","body":{"url":"string (required)","format":"png|jpeg|pdf (optional)","options":"object (optional) — render tuning: viewport, deviceScaleFactor, isMobile, userAgent, proxy, waitFor, actions"},"priceUsdc":0.001,"atomicUnits":"1000","note":"screenshot artifact (base64) + free OG metadata"},{"method":"POST","path":"/v1/x402/extract","body":{"url":"string (required, or urls: string[] up to 50 for a batch)","schema":"string (optional) — natural-language description of the JSON to extract; uses a model when one is configured","options":"object (optional) — capture tuning per URL: proxy, waitFor, actions, viewport, timeoutMs, fullPage"},"priceUsdc":0.01,"atomicUnits":"10000","note":"structured content (title, headings, paragraphs, links, images) as JSON; one payment covers a batch"},{"method":"POST","path":"/v1/x402/audit","body":{"url":"string (required)"},"priceUsdc":0.002,"atomicUnits":"2000","note":"SEO basics + link/OG health in one call"},{"method":"POST","path":"/v1/x402/map-lite","body":{"url":"string (required)","maxUrls":"integer (optional, default 20, at most 50) — maximum URLs to return"},"priceUsdc":0.002,"atomicUnits":"2000","note":"site URL list via sitemap/robots plus a 1-hop same-host crawl in one call"},{"method":"POST","path":"/v1/x402/video","body":{"url":"string (required)","format":"mp4|webm (optional, default mp4)","durationMs":"integer (optional, default 5000, at most 30000) — recording duration in milliseconds","scrollSpeed":"integer (optional, default 800, at most 5000) — pixels scrolled per choreography step","scrollEasing":"linear|ease-in-out (optional, default linear)","options":"object (optional) — viewport forwarded to the recording context"},"priceUsdc":0.005,"atomicUnits":"5000","note":"scroll-capture a URL as an MP4/WebM video in one call"},{"method":"POST","path":"/v1/x402/analyze","body":{"url":"string (required)","task":"classification|accessibility|layout|entities|sentiment (required)","context":"string (optional) — focus context for the analysis"},"priceUsdc":0.01,"atomicUnits":"10000","note":"AI-powered visual analysis of a page (model when configured, deterministic DOM fallback otherwise)"},{"method":"POST","path":"/v1/x402/analyze/batch","body":{"urls":"string[] (required, at most 10) — one payment covers the batch","task":"classification|accessibility|layout|entities|sentiment (required)","context":"string (optional)"},"priceUsdc":0.01,"atomicUnits":"10000","note":"batch AI analysis of up to 10 URLs under one payment"},{"method":"POST","path":"/v1/x402/watches/topup","body":{"watchId":"string (required)","runs":"100 (required; one pack)"},"priceUsdc":0.1,"atomicUnits":"100000","usdcMax":1,"note":"Pre-pay 100 scheduled monitor runs of an existing watch (capture-pack price shown; extract-pack is usdcMax; exact price quoted per watch via ?watchId=)"}],"price":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0xB25572D7317eb98EBb39c45Da40eAAEA2A56c25e","scheme":"exact"},"howToPay":"POST /v1/x402/capture, /v1/x402/extract, /v1/x402/audit, /v1/x402/map-lite, /v1/x402/video, /v1/x402/analyze, or /v1/x402/analyze/batch unpaid -> HTTP 402 with a base64 x402 v2 challenge (payment-required header) -> sign a gasless EIP-3009 transferWithAuthorization (from=your wallet, to=price.payTo, value=price.atomicUnits) -> retry with the PAYMENT-SIGNATURE header. The facilitator verifies + settles on-chain; USDC lands in the merchant wallet and the result is returned. Works with any x402 v2 client (@x402/axios) or scripts/x402-pay.ts (capture) / scripts/extract-pay.ts (extract). Free, no-payment preview: GET /v1/extract/preview?url=... (rate-limited).","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","freeEndpoints":[{"method":"GET","path":"/v1/og?url=...","note":"free OG metadata, no payment"},{"method":"GET","path":"/v1/extract/preview?url=...","note":"free bounded structured preview (rate-limited); the paid extract returns full text + images + batch + model"},{"method":"GET","path":"/v1/health","note":"liveness + chain"},{"method":"GET","path":"/v1/x402/trial/status?payer=...","note":"trial menu per wallet (claimed/available + the exact claim recipe)"},{"method":"GET","path":"/v1/x402/trial/quick?url=...","note":"no-wallet JPEG thumbnail, 3/day per IP; full trials need a wallet signature"},{"method":"POST","path":"/v1/x402/trial","note":"free full PNG capture trial, one per wallet — body {url, payer, signature} where signature is the EIP-191 personal_sign of \"Claim one free webcap trial capture for <lowercase-0x-address>\""},{"method":"POST","path":"/v1/x402/trial/extract","note":"free single-URL extraction trial, one per wallet (no schema/model/batch)"},{"method":"POST","path":"/v1/x402/trial/audit","note":"free SEO + link/OG health audit trial, one per wallet"},{"method":"POST","path":"/v1/x402/trial/map-lite","note":"free site-map trial capped at 10 URLs, one per wallet"},{"method":"POST","path":"/v1/x402/trial/analyze","note":"free deterministic single-URL analysis trial, one per wallet (model-backed analysis stays paid)"}]}