Errors & Status Codes #
HTTP status codes #
Failures return a standard HTTP status with success: false and a messages array explaining what
went wrong.
| Status | Meaning | What to do |
|---|---|---|
400 |
Bad request — missing/invalid parameter | Check messages; fix the parameter |
401 |
Missing or invalid API key | Verify your Authorization: Bearer … header |
403 |
Authenticated, but not allowed for this account | The resource isn't yours, or the feature isn't enabled |
404 |
Not found / not owned by your account | Check the ID; you can only access your own data |
422 |
Validation failed | e.g. a required field or custom field is missing |
429 |
Rate limited | Back off and retry after a short delay |
{ "success": false, "data": null, "messages": ["Missing or invalid recipientEmail parameter"] }
Send eCard outcomes #
POST /pub/ecard-actions/send-ecard returns success: true on a successful send. When a send is
rejected, success is false and messages explains why. Common reasons:
| Reason | Meaning |
|---|---|
wouldexceedlimit |
Not enough emails left in your plan's billing period |
toomany |
Too many recipients for this send |
tooshort |
No recipients provided |
einvalid |
Sender email is invalid |
finvalid |
A recipient email is invalid |
limitReached |
Rate limit exceeded — slow down |
blocked |
Flagged by anti-spam (rare false positive — contact support) |
spammer |
Send rejected (unspecified send error) |
Downstream email-delivery errors (e.g. from Postmark) aren't a code — they surface as a human-readable string in
messages. Always readmessagesfor the specifics.
A successful email send reports
emailsSent: 1(per recipient). A successful share-link send returnsshareUrl+statVanityIdand no email is sent. See Send eCards via API.
Tips #
- Always check
success(and HTTP status) before trustingdata. - Surface
messages[0]to your logs/users — they're human-readable. - For transient failures (
429, delivery errors), retry with backoff.