Bulk screenshots
Capture many URLs in one job with the batch endpoint (available from the Starter plan). It runs asynchronously — you get a jobId, poll for progress, then collect the results (each charges one unit).
Create a job
curl -X POST https://screenshotforweb.com/api/v1/batch/screenshots \
-H "X-API-Key: sk_live_your_key" -H "Content-Type: application/json" \
-d '{
"urls": ["https://a.com", "https://b.com", "https://c.com"],
"options": { "format": "png", "fullPage": false }
}'
// -> 202 { "data": { "jobId": "...", "status": "queued" } }Poll & collect
GET https://screenshotforweb.com/api/v1/batch/jobs/{jobId} # { status, progress }
GET https://screenshotforweb.com/api/v1/batch/jobs/{jobId}/results # signed URL per item
GET https://screenshotforweb.com/api/v1/batch/jobs/{jobId}/download-all # 302 -> zip of all imagesTips
- Up to 100 URLs per job.
- Poll every few seconds until
statusiscompleted, then fetch results. A job in which no URL could be captured endsfailed. - A URL that fails is tried again automatically, up to 3 more times, once the rest of the job has run.
progress.failedcounts the URLs that are out of tries. - A URL that never answers uses its full
timeouton every try. Loweroptions.timeoutfor batches that may contain dead URLs.