API ReferenceRate limits
Search all guides and API reference text. Method and scope filter endpoints only.
Rate limits
Tellagen limits API requests to protect service availability. These limits apply across endpoints.
Default limits
Each traffic class has a short and a long window. An authenticated browser request also uses a user limit.
| Traffic and scope | Past 1 second | Long window |
|---|---|---|
| API keys on Free | 20 requests | 600 requests in the past 60 seconds |
| API keys on Team | 100 requests | 3,000 requests in the past 60 seconds |
| Browser user within company | 100 requests | No user-specific long window |
| Browser company | 500 requests | 5,000 requests in the past 10 seconds |
| Anonymous client IP | 20 requests | 200 requests in the past 10 seconds |
How sliding windows work
Tellagen counts requests in a sliding window. Each request must fit every limit for its traffic class.
For API traffic, each request counts for one second in the short window and 60 seconds in the long window.
For browser traffic, each request counts for one second in the short window and 10 seconds in the long window.
For browser users, each request counts for one second in the user window. The user limit has no long window.
Each browser request counts in the user window and both browser-company windows.
Earlier requests leave each window as they reach those ages. The allowance does not reset at the start of a second or minute.
For example, 20 Free API requests arrive at 12:00:00.900. Another request at 12:00:01.000 still exceeds the one-second limit.
Those 20 requests leave the one-second window at 12:00:01.900. They still count toward the 60-second limit.
Response headers
The API returns these headers for requests subject to the rate limits:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | The smallest configured limit across all applicable windows. Free API traffic is 20. Team API traffic is 100. Browser-user traffic is 100. |
X-RateLimit-Remaining | The smallest number of requests still available across all applicable windows. The value cannot be less than zero. |
Retry-After | The wait time rounded up to whole seconds, with a minimum of one second. The API includes this header in a rate limit response (HTTP 429). |
Rate-Limit-Policy | The limits and window lengths that apply to the request. For example, 100;w=1, 500;w=1, 5000;w=10 describes a browser user and company. |
If a request exceeds a limit
The API returns HTTP 429 with the error code rate_limited. The error details include retry_after_seconds, which matches the Retry-After header.
If several windows are full, Retry-After uses the longest wait. Concurrent requests can use capacity before your retry arrives.
- Wait at least the number of seconds in
Retry-Afterbefore another attempt. - If another attempt returns HTTP 429, wait for the new
Retry-Aftervalue. - Set a maximum number of attempts in your client.
- Spread requests across time to reduce bursts.
- If several workers share a company, add a small random delay after the required wait.
Changes to limits
These values are the current defaults. Tellagen can change these limits over time or set different limits for individual companies.
For example, we can adjust limits to protect service availability or respond to unusual API use.