Scrape, batch, or crawl
Getting Started
Scrape, batch, or crawl
Unified endpoint for all read operations. Pass url for a single scrape, urls for a batch, or url + maxPages to crawl a site.
POST
Scrape, batch, or crawl
POST /v1/read is the unified content-extraction endpoint. It auto-detects the operation from the body:
- Single
url→ synchronous scrape, returned immediately in the response - Multiple
urls→ async batch job url+maxDepthormaxPages→ async crawl job
Proxy mode
SetproxyMode 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.
Idempotency
Pass anx-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.
Authorizations
Body
application/json
Example:
"https://example.com"
Required array length:
1 - 1000 elementsContent formats to include in the response.
Available options:
markdown, html Example:
["markdown"]Strip navigation, footers, and boilerplate. Default: true.
Required range:
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.
Available options:
standard, stealth, auto Example:
"auto"
Required range:
1 <= x <= 20Crawl depth (when crawling). Omit for single-URL scrape.
Required range:
1 <= x <= 10Maximum pages to discover during crawl.
Required range:
1 <= x <= 10000Reuse cached content within TTL. Default: true.

