Broadcasts
Campaigns sent to an entire audience. Create a broadcast as a draft, then send or schedule it.
Coming soon. The Broadcasts API is temporarily unavailable while we scale sending infrastructure. The endpoints are documented below for reference.
Broadcasts are campaigns sent to an entire audience (contact list). Create a broadcast as a draft, then send it when ready. In-flight broadcasts can be cancelled.
Lifecycle
draft → scheduled → sending → sent → cancelled
A broadcast can also move to paused if sending is halted
partway — for example it reaches your monthly or daily send limit, the sender
domain is no longer verified, or platform-wide sending is paused. Resume it by
sending again (POST /broadcasts/:id/send) once the underlying issue is resolved
— it continues from where it stopped.
API endpoints
/broadcasts| Parameter | Type | Description |
|---|---|---|
namerequired | string | Internal name for the campaign. |
audience_idrequired | string (UUID) | The audience (contact list) this broadcast is sent to. |
subjectrequired | string | Email subject line. |
fromrequired | string | Sender address. Accepts a bare email or a display name, e.g. "Acme <hello@yourdomain.com>". Must be from a verified domain. |
html | string | HTML body. Required unless template_id is provided. A plain-text part is generated automatically. |
template_id | string (UUID) | Saved template to use instead of html. |
template_variables | object | Default {{variable}} values applied to every recipient (per-contact fields like first_name override these). |
curl -X POST https://api.eusend.dev/broadcasts \
-H "Authorization: Bearer eu_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "May Newsletter",
"audience_id": "550e8400-e29b-41d4-a716-446655440000",
"subject": "What'"'"'s new in May",
"from": "newsletter@acme.com",
"html": "<h1>Hello!</h1><p>Here'"'"'s what'"'"'s new...</p>"
}'/broadcasts/:id/sendSend a draft broadcast immediately, or schedule it for a future time by passing
scheduled_at. This endpoint also resumes a paused broadcast — it continues
from where it stopped, skipping recipients already sent. The audience is set when
creating the broadcast. Broadcasts can also be pre-scheduled via
PATCH /broadcasts/:id without triggering a send.
| Parameter | Type | Description |
|---|---|---|
scheduled_at | string (ISO 8601) | Future UTC datetime to deliver the broadcast. Omit to send immediately. Sets status to scheduled until the delivery time. |
curl -X POST https://api.eusend.dev/broadcasts/3fa85f64-5717-4562-b3fc-2c963f66afa6/send \
-H "Authorization: Bearer eu_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"scheduled_at": "2026-06-01T09:00:00Z"
}'/broadcasts/:id/cancelCancel a scheduled or in-flight broadcast. Emails already sent are not recalled.
The rest of the broadcast surface:
/broadcastsList broadcasts.
/broadcasts/:idGet broadcast details.
/broadcasts/:idUpdate draft / set scheduled_at.