Send an email
send_emailSend one email from an address on a verified domain (see list_domains). Give html_body and/or text_body, or template_alias plus template_model to render a saved template. Use dry_run: true to validate a new or uncertain send without delivering it. An identical send within 10 minutes returns the original message_id instead of sending again; pass idempotency_key to control that, or allow_duplicate: true to send another copy on purpose. Returns message_id and status. If this key's guardrails need a person, the call either asks them in chat or returns status pending_approval with an approval_url to share.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | No | ||
| bcc | No | ||
| tag | No | Legacy single tag; prefer `tags`. | |
| from | Yes | Sender address; its domain must be a verified sending domain for the tenant (and match the key's domain scope, if scoped). | |
| tags | No | ||
| dry_run | No | true validates and simulates the send: nothing leaves emitd and nothing is billed, though it counts toward rate limits. Returns a message_id for the simulated send. | |
| subject | No | Required by validation unless a template supplies it. | |
| reply_to | No | ||
| html_body | No | ||
| test_mode | No | Simulate delivery without sending (same effect as the `X-Relay-Test` header). | |
| text_body | No | ||
| attachments | No | ||
| track_opens | No | Add an open-tracking pixel to the HTML body. Omit it to take the stream default: on for `broadcast`, off for `outbound` (transactional). Opens are approximate either way, because some clients fetch every image and others block them. | |
| scheduled_at | No | Epoch milliseconds. When in the future, the message is persisted as `scheduled` and enqueued by a per-minute cron once due. | |
| track_clicks | No | Route links in the HTML body through the click-tracking redirect. Omit it to take the stream default: on for `broadcast`, off for `outbound` (transactional). | |
| message_stream | No | Postmark-style stream separation. | outbound |
| template_alias | No | Server-side template alias to render (see Templates). Renders subject/html_body/text_body before validation. | |
| template_model | No | Variables for `template_alias` rendering. | |
| allow_duplicate | No | true sends another copy even though an identical email went out in the last 10 minutes. | |
| idempotency_key | No | Retry-safe key: calling again with the same key returns the first result instead of sending again. Without one, an identical send within 10 minutes is deduplicated automatically. |