429 Too Many Requests response.
Per-Endpoint Limits
| Endpoint | Method | Rate Limit |
|---|---|---|
/tokens | POST | 5 requests/hour per email address |
/users | GET | 10 requests/second |
/accounts | GET | 10 requests/second |
/definitions | GET | 10 requests/second |
/qualifications | GET | 10 requests/second |
/projects | GET | 10 requests/second |
/projects | POST | 10 requests/second |
/projects | PATCH | 10 requests/second |
/surveys | GET | 10 requests/second |
/surveys | POST | 10 requests/second |
/surveys | PATCH | 10 requests/second |
/responses | GET | 6,000 requests/minute |
/responses | PATCH | 6,000 requests/minute |
HTTP 429 Response
When you exceed a rate limit, the API returns:Best Practices
Cache tokens
Tokens are valid for 12 hours. Store the token and its expiration timestamp — do not re-authenticate on every API call.
Reuse lookup data
Definitions and Qualifications change infrequently. Cache this data at application startup or on a daily refresh rather than fetching per request.
Batch response polling
The
/responses endpoint has a high limit (6,000/min) to support polling workflows. Use page and page_size parameters to paginate efficiently.Use staging for load testing
Run all performance and load testing against the staging environment (
https://stage-demand.researchdesk.com) to avoid impacting production limits.