Send a Transactional Email
Sends an existing draft to a single recipient as a one-off transactional email.
POST
Requires the
emails:send scope. Renders an existing draft and emails it to one recipient — ideal for receipts, password resets, welcome emails, and other one-off, event-driven sends.
The send is processed asynchronously: the response returns 202 Accepted with an operation_id you can poll, plus the id of the created transactional email record.
Auto-added recipients. If the
email isn’t already a contact in the workspace, it’s added as an active subscriber (source api) so the send always has a deliverable target — the same way the contacts API and form signups add people. A new contact triggers the same “Subscribed” automations any other new-subscriber path would. An existing contact is updated in place; a prior unsubscribe is never silently cleared.Transactional sends are kept separate from campaigns: they do not appear in the Send Reports list. Track an individual send by polling its operation; opens, clicks, and bounces are attributed back to the send and show up in the contact’s activity.
Requirements
Sending requires a verified workspace — one with a valid payment method and no failed payment, the same billing gate the bulk campaign path enforces. An unverified, delinquent, or blocked workspace receives a403.
Body
The id or slug of the draft to send. The slug is derived from the draft’s title, slugified (e.g. a draft titled “July Newsletter” has the slug
july-newsletter) — a readable handle that’s unique within your workspace. The id is matched first, so it always wins if a slug ever collides with another draft’s id.Must belong to the API key’s workspace — an unknown id or slug returns a 404. A draft flagged as spam returns a 400.A draft’s slug is assigned from its title the first time it’s saved and is stable — renaming the draft later doesn’t change it, so both the id and the slug are safe to hard-code in an integration. (An untitled draft has no slug; address it by id.)
The recipient’s email address. Added to the workspace as an active subscriber if not already a contact.
The email subject. Defaults to the draft’s title when omitted. Truncated to 255 characters.
Preview text shown after the subject in most inboxes. Up to 255 characters.
An optional dictionary exposed to the email’s merge tokens for this send — exactly like an automation trigger’s event payload. Use it to inject per-send values (an order number, a reset link, etc.) into the draft’s content.
Custom field values to set on the recipient contact before sending, keyed by each field’s
data_name. Merged into an existing contact’s fields.Response
Returns202 Accepted.
The id of the created transactional email record.
The id of the async send operation.
The full URL of the operation — poll it to watch the send progress from
pending → processing → succeeded (or failed). On success, the operation’s result includes the final status (sent) and the provider_message_id.The initial status of the send,
pending.The id of the draft being sent. Always the canonical id, even when you addressed the draft by its slug in the request — so you can confirm which draft a slug resolved to.
The recipient the email is being sent to.

