Error codes
Error codes
Every error code the send0 API can return.
Every error response includes a stable code field. Find it here.
See Error handling for how errors are structured and how to handle them in code.
Authentication — 401
| Code | When |
|---|---|
missing_api_key | No Authorization header on the request. |
invalid_api_key | Key doesn't exist or has been revoked. |
invalid_auth_format | Header isn't Bearer sk_.... |
Validation — 422
| Code | When |
|---|---|
validation_error | One or more fields failed validation. |
sender_not_verified | from uses a domain that isn't verified on your workspace. |
too_many_recipients | More than 50 addresses across to + cc + bcc. |
invalid_scheduled_at | scheduled_at is in the past or more than 30 days ahead. |
Send-time — 422
| Code | When |
|---|---|
suppressed_recipient | Every recipient is on your workspace's suppression list. |
template_not_found | template_id doesn't exist on this workspace. |
Limits
| Code | Status | When |
|---|---|---|
rate_limit_exceeded | 429 | You're over your per-minute request limit. |
insufficient_credits | 402 | You've hit your monthly send limit. |
Lookup — 404
| Code | When |
|---|---|
not_found | The resource you requested doesn't exist. |
Not listed above
If you hit internal_error (500), service_unavailable (503), or not_implemented (501): these are server-side. Include the X-Request-ID header value from the response when contacting support@send0.dev.