Rate limits
The platform enforces two rate limits in parallel:
- Per-tenant — every company has a request budget shared by all of its keys and OAuth grants.
- Per-key — each key has its own budget that cannot exceed the tenant budget.
Both budgets refill on a sliding window.
Headers
Every response includes:
X-RateLimit-Limit— the smaller of (tenant, key) limit.X-RateLimit-Remaining— requests left in the current window.X-RateLimit-Reset— unix epoch when the window rolls over.Retry-After— present on 429s; seconds to wait.
Backoff strategy
The official SDKs implement exponential backoff with jitter automatically. For custom clients:
- On
429, sleepRetry-Afterseconds (with at least 100ms of jitter). - On
5xx, retry idempotent requests with backoff (max 3 attempts). - Never retry non-idempotent writes without an
Idempotency-Key.
Bulk endpoints
Use the bulk variant whenever you need to write more than ~10 items. Bulk endpoints count as one request against your budget regardless of batch size.