Limits & timeouts

Every ceiling the API enforces, on one page. These are the values the running server actually applies — the page is generated from the same constants. Last reviewed 2026-08-14.

Quota and throughput by plan

PlanAllowance per periodRate limitPeriod
Free250 renders2 req/sRolling 30 days from signup
Starter3,000 renders5 req/sYour Stripe renewal date
Growth12,000 renders5 req/sYour Stripe renewal date
Scale60,000 renders5 req/sYour Stripe renewal date

The rate limit is a token bucket, so short bursts above the steady rate are fine. Exceed it and you get 429 with Retry-After; wait that long and the request works. That is throughput, not quota — see the docs. Need more throughput for a batch job? Ask: it is a per-key setting.

Running out

Every plan is a hard cap. When the allowance for the period is gone the API returns 402 until the period rolls over or you upgrade. Rendering stops; nothing is charged on top of the plan you chose. You cannot receive a bill larger than your plan, and there is no way to spend money by accident.

Only real renders count. Cache hits, validation errors, auth failures, rate-limited requests and failed navigations are all free — a request that did not produce a file does not cost you one. Check X-Quota-Charged on any response to see whether it counted.

Per-request limits

LimitValueWhat happens past it
Navigation timeout, default30 sSend timeout (ms) to change it.
Navigation timeout, maximum60 sAccepted range is 1,000–60,000 ms; values outside it are clamped. A page that exceeds the timeout returns 504 and is not billed.
full_page capture height20,000 pxTaller pages are cut at that height and the response carries X-Full-Page-Truncated: 1. Narrow the width and capture in sections if you need the rest.
Request body1 MB413, refused before the body is parsed. Render parameters are a URL plus a few scalars, so ordinary calls are nowhere near this.
url length4,000 characters400 BAD_REQUEST.
Response sizeNo fixed capThe rendered file comes back in the response body. Its size follows from the page and your parameters.

What is not limited

Free is 250 renders every 30 days with no card. Paid plans run 3,000 / 12,000 / 60,000 renders per billing period — see pricing.

Live service state: /status. Full reference with request and response fields: the docs. Error codes: /docs#errors.