On this page
No Headings
Last updated: June 4, 2026
Rate limiting restricts the number of API requests you can make in a specific time frame. When you exceed this limit, PayPal's servers may deny further requests until your usage drops below the limit. This protects the system from overload.
If you or your customers receive a 429 status code, too many requests were sent, which might indicate anomalous traffic. PayPal uses rate limits to ensure stability.
Understanding rate limiting can help you avoid disruptions when building or scaling your app.
PayPal may enforce rate limits for several reasons:
Note: PayPal doesn't publish exact rate limits because they vary depending on the API, environment, and circumstances. By keeping these limits flexible, PayPal can scale services to match demand while preventing abuse.
Here's what you can do to reduce the chances of hitting a rate limit:
If your API requests start failing due to rate limiting, follow these steps:
In a production environment, you'd want to:
// Example error handling for rate limits
function apiRequest(endpoint, data) {
return fetch(endpoint, {
method: 'POST',
body: JSON.stringify(data),
headers: { 'Content-Type': 'application/json' }
})
.then(response => {
if (response.status === 429) {
// Extract retry-after header if available
const retryAfter = response.headers.get('Retry-After') || 30;
// Log the rate limiting event
console.log(`Rate limited. Retrying in ${retryAfter} seconds`);
// Implement exponential backoff
return new Promise(resolve => {
setTimeout(() => resolve(apiRequest(endpoint, data)), retryAfter * 1000);
});
}
return response.json();
})
.catch(error => {
// Log the error for debugging
console.error('API request failed:', error);
// Determine if retry is appropriate
if (isRetryableError(error)) {
return retryWithBackoff(apiRequest, [endpoint, data]);
}
throw error;
});
}If you need further assistance, reach out to Merchant Technical Support.