Access & Rate Limiting
Access Limits/Restrictions/Constraints
There are some limits to the API requests that can be made To the API. These limits are based on the SmartSurvey account package type.
Note, these are set against each user account and NOT each key. For instance, if you had a master account with 2 sub-accounts each with one or more api keys, you would be able to get up to a total of 10,000 requests per day for each account i.e. 30,000 total across all 3 accounts.
If you are hitting these limits, however, you should consider changing your workflow and not poll the API which is wasteful of resources for other customers. Instead, you can use webhooks to initiate an action on your systems based on a SmartSurvey event such as a response being received or otherwise use one of our integration options.
The total API request limits are stated in the table below:
Account Type | Requests Per Min | Requests Per Day |
---|---|---|
FREE / PROFESSIONAL / BUSINESS | n/a | n/a |
BUSINESS LEGACY | 120 | 2,500 |
ENTERPRISE & ENTERPRISE TEAM | 180 | 10,000 |
ENTERPRISE PLUS | Starting from 180 | Starting from 10,000 |
If you have specific requirements, please contact us.
Throttling
In certain cases, SmartSurvey needs to enforce rate-limiting in order to prevent abuse by third-party services and/or users. In the event that an excessive level of usage is reached, a standard 429 Too Many Requests error will be returned, with an indication of when to retry the request. In the event that back-to-back 429s are received, an exponential backoff algorithm is recommended.
LIMIT HEADERS
We will send the following headers with all requests:
X-RateLimit-Limit: The maximum number of requests you're permitted to make per day.
X-RateLimit-Remaining: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset: The time at which the current rate limit window resets in seconds.
RETRY HEADER
Header
HTTP/1.1 429 Too Many Requests
Retry-After: {retry time in seconds}
EXAMPLE RESPONSE
{
"status": 429,
"code": "too_many_requests",
"message": "You have exceeded your requests per day (1000), try again in 300 seconds. See https://api.smartsurvey.com/docs/rate-limiting for more details"
}
Updated about 1 month ago