Skip to main content

Errors & Rate Limits

HTTP status codes

CodeMeaning
200Success.
400Bad request — check the request body or parameters.
401Unauthorized — missing or invalid API key/token.
403Forbidden — key lacks the required scope or the account is not active.
404Resource not found.
409Conflict — the resource already exists or is in the wrong state.
422Validation error — the response detail lists the issues.
429Rate limit exceeded.
500Server error — retry with backoff.

Error format

Most errors return a simple detail message:

{
"detail": "Domain not verified"
}

Validation errors may return an array of Pydantic-style errors:

{
"detail": [
{"loc": ["body", "from_email"], "msg": "invalid email address", "type": "value_error"}
]
}

Rate-limited requests return:

{
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please slow down.",
"retry_after": 60
}

Rate limits

Limits depend on the endpoint and your account configuration. If the API returns 429, wait for the duration in Retry-After before trying again. Queue send requests and use exponential backoff instead of retrying in a tight loop.