Rate Limiting
Rate Limiting Guidance
Pushpay uses a tiered system of rate limits to ensure that no single API client can cause detrimental performance to the Pushpay platform.
How Rate Limits Are Applied
- Limits are enforced in tiers, to allow for bursts of activity.
- Limits are applied at the Client ID and Organization level — so if two different Pushpay Organizations have authorized access to different sets of data, their two issued refresh tokens/access tokens will not share the same rate limit.
Current Rate Limits
| Window | Limit |
|---|---|
| Per second | 10 requests |
| Per minute | 60 requests |
| Per hour | 500 requests |
| Per day | 5,000 requests |
| Per week | 10,000 requests |
If you have concerns that your application will need to exceed these limits, please contact [email protected] so we can discuss your needs and work together on a suitable solution.
Handling a 429 Response
When a rate limit is hit, the Pushpay API returns a 429 Too Many Requests status code. This response includes:
- A body with information about the limit, e.g.:
"API calls quota exceeded! Maximum admitted 10 per Second."
- A
retry-afterheader value indicating the number of seconds to wait before attempting another request.
Recommended Retry Strategy
We recommend using the retry-after value combined with an incremental back-off mechanism:
- On your first
429response, waitretry-after + 1second before retrying. - If that retry also fails, wait
retry-after + 2seconds before retrying again. - For subsequent retries, back off exponentially — e.g.
retry-after + 4,retry-after + 8,retry-after + 16seconds, and so on.
Tip: Adding a small amount of random delay (jitter) on top of this schedule helps prevent multiple concurrent retries from all landing at the same time.
Updated 25 days ago
Did this page help you?
