Rate Limits

Understand account-level protection, per-key spend caps, and how to build safe retry behavior.

Current Limits

  • Maximum 3 active API keys per account at one time
  • Optional daily spend cap on each API key, configured in cents
  • Optional expiration date on each API key
  • Service-side abuse protection may return 429 when traffic is too aggressive

What Triggers a 429

You may receive 429 Too Many Requests in two cases:

  • Your traffic hits our service protection limits
  • Your API key has reached its configured daily spend cap

429 Response

When rate limited, you'll receive:

json
{
  "error": {
    "message": "Rate limit exceeded. Please retry after 2 seconds.",
    "type": "rate_limit_error",
    "code": "rate_limit_exceeded"
  }
}

Not every 429 includes the same headers. Treat it as a signal to pause, retry with backoff, and inspect the key configuration in the dashboard.

Best Practices

  • Implement exponential backoff — start at 1s, double each retry (1s, 2s, 4s, 8s)
  • Separate environments — use different keys for production, staging, and local development
  • Set conservative daily caps on non-production keys
  • Use expirations for temporary contractors, demos, or one-off integrations
  • Monitor task history from the dashboard if one key starts consuming unexpectedly

Per-Key Controls

You can manage API keys from the API Keys page. Today each key supports:

  • A custom display name
  • An optional daily spend cap
  • An optional expiration date
  • Manual revoke at any time