Skip to content

Error Codes

All errors return a JSON body with a detail field explaining what went wrong.

{
"detail": "Human-readable error message"
}
CodeMeaningWhen
200OKSuccessful read or update
201CreatedResource created successfully
204No ContentResource deleted successfully
400Bad RequestInvalid input or duplicate resource
403ForbiddenAuth failure or quota exceeded
404Not FoundResource doesn’t exist or not owned by you
500Internal Server ErrorUnexpected server-side error
DetailCauseFix
Invalid authorization header formatMissing Bearer prefixUse Authorization: Bearer YOUR_KEY
Invalid API keyToken not found in databaseCheck your API key
API key is deactivatedToken was revokedGenerate a new key
API key has expiredToken past expiration dateCreate a new key or update expiration
DetailCauseFix
Domain quota exceeded: 5/5All domain slots usedUpgrade plan or delete a domain
Mailbox quota exceeded for this domain: 3/3Domain mailbox limit reachedUpgrade plan or delete a mailbox
DetailCauseFix
El dominio ya existe en el servidor SaaSDomain name takenChoose a different domain
Este email (buzón) ya existe en el servidor SaaSEmail address takenChoose a different email
El dominio asociado no existeDomain not found for mailbox creationCreate the domain first
Dominio no encontradoDomain doesn’t exist or not yoursCheck the domain name
Usuario (buzón) no encontradoMailbox doesn’t exist or not yoursCheck the email address
  1. Always check the status code before parsing the response body
  2. Retry on 500 errors with exponential backoff (max 3 retries)
  3. Don’t retry 400/403/404 — these are client errors that won’t resolve on retry
  4. Log the detail field for debugging — it contains specific information about what went wrong