Skip to content

List Sequence Steps

GET
/sequences/{sequence_id}/steps

List a sequence’s steps with their resolved copy. Read-only, no enrollment.

The step list from /preview without the sequence and channel envelope. Each step carries the same rendered block described on /preview, so this is the direct way to check what a given step will actually send.

Authorizations

Parameters

Path Parameters

sequence_id
required

Sequence ID

string

Sequence ID

Header Parameters

X-Target-Org-Id
Any of:
string

Responses

200

Successful Response

object
data
required

Response for GET /sequences/{id}/steps.

This route exists because callers reach for it first and used to get a bare 404, which sent them to /preview and its unrendered copy instead.

object
sequence_id
required
string
steps
Array<object>
object
id
required
string
input_type
required
string
rendered
Any of:

What a step’s copy actually looks like once spintax is resolved.

Exists because step_data is the stored TEMPLATE, not the delivered email. A caller reading raw {{a|b|c}} back out of a field called “preview” has no way to tell working spintax from broken spintax, which is precisely how a working feature got reported as broken (see the PR that added this).

object
body
required

Body with spintax resolved to one variant

string
content_issues

Findings from the same content-syntax validator that blocks launch, so a caller sees them here instead of discovering them as a 400 on run (or worse, as missing text in a delivered email). Each entry carries code, severity, message, field and snippet. An error-severity entry will block POST /sequences/{id}/run.

Array<object>
object
key
additional properties
any
spintax_blocks
required

Count of top-level spintax blocks across subject + body. 0 means this step contains no spintax at all, which distinguishes ‘nothing to vary’ from ‘spintax failed to resolve’.

integer
subject
required

Subject with spintax resolved to one variant

string
total_combinations
required

Distinct emails this step can produce. Always >= 1; a value of exactly 1 means the copy is too templated to vary, which is a legitimate outcome and not an error.

integer
variables_resolved

False for this endpoint. Spintax is resolved but {{variables}} are left visible on purpose, because a preview has no contact and resolving against an empty contact would delete the token and show a hole in the copy. Variables fill in at send time.

boolean
variants

Up to 3 distinct body renderings under different selection seeds. This is the proof that spintax works: if these differ, per-contact variation is functioning. Fewer than 3 entries means the copy cannot produce more.

Array<string>
will_send_as_shown

True when the rendered copy above is what a recipient actually gets. False means content_issues contains errors that make the delivered email differ from this preview, because malformed tokens are silently DELETED at send rather than raising. Do not launch on a false.

boolean
default: true
step_data
Any of:
object
key
additional properties
any
step_order
required
integer
step_type
required
string
time_interval
Any of:
integer
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string