- A per-minute limit stops bursts of traffic. It counts requests over the last 60 seconds, as a sliding window. When you reach it, requests fail with
429 RATE_LIMITED. - A daily quota caps total volume. It counts requests in a 24-hour window that starts with the first request after the previous window ends, not at midnight. When you reach it, requests fail with
429 DAILY_QUOTA_EXCEEDED.
Limits per plan
The limits depend on your organization’s plan:
A sandbox always has the sandbox limits, whatever the plan of the organization that created it. An organization on Solo that kept API access when API access moved to Team has 120 requests per minute and 10,000 per day.
If sajn has agreed a custom limit with your organization, it replaces the per-minute limit, and the daily quota doesn’t apply. To discuss higher limits, contact [email protected].
We recommend reading your limits from the response headers rather than hard-coding these numbers, so your client adapts when your plan changes.
Rate-limit headers
Every authenticated response from the REST API carries the per-minute headers. Responses that count against the daily quota also carry the daily headers:
For example, a Team organization’s response has headers similar to the following:
Limit responses
A request over either limit returns an HTTP429 Too Many Requests status code, a Retry-After header, and the usual error body. Branch on code to tell the limits apart. In API version 2026-09, both limits return the code TOO_MANY_REQUESTS; the daily quota is the cause when X-RateLimit-Daily-Remaining is 0.
Over the per-minute limit:
Retry with backoff
How to retry depends on the error:429 RATE_LIMITED: wait the number of seconds inRetry-After, and then retry. It’s usually a few seconds.429 DAILY_QUOTA_EXCEEDED:Retry-Aftercan be several hours. Stop sending requests, and schedule the work for after the window resets, instead of holding a request open.500 INTERNAL_ERROR,503 UPSTREAM_UNAVAILABLE, and network errors: retry with exponential backoff and jitter.
Idempotency-Key header on every attempt. For more information, see Idempotency.
The following samples retry a request up to five times:
code and requestId.
First-party apps
Apps that sajn publishes itself, such as its add-ins and its packaged integrations, share the per-minute limit with the rest of your organization. Their requests don’t count against the daily quota, and their responses carry no daily headers. Your own API keys and third-party OAuth apps count against both limits.Stay within the limits
To use fewer requests:- Subscribe to webhooks instead of polling for changes.
- Request up to 100 items per page with
limit. - Sync with
updatedAfterso each run reads only what changed. For more information, see Sync changes incrementally. - Spread scheduled jobs over time instead of starting them all at the same minute.
403 LIMIT_EXCEEDED, which a retry doesn’t fix; see Errors.
