eusend

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

draftscheduledsendingsentcancelled

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

POST/broadcasts
ParameterTypeDescription
namerequiredstringInternal name for the campaign.
audience_idrequiredstring (UUID)The audience (contact list) this broadcast is sent to.
subjectrequiredstringEmail subject line.
fromrequiredstringSender address. Accepts a bare email or a display name, e.g. "Acme <[email protected]>". Must be from a verified domain.
htmlstringHTML body. Required unless template_id is provided. A plain-text part is generated automatically.
template_idstring (UUID)Saved template to use instead of html.
template_variablesobjectDefault {{variable}} values applied to every recipient (per-contact fields like first_name override these).
create broadcast
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": "[email protected]",
    "html": "<h1>Hello!</h1><p>Here'"'"'s what'"'"'s new...</p>"
  }'
POST/broadcasts/:id/send

Send 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.

ParameterTypeDescription
scheduled_atstring (ISO 8601)Future UTC datetime to deliver the broadcast. Omit to send immediately. Sets status to scheduled until the delivery time.
schedule a broadcast
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"
  }'
POST/broadcasts/:id/cancel

Cancel a scheduled or in-flight broadcast. Emails already sent are not recalled.

The rest of the broadcast surface:

GET/broadcasts

List broadcasts.

GET/broadcasts/:id

Get broadcast details.

PATCH/broadcasts/:id

Update draft / set scheduled_at.