Skip to main content
A batch scrapes many pages as one asynchronous job. Submit up to 25,000 URLs, or a crawl from a start URL or sitemap, and you get a batch ID right away. When the batch finishes, read each page’s Markdown or HTML as paginated JSON or download it as files.

What batches support

Every batch has one mode and one output format: Batches don’t return screenshots, images, bytes, parsed fields, highlights, JSON, or product data. They also don’t accept browser actions, custom headers, zdr, or timeoutOpts. For any of those, call Scrape once per URL.

Submit a URL list

This request scrapes two pages as Markdown. The examples read your API key from CONTEXT_DEV_API_KEY; the Quickstart shows how to create a key and install an SDK.
The API returns 202 with the new batch (trimmed):
Save id. input.submitted counts the URLs you sent. input.reserved counts the pages the batch will attempt once duplicates and invalid URLs are removed. The Idempotency-Key header makes a retried submit return this batch instead of creating a second one; see Idempotency.

Lifecycle

completed, cancelled, and failed are final. Poll the batch or add a webhook to find out when it reaches one, then read the results. See Status and results.

Access

A restricted API key needs batches:write to submit, cancel, or delete batches and to replay their webhook deliveries. batches:read covers status, results, the batch list, and delivery history. See API keys.

Choose an endpoint