Endpoints
POST /batch
Asynchronously scrape up to 50 URLs in one request.
POST
How it differs from /scrape
/scrape is synchronous: one URL, one response, content in the body.
/batch is asynchronous: it returns 202 with a job_id immediately and
fans out the work to the queue. There is no batch result in the 202 — you
must poll.
Use /batch when you already have a list of URLs. Use
/crawl when you only have a seed and want the
crawler to discover the links.
Limits
Up to 50 URLs per request. An empty list or more than 50 URLs is rejected with422 before any job is created — you are never billed for a rejected
batch.
The rate limit of this endpoint scales with your plan (free 10/min,
starter 60/min, growth 120/min, scale 300/min). It is the only endpoint
that does.
Cost
1 credit per URL whosescrape_status is success. Blocked, failed, or
SSRF-rejected URLs in the batch are not billed, so the final credits_used
can be lower than the number of URLs you sent.
Polling the result
cURL
results carries its own url, scrape_status and
credits_used. See GET /jobs/{job_id} for the
full status contract.Authorizations
Body
application/json
Response
Lote enfileirado. Usar GET /jobs/{job_id} para polling.
Resposta 202 de POST /batch: só o identificador para polling.
Identificador do job. Consultar em GET /jobs/{job_id}.