Default limits
Limits are applied per account, not per token or OAuth application. All API tokens and OAuth applications under the same account share the same rate limit budget.
Response headers
Every API response includes headers showing your current rate limit status:Handling rate limits
When you exceed the limit, the API returns a429 status code with a rate_limited error:
Retry-After header to determine how long to wait before retrying.
Best practices
- Check the headers. Monitor
X-RateLimit-Remaining-Minuteto stay within limits proactively. - Use filters. Narrow your
GET /v1/contactsrequests with filters likeemailoremail_consentto reduce the number of calls needed. - Cache responses. Avoid making the same request repeatedly when the data hasn’t changed.
- Implement backoff. If you receive a
429, wait the number of seconds specified inRetry-Afterbefore retrying. For repeated failures, use exponential backoff.
Need higher limits? Contact support@privy.com to discuss your use case.