Docs
Limits
Plan limits, rate limits and size limits enforced by the API.
Plan limits
| Plan | Inboxes | Custom domains | Sends per day | Sends per month | Footer |
|---|---|---|---|---|---|
| Free | 3 | 1 | 100 | 3,000 | Yes |
| Builder | 10 | 5 | 1,000 | 10,000 | No |
| Growth | 50 | 20 | 2,500 | 40,000 | No |
| Team | 150 | 50 | 15,000 | 150,000 | No |
| Enterprise | Custom | Custom | Custom | Custom | No |
Inbox and domain limits return 403 limit_exceeded; send limits return 429 limit_exceeded. Receiving mail is not counted against send limits. See Pricing.
Every refused limit also carries resolution, the action that unblocks it, and resolution_endpoint, the call that performs it: upgrade with POST /v1/billing/checkout for a plan limit, delete with the call that removes one of the things the limit counts (a rule, a blocklist entry), retry when the only answer is to wait. The code and the status do not change, so an integration that branched on limit_exceeded keeps working and one that reads resolution can act instead of asking a person.
Request limits
| Limit | Value |
|---|---|
| API requests | Per organization token bucket, 20 requests per second with bursts up to 40 by default. Over the limit: 429 rate_limit_exceeded with Retry-After. |
| Send burst | 10% of the daily send limit per 5 minutes: Free 10, Builder 100, Team 1,500. Over the limit: 429 rate_limited with Retry-After. |
| Failed authentications | Throttled per client address. |
| JSON request body | 8 MB |
| Attachments per sent message | 6 MB in total |
| Recipients per sent message | 50 across to, cc and bcc |
| Inbound message size | 25 MB |
| Page size | limit from 1 to 100, default 20 |
| Idempotency-Key | Up to 256 characters, remembered for 24 hours |
Webhook inbox_ids | Up to 10 per webhook |
| Open event streams | 5 per API key |
Draft send_at | In the future, at most 365 days ahead |
MCP get_attachment | 5 MB; use REST for larger files |
Inbox display_name | 200 characters |