Errors
Error schema
Section titled “Error schema”Resend uses standard HTTP response codes for success and failure notifications, and errors are further classified by type.
invalid_idempotency_key
Section titled “invalid_idempotency_key”- Status: 400
- Message: Idempotency keys, if present, must have between 1 and 256 characters.
- Suggested action: Retry with a valid idempotency key.
validation_error
Section titled “validation_error”- Status: 400
- Message: An error was found with one or more fields in the request.
- Suggested action: The message will contain more details about what field and error were found.
missing_api_key
Section titled “missing_api_key”- Status: 401
- Message: Missing API key in the authorization header.
- Suggested action: Include the following header in the request:
Authorization: Bearer YOUR_API_KEY.
restricted_api_key
Section titled “restricted_api_key”- Status: 401
- Message: This API key is restricted to only send emails.
- Suggested action: Make sure the API key has
Full accessto perform actions other than sending emails.
email_above_quota
Section titled “email_above_quota”- Status: 403
- Message: You can't retrieve this email's content because it was above quota when received.
- Suggested action: Upgrade your plan to increase your quota.
invalid_permission
Section titled “invalid_permission”- Status: 403
- Message: Access token is missing required scopes.
- Suggested action: Request an access token that includes the scopes required by this endpoint.
restricted_api_key
Section titled “restricted_api_key”- Status: 403
- Message: API key is not active
- Suggested action: Check the API key on the API Keys page and create a new one if needed.
suspended_api_key
Section titled “suspended_api_key”- Status: 403
- Message: This API key is suspended
- Suggested action: Contact support if you believe this is a mistake.
validation_error
Section titled “validation_error”- Status: 403
- Message: You can only send testing emails to your own email address (
youremail@domain.com). To send emails to other recipients, please verify a domain at resend.com/domains, and change thefromaddress to an email using this domain. - Suggested action: In Resend's Domain page, add and verify a domain for which you have DNS access. This allows you to send emails to addresses beyond your own. Learn more about resolving this error.
validation_error
Section titled “validation_error”- Status: 403
- Message: The
domain.comdomain is not verified. Please, add and verify your domain. - Suggested action: Make sure the domain in your API request's
fromfield matches a domain you've verified in Resend. Update your API request to use your verified domain, or add and verify the domain you're trying to use. Learn more about resolving this error.
validation_error
Section titled “validation_error”- Status: 403
- Message: The
example.comdomain has been registered already. - Suggested action: Verify you are signed in to the correct Resend account and check whether a teammate already added the domain. If you still cannot access it, contact support. Learn more about resolving this error.
not_found
Section titled “not_found”- Status: 404
- Message: The requested endpoint does not exist.
- Suggested action: Change your request URL to match a valid API endpoint.
method_not_allowed
Section titled “method_not_allowed”- Status: 405
- Message: Method is not allowed for the requested path.
- Suggested action: Change your API endpoint to use a valid method.
concurrent_idempotent_requests
Section titled “concurrent_idempotent_requests”- Status: 409
- Message: There is another request in progress with the same idempotency key.
- Suggested action: Try the request again later.
invalid_idempotent_request
Section titled “invalid_idempotent_request”- Status: 409
- Message: This idempotency key has been used with this HTTP method and endpoint within the last 24 hours, but the request body was modified and doesn't match the original request.
- Suggested action: Change your idempotency key or payload.
resource_locked
Section titled “resource_locked”- Status: 409
- Message: Another request is already updating this resource.
- Suggested action: Retry the request after a short delay.
invalid_attachment
Section titled “invalid_attachment”- Status: 422
- Message: Attachment must have either a
contentorpath. - Suggested action: Attachments must either have a
content(strings, Buffer, or Stream contents) orpathto a remote resource (better for larger attachments).
invalid_parameter
Section titled “invalid_parameter”- Status: 422
- Message: The
parametermust be a valid UUID. - Suggested action: Check the value and make sure it's valid.
missing_required_field
Section titled “missing_required_field”- Status: 422
- Message: The request body is missing one or more required fields.
- Suggested action: Check the error message to see the list of missing fields.
missing_required_parameter
Section titled “missing_required_parameter”- Status: 422
- Message: The request is missing one or more required parameters.
- Suggested action: Check the error message to see the list of missing parameters.
daily_quota_exceeded
Section titled “daily_quota_exceeded”- Status: 429
- Message: You have exceeded your daily email sending quota.
- Suggested action: Upgrade your plan to remove the daily quota limit or wait for the quota to reset at midnight UTC. Both sent and received emails count towards this quota.
monthly_quota_exceeded
Section titled “monthly_quota_exceeded”- Status: 429
- Message: You have exceeded your monthly email sending quota.
- Suggested action: Upgrade your plan to increase the monthly email quota. Both sent and received emails count towards this quota.
rate_limit_exceeded
Section titled “rate_limit_exceeded”- Status: 429
- Message: Too many requests. Please limit the number of requests per second. Or contact support to increase rate limit.
- Suggested action: Read the response headers and reduce the rate at which you request the API. This can be done by introducing a queue mechanism or reducing the number of concurrent requests per second. If you have specific requirements, contact support to request a rate increase.
application_error
Section titled “application_error”- Status: 500
- Message: An unexpected error occurred.
- Suggested action: Try the request again later. If the error does not resolve, check our status page for service updates.
service_unavailable
Section titled “service_unavailable”- Status: 503
- Message: API is temporarily unavailable
- Suggested action: Try the request again later. Check our status page for service updates.