Rate limits & quotas

Per-workspace request rate limits, daily and monthly email quotas, pay-as-you-go limits.

Request rate limit

The public API allows 10 requests per second per workspace by default. All API keys of a workspace share the same budget, and it covers every /api/v1 endpoint, MCP tools/call requests and SMTP messages. Every /api/v1 response carries the current state:

Response headers
ratelimit-limit: 10
ratelimit-remaining: 7
ratelimit-reset: 1

ratelimit-reset is the number of seconds until the window resets. Over the limit, the API answers 429 rate_limit_exceeded with a retry-after header (seconds). Need more throughput? Use batch sends (up to 100 emails per request) or contact support.

Email quotas

Quotas count recipients, not API calls: an email to 3 addresses in to plus 2 in cc uses 5. Every accepted transactional email counts from the moment it is accepted (queued, scheduled, sent, delivered, bounced, …); only emails that end failed or canceledgive their quota back. The check and the insert are atomic, so parallel requests can't overshoot.

LimitWindowError when exceeded
Daily limit (e.g. 100/day on Free)UTC calendar day429 daily_quota_exceeded
Monthly quota (e.g. 3,000 on Free)Free: UTC calendar month. Paid: your billing period.429 monthly_quota_exceeded
Pay-as-you-go overage capBilling period429 overage_cap_reached
Pay-as-you-go spend limit (optional)Billing period429 spend_limit_reached

Plan limits are listed on the pricing page. Broadcast emails don't count toward the transactional quota — Marketing plans limit contacts instead (see Broadcasts).

Pay-as-you-go

On a paid plan with pay-as-you-go enabled, sending continues past the monthly quota and the overage is billed in whole buckets of 1,000 emails, rounded up. Two guards stop runaway costs: an overage cap (by default five times the plan quota) and an optional spend limit you set in Settings → Usage. With pay-as-you-go disabled, sending stops at the quota.

Scheduled and batch sends

  • A scheduled email counts toward the period it is scheduled to be sent in, and is checked again when it goes out.
  • A batch is all-or-nothing: if the batch's recipients don't fit, no email in it is accepted.

Other limits

LimitValue
Recipients per email (to + cc + bcc)50
Emails per batch request100
How far ahead scheduled_at may be30 days
Tags per email50
Idempotency-Key length / retention256 characters / 24 hours
Request body size8 MiB
SMTP message size10 MB

Warm-up and automatic pauses

New domains may be subject to a daily warm-up ramp that raises their volume day by day. Workspaces with high bounce or complaint rates are paused automatically (403 sending_paused) to protect deliverability for everyone.