Skip to main content
GET
List Sequence Enrollments

List Sequence Enrollments

List the contacts enrolled in one sequence, with the node each one is currently sitting on. Use this when sequence stats gives you enrollmentCounts and you need the actual subscribers behind a number - for example, everyone waiting at one step. By default the response includes only active and waiting enrollments, which is every contact still moving through the sequence.

Request

string
required
Sequence ID.
string
Comma-separated enrollment statuses to include: active, waiting, completed, failed, or cancelled. Defaults to active,waiting.
string
Comma-separated sequence node IDs. Only enrollments currently sitting on one of these nodes are returned. Node IDs come from Get Sequence or from enrollmentCounts.byCurrentNode in sequence stats.
string
Comma-separated subscriber IDs. Use this to check where specific contacts stand.
string
Exact email address to match, case-insensitive.
string
Result order: enrolled_at_desc (default), enrolled_at_asc, wait_until_asc, or wait_until_desc. Use wait_until_asc to see which contacts resume next; enrollments with no scheduled resume sort last.
number
Enrollments per page, 1-500. Defaults to 50. Values above 500 are capped.
number
Number of enrollments to skip. Page until pagination.hasMore is false.

Exporting the full list

Page with limit and offset until pagination.hasMore is false. The CLI does this loop for you and writes a CSV:

Response fields

Each enrollment is one run through the sequence, identified by enrollmentId.
  • waitUntil is when a waiting enrollment is scheduled to resume, or null when nothing is scheduled.
  • lastUpdatedAt is the last change to the enrollment. For a waiting enrollment this is when it arrived at its current node; the platform does not separately track node entry time.
  • currentNodeMissing is true when the node an enrollment sits on has been deleted from the sequence graph. currentNodeType and currentNodeLabel are omitted in that case.
  • email falls back to the address captured at enrollment when the subscriber record no longer exists.
  • failedReason explains why a failed enrollment stopped, and is null for every other status. Failures are terminal - the enrollment is not retried - so this is the only record of what went wrong.
  • movedFromNodeId, movedAt, and moveReason record a release performed by move enrollments. They are null for an enrollment that reached its current step on its own, so they are how you tell a released wave apart from organic arrivals.

Diagnosing a failing step

Filter to failures and group them by currentNodeId:
The same failedReason on the same currentNodeId across several enrollments points at that step’s configuration or content, not at the contacts. GET /v1/sequences/{sequenceId}/stats reports the same reasons per step as steps[].failedCount and steps[].failedSubscribers[].

Responses