Compatibility

Send an email, Resend-shaped

POST/emailsrequires email:send

The same send as POST /v1/emails, at the path and in the body shape a Resend client already uses, so migrating is a base URL and a key. tags name/value pairs become name:value, content_type becomes type, and scheduled_at becomes scheduled_for — but only as an ISO 8601 instant: Resend's relative times ("in 1 min") are refused rather than silently sent now. Answers with { id }, as Resend does.

Requestcurl -X POST https://api.transmit.dev/emails \
  -H "Authorization: Bearer tr_v2_…" \
  -H "Content-Type: application/json" \
  -d '{
       "from": "Acme <hello@yourdomain.com>",
       "to": [
         "you@example.com"
       ],
       "subject": "It arrived.",
       "html": "<p>Nobody noticed.</p>"
     }'

Body

FieldTypeNotes
from requiredstring
to requiredstring or string[]
subjectstring
bccstring or string[]
ccstring or string[]
reply_tostring or string[]
htmlstring
textstring
headersobject
attachmentsobject[]
tagsobject[]
scheduled_atstring

Responses

StatusMeaning
200Queued
401The API key is missing, malformed, expired or revoked
403The API key lacks the email:send scope
422The request failed validation, or names something we will not silently ignore

Every response body is described in the OpenAPI spec, which this page is generated from.