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
| Field | Type | Notes |
|---|---|---|
from required | string | |
to required | string or string[] | |
subject | string | |
bcc | string or string[] | |
cc | string or string[] | |
reply_to | string or string[] | |
html | string | |
text | string | |
headers | object | |
attachments | object[] | |
tags | object[] | |
scheduled_at | string |
Responses
| Status | Meaning |
|---|---|
200 | Queued |
401 | The API key is missing, malformed, expired or revoked |
403 | The API key lacks the email:send scope |
422 | The 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.