Skip to main content
When a request fails, the Xem API returns an HTTP status code and a JSON body:
Rate-limit responses use their own body, described in Rate limiting.

Status codes

Retry safely

Retry only errors that may succeed later: 429, 500 and network failures. Use exponential backoff with jitter, as shown in Rate limiting. When retrying a send, include the same requestId so the email is not sent twice. Do not retry 400, 401, 403, 404 or 409 without changing the request.

Get help

If an error persists, open an issue on GitHub or email team@xem.email. Include the endpoint, the status code, the time value and the error message, but never your API key.