Rate limits
How many requests you can make, what happens past the limit, and how to need fewer.
Limits are per account and shared by the REST API and MCP, so an agent and your app draw from the same budget.
| What | Limit |
|---|---|
| All requests | 120 every 60 seconds |
| AI campaign drafts | 10 an hour |
| Test emails | 30 an hour |
| Image uploads | 60 an hour |
The tighter limits count on top of the first one.
When you hit a limit
The answer is 429 with a retry-after header in seconds:
{
"type": "rate_limited",
"message": "Too many requests. Try again in 12 seconds.",
"retry_after": 12
}Work in fewer requests
- Create or update up to 1,000 contacts in one batch request.
- Use
limitup to 200 when you page through a list. - Subscribe a webhook endpoint instead of polling for replies, bounces and unsubscribes.
Plan limits
Plans cap contacts, emails a month and projects. Going over is 402 plan_limit_reached, never a silent drop. The Free plan allows 1,000 contacts and 5,000 emails a month; see Pricing for the others. Your usage is on the account route.
Sending pace
Emails go out at the pace your provider allows and never faster than the hourly cap you set on the sender (max_sends_per_hour). Transactional and test emails skip that cap, so a password reset never waits behind a broadcast.