Errors
What each failure means and whether retrying helps.
Every error is { "error": { "type", "message" } }. The type is stable; the message is for humans.
| Status | Type | Retry? |
|---|---|---|
| 401 | unauthorized | No — the key is missing or invalid. |
| 403 | no_verified_identity | No — verify the sending domain first. |
| 403 | recipient_not_allowed | No — the key's allowlist excludes this address. Do not try another spelling; ask a person. |
| 422 | invalid_request | No — fix the payload. |
| 422 | missing_variables | No — the response lists which variables are missing. |
| 429 | rate_limited | Yes, after a pause. |
| 429 | daily_limit | No — the key's daily budget is spent. Stop. |
| 502 | ses_error | Yes — usually transient. |