Skip to content

How to take screenshots of multiple URLs

ScreenshotOne API supports taking screenshots of multiple URLs in one request—bulk screenshots. But since it is a simple wrapper around the regular screenshot API, you might find it much better to implement your own bulk screenshot solution.

A few tips:

  1. Use proxies if needed.
  2. Retry failed requests.
  3. Use a queue to process URLs in batches, even for internal workloads.
  4. Respect the request bucket. Build your solution based on concurrency.remaining and concurrency.reset from the “get usage” API endpoint.

The concurrency values in the usage response are not active render counts. They describe how many screenshot requests you can start in the current one-minute bucket. If concurrency.remaining is 5, you can start 5 requests at once, then wait until concurrency.reset before starting more.

For a starter implementation, an in-process queue with retry/backoff is enough. If you run multiple workers or need durable retries across restarts, use a proper queue such as Redis/BullMQ, SQS, or similar, and let workers drain it according to the usage endpoint.

Check out working example in the ScreenshotOne examples repository—bulk screenshots example.

In case you need help, feel free to reach out to support at support@screenshotone.com.