Skip to content

Reference

Errors come back in Resend’s shape, so the SDK’s own error reports them.

What you sent Answer
No Authorization header 401 missing_api_key
A key nobody issued 401 invalid_api_key
An app that is not yours, or one with no source taking calls 404 not_found
A required field left out 422 missing_required_field
A field Cowliss does not serve, a template beside html or text, a subject beside a template, or a marketing template 422 validation_error
A from on a domain you have not verified 403 validation_error
More mail than your credit covers 429 monthly_quota_exceeded
Too many calls too quickly 429 rate_limit_exceeded
An id that is not one of your messages 404 not_found

The app id, which is what every example here prints. The id of that app’s API source (src_…) is accepted too, so a base URL configured before app ids were taken keeps working; both send exactly the same message.

Attachments, scheduling and topics are each refused with the field named, and the message says what to do instead: link to the file, send the message when it should arrive (or let a journey’s wait do the waiting), and record consent as a purpose.

There is no update or cancel, and no contacts, audiences, broadcasts, domains or API keys under this base URL.

  • Sending and delivery: your sending domain, the gates every send passes, and the delivery log.
  • Email templates: the template file contract and send classes.
  • Journeys: the mail that follows a rule rather than a line of your code.