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, author, contact, segment, 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
revision_conflict

The draft changed since the revision sent with update_campaign: get_campaign has the new one to start from.

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
sender_not_allowed

The from address isn't on a domain this account added, or that domain isn't verified.

422
send_check_failed

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

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 Postroom's side.

500