Rate Limit Overview
| Limit | Value |
|---|---|
| Requests per second | 5 |
Rate Limit Headers
Example Response Headers
Handling Rate Limits
When you exceed the rate limit, you’ll receive a429 Too Many Requests response:
Retry-After header indicating how many seconds to wait.
SDK Automatic Retries
All Ark SDKs automatically handle rate limits with exponential backoff:- Python
- Node.js
- Ruby
- Go
Manual Rate Limit Handling
If you need custom rate limit handling:- Python
- Node.js
- Ruby
- Go
Best Practices
1. Use SDK Auto-Retries
The SDKs handle rate limits automatically. Just send your requests and they’ll retry with backoff:- Python
- Node.js
2. Use Batch Endpoints
Instead of making multiple individual requests, use the batch endpoint:- Python
- Node.js
- Ruby
- Go
3. Implement Request Queuing
For applications that need to send many requests, queue them and process at a controlled rate:- Python
- Node.js
- Ruby
- Go
4. Use Exponential Backoff
The SDKs handle exponential backoff automatically. Configure the number of retries:- Python
- Node.js
- Ruby
- Go
Endpoint-Specific Limits
Email Sending
| Endpoint | Limit | Value |
|---|---|---|
POST /emails | To recipients | 50 per email |
POST /emails | CC recipients | 50 per email |
POST /emails | BCC recipients | 50 per email |
POST /emails | Subject length | 998 characters |
POST /emails | Tag length | 1000 characters |
Batch Emails
| Endpoint | Limit | Value |
|---|---|---|
POST /emails/batch | Emails per request | 100 |
POST /emails/batch | Recipients per email | 50 |
POST /emails/batch | Total recipients | 1000 across all emails |
Pagination
| Endpoint | Default | Maximum |
|---|---|---|
GET /emails | 30 per page | 100 per page |
GET /suppressions | 30 per page | 100 per page |
Suppressions
| Endpoint | Limit | Value |
|---|---|---|
POST /suppressions/bulk | Suppressions per request | 1000 |
Need Higher Limits?
If you need higher rate limits for your use case, contact us:Contact Support
Request higher rate limits for your needs
