Rate limits

Limits apply per workspace and are shared by all of its keys. Exports and incremental sync have their own budgets, so moving your data never competes with live traffic.

Limits by plan

Limits by plan
PlanStandard APISearchBulk jobs at onceRealtime connections
Free300 per minute60 per minute12
Starter1,000 per minute200 per minute25
Growth3,000 per minute500 per minute520
Enterprise10,000 per minute or customCustomCustomCustom

OAuth apps also have a per-app share of the workspace limit, so one marketplace app cannot starve your other integrations. Changes to limits are announced in the changelog 30 days ahead.

Response headers

Rate limit response headers
RateLimitThe limit, what is left in this window, and seconds until it resets. Sent on every response.
RateLimit-PolicyThe policy that applied, as requests per window in seconds.
Retry-AfterSeconds to wait before retrying. Sent only with a 429.

When you go over

The API answers 429 and tells you how long to wait. Nothing is dropped silently, and the request was not processed.

HTTP/1.1 429 Too Many Requests
RateLimit: limit=3000, remaining=0, reset=17
RateLimit-Policy: 3000;w=60
Retry-After: 17
Gripz-Request-Id: req_8F2KQ41Z

{
  "error": {
    "type": "rate_limit_error",
    "code": "rate_limited",
    "message": "Workspace limit of 3,000 requests per minute reached.",
    "request_id": "req_8F2KQ41Z"
  }
}