Skip to main content

rate_limit_exceeded

You sent requests faster than your plan permits. Nothing was sent and nothing was charged.

Status: 429, with a Retry-After header in seconds.

{
"status": 429,
"type": "rate_limit_exceeded",
"message": "Rate limit exceeded. Check the RateLimit-* headers for details.",
"request_id": "req_01J8K2P...",
"doc_url": "https://docs.epostix.com/errors/rate_limit_exceeded"
}

Why you got this

The limit is a request rate, and it applies to the whole workspace, not to one key. Creating extra API keys does not raise it. Live and test traffic are counted separately, so a load test against a test key cannot exhaust your production allowance.

Every response carries the current state, so you rarely need to guess:

HeaderMeaning
RateLimit-LimitRequests allowed in a full burst
RateLimit-RemainingRequests left right now
RateLimit-ResetSeconds until another request is allowed, 0 when one already is
RateLimit-PolicyThe limit and its window in seconds
RateLimit-ScopeAlways workspace

How to fix it

Wait the number of seconds in Retry-After, then send the identical request again. If you are hitting the limit steadily rather than in bursts, spread the work out or move to a plan with a higher rate.

A rate limit is not a quota. This one refills continuously and is about requests per second. Running out of your monthly or daily send allowance is monthly_quota_exceeded and daily_quota_exceeded.

Is it safe to retry

Yes, after Retry-After has elapsed. The request was rejected before anything was created, so retrying cannot produce a duplicate.