Guides
Errors
{
"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.
| Code | Status | Meaning |
|---|---|---|
unauthorizedThe API key is missing, malformed, unknown or revoked. | 401 | The API key is missing, malformed, unknown or revoked. |
forbiddenThe key's level doesn't allow this action: a signups only key can only add contacts. | 403 | The key's level doesn't allow this action: a signups only key can only add contacts. |
not_foundThe newsletter, campaign, contact, domain or key isn't in this account. | 404 | The newsletter, campaign, contact, domain or key isn't in this account. |
validation_failedThe input doesn't match the schema or breaks a rule. The message names the field. | 400 | The input doesn't match the schema or breaks a rule. The message names the field. |
conflictThe resource's state doesn't allow it, e.g. sending a campaign that is already sending or sent. Retrying won't help. | 409 | The resource's state doesn't allow it, e.g. sending a campaign that is already sending or sent. Retrying won't help. |
rate_limitedToo 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 | 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. |
subscription_requiredThe account has no active plan. | 402 | The account has no active plan. |
billing_offThe server is self-hosted without billing: every account has every feature, without plan limits. | 404 | The server is self-hosted without billing: every account has every feature, without plan limits. |
plan_limit_emailsThe send needs more emails than the plan has left this month. | 402 | The send needs more emails than the plan has left this month. |
plan_limit_subscribersThe account has more active subscribers than its plan allows. | 402 | The account has more active subscribers than its plan allows. |
account_blockedThe 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 | 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. |
sender_not_allowedThe from address is neither the newsletter's shared address nor on a verified domain of this account. | 422 | The from address is neither the newsletter's shared address nor on a verified domain of this account. |
send_check_failedA pre-send check failed: no postal address, subject or content, or the email is over 100 KB. | 422 | A pre-send check failed: no postal address, subject or content, or the email is over 100 KB. |
no_recipientsNobody is left to send to. | 422 | Nobody is left to send to. |
sending_disabledSending is turned off on this server. | 503 | Sending is turned off on this server. |
unavailableA service the action needs isn't configured or didn't answer. Retry later. | 503 | A service the action needs isn't configured or didn't answer. Retry later. |
internal_errorSomething failed on MailCheap's side. | 500 | Something failed on MailCheap's side. |