Guides

Errors

Every error has the same shape, with a code that never changes meaning. Branch on the code; show the message.
409 Conflict
{
  "error": {
    "code": "conflict",
    "message": "This campaign is already sending"
  }
}

The message names the field when the input is wrong, and says what to do when a rule stops the action. MCP tools answer the same object in an error result. Sending a campaign that is already sending or sent answers conflict, so a retried send never goes out twice.

CodeStatus
unauthorized

The API key is missing, malformed, unknown or revoked.

401
forbidden

The key's level doesn't allow this action: a signups only key can only add contacts.

403
not_found

The newsletter, campaign, contact, domain or key isn't in this account.

404
validation_failed

The input doesn't match the schema or breaks a rule. The message names the field.

400
conflict

The resource's state doesn't allow it, e.g. sending a campaign that is already sending or sent. Retrying won't help.

409
rate_limited

Too many requests with this key, or too many of one action for the account, whose keys, apps and dashboard share its limits. Wait and retry.

429
subscription_required

The account has no active plan.

402
billing_off

The server is self-hosted without billing: every account has every feature, without plan limits.

404
plan_limit_emails

The send needs more emails than the plan has left this month.

402
plan_limit_subscribers

The account has more active subscribers than its plan allows.

402
account_blocked

The account is blocked after spam signals (bounce or complaint rates, Gmail's spam rate in Google Postmaster Tools, a spam trap, the email provider) or by an admin. Nothing is sent, the tracked links in its emails stop redirecting, and only reads, pausing, unscheduling, revoking access and billing work until an admin unblocks it.

403
sender_not_allowed

The from address is neither the newsletter's shared address nor on a verified domain of this account.

422
send_check_failed

A pre-send check failed: no postal address, subject or content, or the email is over 100 KB.

422
no_recipients

Nobody is left to send to.

422
sending_disabled

Sending is turned off on this server.

503
unavailable

A service the action needs isn't configured or didn't answer. Retry later.

503
internal_error

Something failed on MailCheap's side.

500