Skip to main content
The REST API applies two layers of throttling.

Per-key request limits

Requests are throttled per API key, in separate buckets per operation family. Sending (POST /emails) is limited to a fixed 600 requests per minute, the same on every plan. Requests beyond a bucket’s limit return 429 rate_limit_exceeded, normally with a Retry-After header giving the whole number of seconds to wait:

Scheduled-email management

The scheduled-email management endpoints are throttled per API key, separately from the send limit: Scheduling a send itself is POST /emails with a scheduled_at, and rides the standard 600 requests per minute send limit above. These management limits do not apply to it. Exceeding any bucket returns the same 429.

Reading your API key

GET /api-keys/me has a bucket of its own per API key:

Per-organization send rate

Separately, your send rate is capped by your plan, from 4/sec on Free up to 10/sec on Scale, Volume, and Enterprise. The rate is counted per organization, across all your domains and keys. Each channel keeps its own counter: REST sends and SMTP submissions are throttled against the same per-second value but in independent windows, so a burst on one channel does not consume the other’s. See Plans & limits. Accounts with no explicit entitlement fall back to 1/sec.

Handling 429

  • Wait the number of seconds in Retry-After before retrying. When the header is absent, fall back to your own backoff.
  • Use exponential backoff with jitter for repeated throttling.
  • Spread bulk sends over time rather than bursting.
Both limits are enforced centrally, and hold across multiple servers and processes using the same key or organization.