Create a broadcast
Create a broadcast. It is created in DRAFT status. Recipients are added via the broadcast recipients endpoints. Creating never sends — transition the broadcast to LAUNCHED (via update) to send it.
Required permissions: BROADCAST
Access token recevied after user login with a deviceToken
Reference to a tenant.
^[A-Za-z0-9-_]+Reference to a Store.
^[A-Za-z0-9-_]+Create a broadcast. It is created in DRAFT status. Recipients are added via the broadcast recipients endpoints, not a filter. Creating never sends — transition the broadcast via update to send it.
Optional client-supplied id for the broadcast. Omit to have one generated. Must be unique within the tenant.
^[A-Za-z0-9-_]*The delivery channel of a broadcast. A broadcast is single-channel.
The purpose of a broadcast. MARKETING is a marketing message; SERVICE is a service/transactional message. Consent is the responsibility of the party building the recipient list: MARKETING sends must only include recipients with the relevant marketing consent (see add recipients).
The message content. Plain text for SMS, HTML for EMAIL.
Email subject. Required for EMAIL, ignored for SMS.
Optional sender name/address. Resolved from configuration if omitted.
Optional scheduled send time, applied when the broadcast is sent. Omit to send immediately.
BroadcastResponse
A broadcast header.
^[A-Za-z0-9-_]+The delivery channel of a broadcast. A broadcast is single-channel.
The purpose of a broadcast. MARKETING is a marketing message; SERVICE is a service/transactional message. Consent is the responsibility of the party building the recipient list: MARKETING sends must only include recipients with the relevant marketing consent (see add recipients).
Lifecycle state of a broadcast. DRAFT: editable, recipients can be edited. LAUNCHED: committed to send — sent immediately when sendAt is null or in the past, or held until a future sendAt. SENDING: in progress. COMPLETED: all recipients processed. CANCELLED: stopped before/while sending. FAILED: aborted with an error.
Operator-facing label.
Operator-facing note. Empty string if not set.
The message content. Plain text for SMS, HTML for EMAIL.
Email subject. Empty string for SMS.
Sender name/address. Empty string if resolved from configuration at send time.
Store the broadcast is sent in the context of — the SMS bill payer and/or sender.
^[A-Za-z0-9-_]+Scheduled send time. Null means send immediately on launch.
When sending started. Null until the broadcast starts sending.
When sending finished. Null until the broadcast completes.
POST /v2/tenants/{tenantUid}/stores/{storeUid}/broadcasts HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 180
{
"broadcastUid": "text",
"channel": "SMS",
"purpose": "MARKETING",
"title": "text",
"description": "text",
"body": "text",
"subject": "text",
"sender": "text",
"sendAt": "2026-01-01T00:00:00.000Z"
}BroadcastResponse
{
"broadcastUid": "text",
"channel": "SMS",
"purpose": "MARKETING",
"status": "DRAFT",
"title": "text",
"description": "text",
"body": "text",
"subject": "text",
"sender": "text",
"storeUid": "text",
"sendAt": "2026-01-01T00:00:00.000Z",
"startedAt": "2026-01-01T00:00:00.000Z",
"finishedAt": "2026-01-01T00:00:00.000Z",
"progress": {
"totalCount": 1,
"queuedCount": 1,
"dispatchedCount": 1,
"deliveredCount": 1,
"failedCount": 1
},
"createdAt": "2026-01-01T00:00:00.000Z",
"createdBy": "text",
"lastModifiedAt": "2026-01-01T00:00:00.000Z",
"lastModifiedBy": "text"
}Last updated
Was this helpful?

