Documentation menu

Getting started

API reference

Guides

Trust and support

Limits and timeouts

The limits that apply to every request, and how the server behaves when it is busy.

Per request

LimitValueNotes
Request body10 MBHTML, embedded images and parameters together. Larger requests get 413.
Render time30 secondsIncludes loading the page and its resources. The timeout parameter can lower it, not raise it.
PDF delay10,000 msMilliseconds, as in PDFShift.
Screenshot delay30 sSeconds, as in ScreenshotOne. Counts towards the 30-second render time.
Viewportup to 10,000 pxWidth and height; device_scale_factor up to 4.
Pages in a PDFno fixed limitBounded by the render time. Several hundred simple pages render well within it.

Concurrency and the queue

The server renders several documents at the same time. Requests beyond that wait in a short queue and are processed in order, so a burst of requests is smoothed out rather than refused. If the queue itself is full, the answer is 429: wait a moment and retry.

For batch jobs, send a handful of requests in parallel (four is a good start) instead of hundreds at once. That keeps each request fast and avoids 429 answers.

Typical render times

Measured in Jeddah, on the server itself, without network time:

JobTime
One-page Arabic PDF from HTMLabout 0.1 to 0.4 s
Screenshot of a static pageabout 0.3 to 1 s
Screenshot of a news site with block_cookie_bannersabout 4 to 9 s
Page built with JavaScript, wait_until=networkidleabout 10 to 20 s

Pages you load by URL dominate the time: their scripts, images and third-party calls. HTML sources with embedded or nearby resources are the fastest.

Monthly allowance

Each plan includes a number of renders per month; one PDF or one screenshot is one render, whatever its size or number of pages. See pricing. Unused renders do not carry over. The allowance resets on the first day of each month (UTC).

Every response tells you where you stand: X-Quota-Limit is your monthly allowance and X-Quota-Remaining the renders left before this request. When nothing is left, requests are refused with 402 until the new month or a plan change. Only successful renders are counted.