Skip to main content
When you have a list of URLs (from a sitemap, an RSS feed, a search result, or your own database), Reader’s batch mode is the efficient way to fetch them all. You submit one request with an array, get back one job, and process the results when it finishes.

The basic request

The SDK’s read polls internally and returns the completed job with all results collected. Up to 1,000 URLs per request.

Why batch beats a loop

A loop of sync scrapes eats your rate limit, your connection pool, and your patience:
The batch version is one API call. Reader handles parallelism internally and returns you the whole set.

Controlling concurrency

By default Reader picks a sensible parallelism level for your batch. For very large batches or target sites you want to be gentle with, set batchConcurrency explicitly:
Lower values are kinder to the target site (less load on their server) but take longer overall. Higher values finish faster at the cost of being more aggressive.

Handling partial failures

Individual URLs in a batch can fail without killing the whole job. Each failed URL gets an error field; successful URLs get markdown and metadata.

Feeding a sitemap

A common pattern: fetch a sitemap, parse it, batch-scrape the URLs:
Use a webhook on batches bigger than a few dozen; polling to completion locks up your client for the duration.

Cost considerations

A batch of N URLs in standard mode costs exactly N credits. In premium mode it costs 3N credits. If you have a mixed batch, consider pre-splitting by site type. See Cost estimation for how to pilot first.

Next