GET /v1/usage returns the limits that apply to your account and key.
Request throttles
Throttles are counted per API key across every server. HonourRetry-After on any 429. Some capacity refusals carry a plain-string detail rather than a structured error.
A
rate_limited answer carries these fields in detail: error, message, limit, window_seconds (60), scope (api_key) and retry_after_seconds, with the headers Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining: 0 and X-RateLimit-Reset (a Unix timestamp).
The inspect cap, as returned when a fourth capture is started:
{"detail": "invalid API key; too many failed attempts from this address, retry later"} and a Retry-After header.
Concurrency
Concurrency counts live sessions across your whole account, not requests, and the cap isconcurrency_limit in GET /v1/usage. A create past the cap answers 429 with detail fields error: "concurrency_limit", message, limit, tier and upgrade_url. The usual cause is sessions that were never released: list them with GET /v1/sessions, keep idle_timeout short, and release in a finally block.
Tabs are capped per session as well. GET /v1/session/{id}/tabs reports your session’s max; opening one more answers 429 with error: "tab_limit" and limit in detail.
Plans and the monthly allowance
Browser hours, concurrency and premium egress (traffic through residential, ISP and mobile exits) are the metered axes on the current plans; actions and CAPTCHA solves are uncapped there. Developer and Team are card billed without per-call wallet debits. Self-healing is on every plan; the paid-exit traffic it spends is premium egress. A plan past its allowance without overage (Free) is refused with 402
quota_exceeded or premium_egress_exhausted; paid plans continue and the excess is invoiced.
null in limits or remaining means unlimited on your plan. Only the default ttl is lowered to the plan’s longest session. An explicit larger value answers 422 ttl_exceeds_plan with max_ttl. The request accepts values from 5 to 604800 seconds, subject to that plan limit.
Body size and deadlines
- A request body over 4 MB answers 413
{"detail": "request body too large"}. - Most synchronous
/v1calls have a server-side deadline of about 57 seconds. Past it the API answers 504{"error": "deadline_exceeded", "detail": "...", "deadline_s": 57}withretry_with: "async_mode", the session intact. Session creation has a separate wait budget. Fetch, extract, inspect, search, solve and agent takeasync_mode: trueto run as a job you poll onGET /v1/job/{id}; fetch also takeson_deadline: "continue". - An inspect capture is capped at 180 seconds plus a fixed overhead for the page load and the report.