v1

latestOpenAPI 3.1.0MIT2026-07-243952451019.0 KB
Emails::Broadcast

Create Email Broadcast

Create a new email broadcast. Broadcasts are created in DRAFT status — creating one does not send it. To send it, create a send action for the broadcast (POST /emails/broadcasts/{broadcast_id}/send_actions): omit send_at to send now, or pass a future send_at to schedule. (Alternatively, the legacy inline path accepts recipients with send_immediately=true, or send_at/send_at_local_time/time_zone to schedule.) When accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can send emails directly from your account. Prefer a verified sending address for from_email and reply_to_email: an unverified custom domain hurts deliverability, while the shared workspace-default domain is a safe fallback. List addresses (with their verification status) via GET /workspaces/{workspace_id}/emails/addresses.

post/workspaces/{workspace_id}/emails/broadcasts

Path parameters

workspace_idinteger required

Request body

Example request

{
  "emails_broadcast": {
    "emails_broadcast": {
      "name": "Weekly Newsletter",
      "subject": "This Week's Updates",
      "preheadline": "Check out what's new",
      "from_email": "marketing@example.com",
      "reply_to_email": "replies@example.com",
      "html_body": "<h1>Hello World</h1>",
      "text_body": "Hello World",
      "send_immediately": false,
      "send_at": "2025-06-01",
      "send_at_local_time": "18:00:00",
      "time_zone": "Pacific Time (US & Canada)",
      "topic_ids": [
        1,
        2
      ],
      "recipients": [
        {
          "email": "user@example.com",
          "first_name": "Jane",
          "last_name": "Doe"
        }
      ]
    }
  }
}

Response

Created

idinteger

Broadcast ID

public_idstring nullable

Broadcast public ID

workspace_idinteger

Workspace ID

namestring nullable

Internal name for the broadcast

subjectstring nullable

Email subject line seen by recipients

preheadlinestring nullable

Preview text shown in email clients before opening (max 150 characters)

status'draft' | 'scheduled' | 'sending' | 'paused' | 'unhealthy' | 'complete' | 'canceled'

Current broadcast status. New broadcasts start as draft.

origination_channel_typestring nullable

The type of origination channel that created this broadcast

origination_channel_idinteger nullable

The ID of the origination channel

external_idstring nullable

An optional external identifier for tracking purposes

filter_idinteger nullable

The contact filter determining which contacts receive this broadcast. Numeric Refine::StoredFilter id (not the public id) — the broadcast's own unnamed copy of the filter, created automatically from the filter_id (or recipients) supplied on create/update. null until an audience is set. See Applying filters to email broadcasts.

send_atstring nullable

Scheduled send date

send_at_local_timestring nullable

Scheduled send time in HH:MM:SS format, relative to the specified time zone

time_zonestring nullable

Time zone for scheduled sending

send_immediatelyboolean

Whether the broadcast sends immediately upon creation

sending_atstring date-time nullable

Timestamp when sending actually began

complete_atstring date-time nullable

Timestamp when sending completed

from_emailstring nullable

The sender email address

from_namestring nullable

The sender display name associated with the from address

reply_to_emailstring nullable

The reply-to email address

topic_idsinteger[]

IDs of topics associated with this broadcast

created_atstring date-time nullable

Created at datetime

updated_atstring date-time nullable

Updated at datetime

Example response

{
  "id": 1,
  "public_id": "GhIjKl",
  "workspace_id": 42000,
  "name": "Weekly Newsletter",
  "subject": "This Week's Updates",
  "preheadline": "Check out what's new",
  "status": "draft",
  "origination_channel_type": null,
  "origination_channel_id": null,
  "external_id": null,
  "filter_id": null,
  "send_at": null,
  "send_at_local_time": null,
  "time_zone": "Pacific Time (US & Canada)",
  "send_immediately": false,
  "sending_at": null,
  "complete_at": null,
  "from_email": "marketing@example.com",
  "from_name": "Marketing Team",
  "reply_to_email": null,
  "template": {
    "id": 3001,
    "public_id": "TmPl01",
    "name": "Weekly Newsletter Template"
  },
  "topic_ids": [
    1,
    2
  ],
  "created_at": "2025-01-01T00:00:00.000Z",
  "updated_at": "2025-01-01T00:00:00.000Z"
}