Errors and limits
API base URL: https://api.relayloft.com
Errors are JSON in Resend's shape: { "statusCode": 422, "name": "validation_error", "message": "…" }.
| Status | name | When |
|---|---|---|
| 401 | missing_api_key | No Authorization header. |
| 401 | restricted_api_key | A Sending only key used to read emails. |
| 403 | validation_error | A wrong or revoked key; a from-domain that isn't verified or isn't allowed for the key; a recipient outside your team while in the sandbox. |
| 403 | suspended_api_key | Sending is paused for this app. Contact support. |
| 404 | not_found | No such email, template, attachment, domain or webhook for this key's app (another app's look the same as none). |
| 409 | invalid_idempotent_request, concurrent_idempotent_requests | An Idempotency-Key reused with a different body, or while the first request is still running. |
| 413 | validation_error | The request body is too large. |
| 422 | validation_error, missing_required_field, invalid_attachment | Something in the request is wrong; the message says what. |
| 429 | rate_limit_exceeded | More than 100 requests in 10 seconds with one key, or too many test sends this hour. Wait for retry-after seconds. |
| 429 | daily_quota_exceeded, monthly_quota_exceeded | Your plan's daily or monthly sending limit is reached. retry-after is the time until it resets (midnight UTC, or the 1st of the month). |
| 503 | service_unavailable | Sending is paused for everyone for a moment. Retry after retry-after. |
| 500 | application_error | Our fault. Retry with the same Idempotency-Key. |
Limits
- Sends count recipients (to + cc + bcc), per UTC day and month. Your plan's numbers are on the portal's Usage page; your Owner is emailed at 80% and 100%.
- 100 requests per 10 seconds per API key.
- 50 recipients per email, 100 emails per batch, 7 MB per email.
- Emails and events are kept for 30 days; the API request log for 30 days.