Create a new broadcast.
To copy an existing broadcast, retrieve it and pass its data as the request body — the Uid, SendDateTime, and message counts are automatically reset. A new broadcast is always created as a Draft; schedule it by updating it with a SendDateTime (see the update endpoint).
Specify who the broadcast is sent to with EmailListUids and/or SegmentUids: EmailListUids is an array of email list Uids (from GET /api/v1/email/lists) and SegmentUids is an array of segment Uids (from GET /api/v1/crm/segments). These are the recommended way to set recipients — they are merged into the underlying RecipientData for you, so callers (including LLM tools) do not need to build that structure by hand; unknown Uids are rejected. RecipientData may still be supplied directly (a JSON string of the form {"BroadcastRecipientsEmailLists":[{"Uid":"..."}],"BroadcastRecipientsSegments":[{"Uid":"..."}]}); when both are present they are merged.
Message.Body is rendered as a Liquid template, so it may include merge tags such as {{ Person.FirstName }}; unknown {{ }} tokens render as empty text. An inline-styled HTML fragment is recommended. Message.Design (the drag-and-drop editor state) is optional — when omitted it is derived automatically, so callers (including LLM tools) do not need to understand it. Use Message.PreviewText for inbox preview text rather than an in-body preheader.
The shape of the Body markup decides how editable the broadcast is in the app. Prose (headings, paragraphs, lists, links, emphasis, images, inline spans) goes into a text block, which the author edits on the editor canvas with the formatting toolbar and the merge-tag menu. Structural markup (tables, an embedded style block, document scaffolding) goes into an HTML block instead, because only that block renders such markup verbatim, and it is edited as raw HTML. Send prose when the email must stay easy to edit visually. The first save in the editor also replaces Body with the editor's export of the design, so this choice decides the markup that is sent from then on.
When Body is a content fragment with no Design, it is composed into the account's API email layout — a branded header and footer that includes the unsubscribe and manage-subscriptions links — and the composed result is what is sent and opened in the editor. Do not add your own unsubscribe link in this case; the layout provides one. The layout is editable in the app; TemplateUid selects a specific layout template when the account has more than one.
The layout is NOT applied when a Design is supplied or when the body is a complex full HTML document (Outlook conditional comments, stylesheet links) — in those cases the body is sent exactly as supplied, and you must include a visible unsubscribe link in it yourself: add {{ UnsubscribeLink }} (a ready-made anchor) or {{ UnsubscribeUrl }} (the raw URL) where you want it. Its presence is not validated. A one-click List-Unsubscribe header is always added, but most anti-spam laws (e.g. CAN-SPAM) also require a visible unsubscribe link in the body.
Request
- Base URL: https://go.outseta.com
- URL: https://go.outseta.com/api/v1/email/campaigns/broadcasts
- Auth: one of:
- HTTP bearer
- API key in header Authorization
Request body
Example request
{
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"SendDateTime": "string",
"NextRunDateTime": "string",
"Campaign": {
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"Name": "string",
"FromName": "string",
"FromEmail": "string",
"CampaignType": 1
},
"Message": {
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"Template": {},
"Name": "string",
"Subject": "string",
"PreviewText": "string",
"Body": "string",
"Design": "string",
"CountSent": 0,
"CountDelivered": 0,
"CountBounce": 0,
"CountSpam": 0,
"CountOpen": 0,
"CountClick": 0,
"CountUnsubscribed": 0,
"CountTotalOpen": 0,
"CountTotalClick": 0,
"IgnoredSpamBounce": 0,
"IsBounceRatePaused": false,
"IsSpamScorePaused": false,
"EmailLinks": [],
"SpamAssassinScore": 0,
"SpamStatus": 0,
"SpamReason": "string"
},
"RecipientData": "string",
"EmailListUids": [
"string"
],
"SegmentUids": [
"string"
],
"TemplateUid": "string",
"Status": 1,
"ErrorMessage": "string",
"Tags": [
{
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"Name": "string",
"SystemName": "string",
"SystemDescription": "string",
"TagColor": 1,
"EntityType": 0
}
]
}Response
Example response
{
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"SendDateTime": "string",
"NextRunDateTime": "string",
"Campaign": {
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"Name": "string",
"FromName": "string",
"FromEmail": "string",
"CampaignType": 1
},
"Message": {
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"Template": {},
"Name": "string",
"Subject": "string",
"PreviewText": "string",
"Body": "string",
"Design": "string",
"CountSent": 0,
"CountDelivered": 0,
"CountBounce": 0,
"CountSpam": 0,
"CountOpen": 0,
"CountClick": 0,
"CountUnsubscribed": 0,
"CountTotalOpen": 0,
"CountTotalClick": 0,
"IgnoredSpamBounce": 0,
"IsBounceRatePaused": false,
"IsSpamScorePaused": false,
"EmailLinks": [],
"SpamAssassinScore": 0,
"SpamStatus": 0,
"SpamReason": "string"
},
"RecipientData": "string",
"EmailListUids": [
"string"
],
"SegmentUids": [
"string"
],
"TemplateUid": "string",
"Status": 1,
"ErrorMessage": "string",
"Tags": [
{
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"Name": "string",
"SystemName": "string",
"SystemDescription": "string",
"TagColor": 1,
"EntityType": 0
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.