MillionSend Docs

/broadcasts

POST
/broadcasts

Request Body

application/json
  1. body
name?string

Internal name shown in the dashboard

segment_id?string

Segment to send to; omitted means every contact of the team

Formatuuid
from*string

Sender, "Name user@domain"; the domain must be one of the team's own verified domains when the broadcast is sent: sending from an address on the shared inbox domain answers 403

subject*string

Subject line; supports {{{FIRST_NAME|there}}} merge fields

Length1 <= length <= 998
html?string

HTML body; include {{{UNSUBSCRIBE_URL}}} for the opt-out link

text?string

Plain-text body; at least one of html/text is required

reply_to?|array<string>

Reply-To address or list

preview_text?string

Inbox preview (preheader) text

topic_id?string

Topic id; only contacts subscribed to it receive the broadcast

Formatuuid
send?boolean

true sends (or schedules) immediately instead of saving a draft

scheduled_at?string

Deliver later (requires send: true): ISO 8601 with offset or relative like "in 1 hour"

Response Body

Broadcast created (and scheduled when send: true)

application/json
  1. response
id*string
Formatuuid
finishes_at?string

When the last email is expected to go out (ISO 8601); null when unknown

estimated?true

finishes_at is an estimate that moves as other sends come in

Value intrue
warning?
Example Request
curl -X POST 'https://api.millionsend.com/broadcasts' \  -H 'Content-Type: application/json' \  -d '{  "from": "string",  "subject": "string"}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "finishes_at": "string",  "estimated": true,  "warning": {    "code": "paced",    "days": 0,    "message": "string"  }}