Skip to main content
The API and MCP share request limits for each user and selected Space, including calls made with different API keys or OAuth clients. Deployed limits can be configured. These limits include repeated requests with an idempotency key. Generation queues also enforce the existing plan’s concurrency and allowance rules. On HTTP 429, wait for the number of seconds in Retry-After. MCP returns isError with code: 429 and retry_after in its result. HTTP 503 means the rate limiter was unavailable and the operation was not executed. Use bounded concurrency and exponential backoff with jitter for transient failures.

Poll asynchronous tasks

A practical client starting point is one poll every 3-5 seconds, increasing the interval for long renders. This is a client recommendation, not a service limit or completion-time guarantee. Stop when the operation reaches a terminal state and enforce a timeout in your application. Queueing and provider generation time are separate from HTTP request duration. Keep the returned native task and project IDs so another process can resume monitoring.

Retry generation deliberately

Do not resubmit generation on each poll or automatically submit a new job after a network timeout. Use idempotency and status checks to resolve whether the original request was accepted.