PopNowAPI Docs
Main content

Rate limits

How many requests you can send, what happens when you send more, and the other limits worth knowing.

Limits protect everyone sharing the service. The defaults are generous for normal use; if you hit one, the response tells you exactly how long to wait.

At a glance

LimitDefaultWhen you hit it
Writes per account (createTask, retry, uploads …)1,000 per 10 seconds429 with Retry-After
Reads per account (recordInfo, models, jobs, quote …)1,000 per 10 seconds429 with Retry-After
Upload tickets1,000 per 10 seconds, on top of writes429 with Retry-After
Usage report (/api/v1/usage)30 per minute per account429 with Retry-After
Asset library60 reads and 30 saves per minute, plus a daily number of new assets429 with Retry-After
Any request, before the key is checked6,000 per minute per network429
Request body2 MiB of JSON413
BalanceWhat is in your account40201
Key spend capsNone unless you set one40202

Limits count per account, not per key — creating more keys does not raise them.

Response headers

HeaderMeaning
X-RateLimit-LimitYour allowance for the current window
X-RateLimit-RemainingRequests left in it — sent on successful responses too, so you can slow down early
Retry-AfterOn 429: seconds to wait before trying again

The numbers above are defaults and can change; trust the headers rather than hard-coding them.

What a limit looks like

{ "code": 429, "msg": "Too many requests. Retry in a moment", "request_id": "req_…" }

A request over the limit is rejected immediately — not queued — and costs nothing.

Handling it

  • Wait at least Retry-After seconds, then retry. Add a little random jitter so a batch of clients does not come back at the same instant.
  • When you retry createTask, send the same Idempotency-Key (Idempotency).
  • Poll gently: every few seconds for images, every 10–15 seconds for video. Better still, use webhooks — they cost no requests at all.

Running many tasks at once

Rate limits cap how fast you send requests, not how many tasks run at the same time. You can have many tasks in flight; long video jobs simply take longer. If you need to start thousands of tasks, spread them out and let webhooks bring the results back.

Need a higher allowance for a launch or a large batch? Contact us with your expected volume.

On this page