Sequences API

Sequences are automated email drip campaigns. A sequence consists of ordered steps – emails, delays, conditions, and actions – that subscribers progress through over time. The Sequences API lets you list sequences, inspect their steps, and add or remove subscribers.

Base URL

https://app.sendbroadcast.com/api/v1

Authentication

Sequence endpoints require a Bearer token with sequence read and/or sequence write permissions. Adding and removing subscribers also requires subscriber write permissions. See Authentication for details.

The Sequence Object

Field Type Description
id integer Unique identifier.
label string Name of the sequence.
active boolean Whether the sequence is actively processing subscribers.
track_opens boolean Whether open tracking is enabled for sequence emails.
track_clicks boolean Whether click tracking is enabled for sequence emails.
use_any_email_server boolean Whether to use any available email server.
email_server_ids array IDs of specific email servers to use.
init_segment_id integer Segment ID to auto-enroll subscribers from.
init_tag string Tag that triggers auto-enrollment when added to a subscriber.
parent_sequence_id integer ID of the parent sequence (for branching).
subscribers_count integer Number of subscribers currently in the sequence.
created_at datetime When the sequence was created.
updated_at datetime When the sequence was last updated.

Example Sequence Object

{
  "id": 5,
  "label": "Welcome Series",
  "active": true,
  "track_opens": true,
  "track_clicks": true,
  "use_any_email_server": false,
  "email_server_ids": [1],
  "init_segment_id": null,
  "init_tag": "new-signup",
  "parent_sequence_id": null,
  "subscribers_count": 1250,
  "created_at": "2025-01-10T08:00:00.000Z",
  "updated_at": "2025-03-01T12:00:00.000Z"
}

The Step Object

When you request a sequence with include_steps=true, the response includes a steps array. Each step represents one action in the sequence flow.

Field Type Description
id integer Unique identifier.
action string The step type. See Step Action Types.
label string Display label for the step.
parent_id integer ID of the parent step (for branching flows).
true_branch boolean Whether this step is on the “true” branch of a condition.

Step Action Types

Action Description
entry_point The starting point of the sequence. Every sequence has one.
send_email Send an email to the subscriber.
delay Wait for a specified duration before continuing.
delay_until_time Wait until a specific time of day before continuing.
condition Evaluate a condition and branch the flow.
condition_branch A branch path from a condition step.
move_to_sequence Move the subscriber to a different sequence.
deactivate_subscriber Deactivate the subscriber (set is_active to false).
add_tag_to_subscriber Add a tag to the subscriber.
remove_tag_from_subscriber Remove a tag from the subscriber.
make_http_request Send an HTTP request to an external URL (webhook).

List Sequences

Retrieve all sequences for your channel.

GET /api/v1/sequences

Query Parameters

Parameter Type Description
limit integer Maximum number of sequences to return.
offset integer Number of sequences to skip.

Example Request

curl -X GET "https://app.sendbroadcast.com/api/v1/sequences?limit=10" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 5,
      "label": "Welcome Series",
      "active": true,
      "track_opens": true,
      "track_clicks": true,
      "use_any_email_server": false,
      "email_server_ids": [1],
      "init_segment_id": null,
      "init_tag": "new-signup",
      "parent_sequence_id": null,
      "subscribers_count": 1250,
      "created_at": "2025-01-10T08:00:00.000Z",
      "updated_at": "2025-03-01T12:00:00.000Z"
    }
  ],
  "total": 8
}

Get a Sequence

Retrieve details for a single sequence. Pass include_steps=true to include the sequence’s step definitions.

GET /api/v1/sequences/:id

Query Parameters

Parameter Type Description
include_steps string Set to "true" to include the sequence steps in the response.

Example Request

curl -X GET "https://app.sendbroadcast.com/api/v1/sequences/5?include_steps=true" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

Example Response

{
  "id": 5,
  "label": "Welcome Series",
  "active": true,
  "track_opens": true,
  "track_clicks": true,
  "use_any_email_server": false,
  "email_server_ids": [1],
  "init_segment_id": null,
  "init_tag": "new-signup",
  "parent_sequence_id": null,
  "subscribers_count": 1250,
  "created_at": "2025-01-10T08:00:00.000Z",
  "updated_at": "2025-03-01T12:00:00.000Z",
  "steps": [
    {
      "id": 10,
      "action": "entry_point",
      "label": "Start",
      "parent_id": null,
      "true_branch": null
    },
    {
      "id": 11,
      "action": "send_email",
      "label": "Welcome Email",
      "parent_id": 10,
      "true_branch": null
    },
    {
      "id": 12,
      "action": "delay",
      "label": "Wait 2 days",
      "parent_id": 11,
      "true_branch": null
    },
    {
      "id": 13,
      "action": "send_email",
      "label": "Getting Started Guide",
      "parent_id": 12,
      "true_branch": null
    }
  ]
}

Add a Subscriber to a Sequence

Enroll a subscriber into a sequence. The subscriber will begin at the entry point and progress through each step.

POST /api/v1/sequences/:id/add_subscriber

Request Body

Parameters are nested under a subscriber key.

Parameter Type Required Description
subscriber[email] string Yes Email address of the subscriber to enroll.
subscriber[first_name] string No First name (used if creating the subscriber).
subscriber[last_name] string No Last name (used if creating the subscriber).

Example Request

curl -X POST "https://app.sendbroadcast.com/api/v1/sequences/5/add_subscriber" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriber": {
      "email": "[email protected]"
    }
  }'

Response

Status: 201 Created (empty body)

Error Response

Status: 422 Unprocessable Content (empty body) – the subscriber could not be added, e.g., they are already enrolled.


Remove a Subscriber from a Sequence

Remove a subscriber from a sequence, stopping their progression through the steps.

DELETE /api/v1/sequences/:id/remove_subscriber

Request Body

Parameters are nested under a subscriber key.

Parameter Type Required Description
subscriber[email] string Yes Email address of the subscriber to remove.

Example Request

curl -X DELETE "https://app.sendbroadcast.com/api/v1/sequences/5/remove_subscriber" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriber": {
      "email": "[email protected]"
    }
  }'

Response

Status: 200 OK (empty body)

Error Response

Status: 422 Unprocessable Content (empty body) – the subscriber could not be removed.


Error Responses

Status Code Description
401 Unauthorized Missing or invalid API token, or token lacks sequence/subscriber permissions.
404 Not Found Sequence with the given ID does not exist in your channel.
422 Unprocessable Content The operation could not be completed.

Next: Segments API - Query and manage subscriber segments via API.