Rate Limit Headers
Most API responses include these headers:| Header | Description |
|---|---|
RateLimit | Current window status: limit=X, remaining=Y, reset=Z. X is the maximum requests allowed in the window, Y is the requests remaining, and Z is the number of seconds until the limit resets. |
RateLimit-Policy | Window policy: X;w=Y. X is the maximum requests per window, and Y is the window size in seconds. |
Example: Rate Limit HeaderIn this example, your rate limit policy allows 100 requests per 60-second window.In the current window, you have used 20 requests and have 80 remaining, with the window resetting in 54 seconds.
Not all endpoints return
RateLimit and RateLimit-Policy headers.
Each endpoint’s reference page indicates which headers are included in its responses.Handling Rate Limit Errors
When you exceed the rate limit, the API returns a429 Too Many Requests response.
Honeycomb uses two response body formats depending on the API version.
- V1 Endpoints
- V2 Endpoints
V1 endpoints return an RFC7807 Problem Detail format:
429 responses also include a Retry-After header with a timestamp indicating when you can retry:
The Events, Batch Events, and Query Data APIs do not include a
Retry-After header in their 429 responses.Endpoint-Specific Rate Limits
Some endpoints have stricter limits in addition to the general API rate limit:- Create Query Result: Limited to 10 requests per minute.
- Create Query Result with Relational Fields: Limited to 1 request per minute.
Best Practices
- Check
RateLimit: remainingin your response headers before making additional requests, especially in automated workflows or scripts. - When you receive a
429, implement exponential backoff rather than retrying immediately. Exponential backoff reduces pressure on the API and increases the likelihood that your retry succeeds. - Use the
Retry-Aftertimestamp to determine when to retry, rather than guessing or using a fixed delay.