Home / Basics / Highnote API
By default, the test environment has 50% of the rate limit of the live environment.
To maintain optimal performance, an API rate limit limits the number of requests a client can make within a specific time frame. The Highnote platform has different rate limit types:
Rate limiting is based on which type you hit first. Each type has a specific rate limit for each Auth/API type:
Auth/API Type | Limit | Note |
---|---|---|
API key | 200 requests per 10 seconds | Aggregate limit across all API keys assigned to an org |
Client token | 20 requests per 10 seconds per user/subject | |
REST API | 200 requests per 10 seconds |
Auth/API Type | Limit | Note |
---|---|---|
API key | 5,000 complexity per 10 seconds | Aggregate limit across all API keys assigned to an org |
Client token | 5,000 complexity per 10 seconds per user/subject | |
REST API | N/A |
For more information on calculating request complexity, see Request Complexity.
When an API request is rate limited, Highnote API returns a 429 TOO MANY REQUESTS
status code.
If you exceed the API rate limit, the cost field is not returned in your API response. Instead, the Highnote API uses a retryAfter
field to show how long to wait before retrying.
The asOf
parameter is the UTC timestamp for when this was calculated, to account for staleness during long requests.
The following example represents a response of a request that is not rate-limited:
The asOf
parameter is the UTC timestamp for when this was calculated, to account for staleness during long requests.
The following example represents a response of a request that is rate-limited:
Refer to the following best practices to avoid hitting rate limits:
Avoid polling: Avoid polling the API for asynchronous updates by registering a webhook target to receive notification events. See Notifications.
Use pagination: When querying for listed data, use pagination to limit the number of requested items.
Implement exponential backoff: Implement retries with exponential backoff when an API request receives a 429 TOO MANY REQUESTS
response. For help, see: