Errors

Every non-2xx response shares this shape:

{
  "error": "QuotaExceeded",
  "message": "Monthly email limit of 1500 reached and only 0 credit(s) remain. Buy more credits or upgrade your plan to continue sending."
}

Validation errors additionally include a details array with per-field messages. Quota errors include a usage object:

{
  "error": "QuotaExceeded",
  "message": "Monthly email limit of 1500 reached and only 0 credit(s) remain...",
  "usage": {
    "sent": 1500,
    "limit": 1500,
    "credits": 0,
    "needed": 1
  }
}

Error codes

StatusErrorWhen
400Validation ErrorRequest body failed schema validation (e.g. invalid email address, missing required field).
400InvalidAttachmentAn attachment is too large, is a blocked file type, isn’t valid base64, or its path couldn’t be downloaded.
400InvalidJSONThe request body isn’t valid JSON — most often raw file bytes sent where base64 was expected.
413PayloadTooLargeThe whole request body exceeded the size cap. Send fewer or smaller attachments, or pass a path instead.
401UnauthorizedMissing, invalid, or revoked API key.
403ForbiddenThe from domain isn’t verified yet, or the account is suspended.
404Not FoundThe resource (email, domain, API key) doesn’t exist or isn’t yours.
409ConflictDomain already registered on this or another account.
429QuotaExceededMonthly plan quota and any purchased credits are both exhausted.
429DailyQuotaExceededFree plan’s 150 emails/day cap reached.
502Email Send FailedThe email provider rejected the send after your request passed all cmdsend-side checks.