Rate limits

Request limits, AI-endpoint caps, and how to back off.

The API is rate-limited to protect shared infrastructure. Limits apply per IP for public endpoints and per workspace for AI-backed endpoints.

Limits

ScopeLimitApplies to
Per IP (general)1,000 requests / minutemost /v1 endpoints
Per IP (auth)60 requests / minute/v1/auth, /v1/oauth2
Per workspace (AI)20 requests / minuteAI endpoints, e.g. POST /v1/custom-columns/infer, POST /v1/custom-columns/suggest-rules

When you hit a limit

Over-limit requests return 429. Back off and retry after a short delay; for AI endpoints, wait for the per-minute window to reset. Treat 429 as transient — never as a hard failure.

{ "code": "RATE_LIMIT_EXCEEDED", "status": 429, "title": "Too Many Requests", "message": "Retry after the window resets", "meta": { "trace_id": "a1b2c3" } }

Guidance

  • Prefer cursor pagination with a sensible limit over many small requests.
  • Batch where the endpoint supports it (e.g. record_ids arrays on compute/values endpoints, up to 500).
  • Use exponential backoff with jitter on 429 and 5xx.