Unified endpoint for all read operations. Pass url for a single scrape, urls for a batch, or url + maxPages to crawl a site.
POST /v1/read is the unified content-extraction endpoint. It auto-detects the operation from the body:
url → synchronous scrape, returned immediately in the responseurls → async batch joburl + maxDepth or maxPages → async crawl jobproxyMode to "standard" (1 credit, fast), "stealth" (3 credits, bypasses bot walls), or "auto" (default, which tries standard first and escalates to stealth on block). The response metadata tells you which mode actually ran. See Proxy modes.
x-idempotency-key header to deduplicate retried POSTs. Reader caches the original response for 24 hours and returns it verbatim on any subsequent request with the same key.
"https://example.com"
1 - 1000 elementsContent formats to include in the response.
markdown, html ["markdown"]Strip navigation, footers, and boilerplate. Default: true.
1000 <= x <= 120000Proxy mode for the scrape. standard is fast and affordable; stealth bypasses aggressive bot walls; auto picks automatically and only escalates to stealth when a block is detected. Default: auto.
standard, stealth, auto "auto"
1 <= x <= 20Crawl depth (when crawling). Omit for single-URL scrape.
1 <= x <= 10Maximum pages to discover during crawl.
1 <= x <= 10000Reuse cached content within TTL. Default: true.