Skip to main content

Limits

Only the last three are machine-readable — GET /v1/capabilities exposes them under rate_limits as the auth_sync, render_submit, and task_submit scopes. The two signup limits are documented here only. Workspace-level monthly quotas (applies to the free plan): Previews (POST /v1/preview, and any is_preview job) are never metered, and only completed renders count toward the cap. There is no quota on AI tasks.

Rate limit headers

When a limit is exceeded, the API returns 429 Too Many Requests:

Quota exceeded

When the free-plan render-time cap is exhausted, POST /v1/renders returns 402 Payment Required with code: quota_exceedednot 429. It is a monthly cap, not a rate limit: do not retry it with backoff.
Upgrade your plan in the console to increase limits.

Best practices

  • Retry 429 with exponential backoff; never retry 402 quota_exceeded that way — it clears on the monthly reset, not on a delay.
  • Use idempotency keys to safely retry without double-submitting.
  • For agent workflows, use the batch-tasks Agent Skill to submit multiple tasks concurrently without hitting per-request limits.
  • Subscribe to webhooks instead of polling to avoid unnecessary GET requests.