Emails::Broadcast

List Email Broadcasts

Changed on

List all email broadcasts for a workspace. Filterable by id and status.

get/workspaces/{workspace_id}/emails/broadcasts

Request

Path parameters

workspace_idstring required

Query parameters

afterstring

ID of item after which the collection should be returned. More examples and info about pagination in our guides.

per_pageinteger

Records per page. Defaults to 20; raise it up to 100 for bulk reads. A larger value returns 100 records. Zero, a negative or a non-integer value is a 422. The Link next-page URL keeps the value, so a client following it keeps the page size. More in our guides.

sort_order'asc' | 'desc'

Sort order of a list response. Use 'desc' to reverse the default 'asc' (ascending) sort order. Examples in our guides.

sort_property'id' | 'updated_at'

Sort property of a list response. The default is id and thus the created_at order. If you sort by other properties, we additionally sort by id implicitly as a secondary sort property, so that you can rely on the sort order to be deterministic even if the main sort property ends up with the same values.

idstring

A comma-separated list of broadcast IDs to filter by.

statusstring

A comma-separated list of statuses to filter by (draft, scheduled, sending, paused, unhealthy, complete, canceled).

Filter by available properties in query params, like this: api/v2/resources?filter[id]=value&filter[another_property]=value1,value2. Check our Filtering guide for examples and all about filtering here.

{
  "id": "1,42",
  "status": "draft,scheduled"
}

Response

OK

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

smart_sendingboolean

Whether Smart Sending is on. When on, the broadcast is delivered gradually across a window instead of all at once, which protects deliverability. Defaults to true, so a broadcast batches unless you explicitly send smart_sending: false. Above 5,000 recipients Smart Sending is mandatory: the API may coerce false to true, and the send batches at that size regardless of the stored value.

smart_sending_timenumber nullable

How many smart_sending_units the delivery window spans. null means no override is stored and the window is sized from the audience instead.

smart_sending_unit'hour' | 'day' | 'null' nullable

The unit of the Smart Sending delivery window. null means no override is stored and the window is sized from the audience instead.

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

split_testboolean

Whether this broadcast is a subject-line split test. When true, a split_test_percentage share of the audience is split evenly across the variants; after split_test_wait_time hours the variant with the most opens wins and the rest of the audience receives it.

split_test_percentageinteger nullable

Share of the audience (0-100) used for the test sends. This can remain populated while a configured test is disabled, and is null when no percentage has been configured.

split_test_wait_timeinteger nullable

Hours to wait after the test sends before the winner is picked. This can remain populated while a configured test is disabled, and is null when no wait time has been configured.

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,
    "smart_sending": true,
    "smart_sending_time": 0.5,
    "smart_sending_unit": "hour",
    "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
    ],
    "split_test": false,
    "split_test_percentage": null,
    "split_test_wait_time": null,
    "variants": [
      {
        "subject": "This Week's Updates",
        "preheadline": "Check out what's new",
        "send_percentage": 100,
        "main": true,
        "open_count": 0,
        "winner": null
      }
    ],
    "created_at": "2025-01-01T00:00:00.000Z",
    "updated_at": "2025-01-01T00:00:00.000Z"
  }
]

Changes

    • info

      added the new optional query request parameter per_page

    • info

      for the path request parameter workspace_id, the type was generalized from integer to string

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status