Rate Limits
Overview
Deel enforces rate limits to ensure API stability and fair usage across all integrations. Understanding and respecting these limits is essential for building reliable applications.
- Each organization can make up to 5 API requests per second across all tokens.
- The rate limit is shared organization-wide, regardless of how many API tokens you use.
- If you exceed your rate limit, the API will return a 429 Too Many Requests error.
- Rate limiting uses a rolling 1-second window that automatically resets each second.
Rate Limit Details
Current Limits
Rate limits are enforced per organization, not per token. All API tokens within your organization share the same rate limit quota. If you have multiple services or processes making API calls, they all count toward the same 5 requests/second limit.
How It Works
The rate limit operates on a rolling 1-second window:
When you exceed 5 requests per second:
- Additional requests receive a
429status code - You must wait until the next cycle starts
- The limit automatically resets each second
Handling Rate Limit Errors
Deel API does not return rate limit headers. You won’t know you’ve hit the rate limit until you receive a 429 error. This makes proactive rate limiting especially important.
When you exceed the rate limit, you’ll receive a 429 error:
Best Practice: Exponential Backoff
Implement exponential backoff when hitting rate limits:
Strategies to Stay Within Limits
1. Request Queuing (Most Important)
Queue requests to ensure you never exceed 5 requests per second:
2. Batch Requests
When possible, use batch operations instead of individual requests:
3. Space Out Requests
Avoid bursts of requests. Spread them out over time:
4. Cache Responses
Reduce API calls by caching frequently accessed data:
5. Centralize API Requests
Since rate limits are organization-wide, centralize request handling to avoid conflicts:
Important: Since rate limits are per organization, using multiple tokens won’t increase your rate limit. Instead, coordinate all API requests through a centralized queue.
Best Practices Summary
Do's
✅ Always implement request queuing
✅ Use exponential backoff for 429 retries
✅ Cache frequently accessed data
✅ Space out requests (avoid bursts)
✅ Set up alerts for rate limit errors
✅ Monitor 429 error frequency
✅ Centralize API requests across your organization
Don'ts
❌ Don’t send bursts of requests
❌ Don’t ignore 429 errors
❌ Don’t retry immediately without delay
❌ Don’t make unnecessary API calls
❌ Don’t use tight polling loops
❌ Don’t assume you know remaining quota (no headers provided)
❌ Don’t run multiple uncoordinated processes making API calls
Troubleshooting
Frequently hitting rate limits
Solutions:
- Implement request queuing (most important!)
- Add caching layer
- Batch operations where possible
- Review if all requests are necessary
- Space out requests more (reduce from 5/sec to 4/sec for safety margin)
- Identify and optimize high-volume operations
Unpredictable rate limiting
Possible causes:
- Multiple services/processes making requests simultaneously
- Background jobs running concurrently
- Different parts of your application not coordinating requests
- Rate limit shared across entire organization
Solutions:
- Centralize all API requests through a single queue
- Coordinate between services (use Redis or similar for distributed rate limiting)
- Monitor which services are making requests
- Implement request prioritization
Rate limits affecting production
Immediate actions:
- Enable request queuing immediately
- Increase delays between requests (use 4/sec instead of 5/sec)
- Implement caching for frequently accessed data
- Identify services making excessive requests
- Contact Deel support if you need higher limits