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. Wait a minute 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, a spam trap, the email provider) or by an admin. Nothing is sent, 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