---
title: "List contacts in sequence with extended state"
method: GET
path: "/v3/sequences/{id}/contacts/state"
tags: ["Sequence Contacts"]
---

# List contacts in sequence with extended state

`GET /v3/sequences/{id}/contacts/state`

<small>_Requires the `sequences:read` scope (or a broader one that includes it)._</small>

Retrieve contacts enrolled in the sequence with optional additional columns such as current step, last step completed at, and status.

The response always includes the base fields: `contactId`, `email`, `firstName`, `lastName`, `title`, `addedAt`. Additional fields (`currentStep`, `lastStepCompletedAt`, `status`) are **only** included when explicitly requested via the `additionalColumns` query parameter. Omitting `additionalColumns` returns only the base fields.

## Path parameters

- `id` integer, required

## Query parameters

- `top` integer
- `skip` integer
- `additionalColumns` string

## Response `200`

List of contacts with extended state data

- object — Response model for listing contacts in a sequence with pagination, including extended state columns
  - `items` object[] — Array of sequence contact items
    - `contactId` integer, required — Unique identifier of the contact
    - `email` string, email, required — Primary email address
    - `firstName` string, required — First name
    - `lastName` string, required — Last name
    - `title` string, required — Job title
    - `addedAt` string, date-time, required — Timestamp when the contact was added to the sequence
    - `currentStep` object — Current step in the sequence. **Only returned when `additionalColumns` includes `CurrentStep`.**
      - `stepId` integer, nullable — Identifier of the current step (`null` when the contact has finished the sequence)
      - `displayStepNumber` string — Display label of the current step (e.g. "1", "2A"), "Finished" when the contact has completed the sequence, or "Unknown" when the contact's current step is no longer part of the sequence.
      - `stepNumber` integer — Numeric position of the current step
    - `lastStepCompletedAt` string, date-time, nullable — Timestamp of the last completed step. **Only returned when `additionalColumns` includes `LastStepCompletedAt`.**
    - `status` object — Contact engagement status in the sequence. **Only returned when `additionalColumns` includes `Status`.**
      - `status` string — Current status of the contact in the sequence (e.g. Active, Paused, Finished)
      - `replied` boolean — Indicates if the contact has replied
      - `delivered` boolean — Indicates if the last email was delivered
      - `bounced` boolean — Indicates if the last email bounced
      - `opened` boolean — Indicates if the last email was opened
      - `clicked` boolean — Indicates if any link in the last email was clicked
  - `hasMore` boolean — Indicates if there are more items to fetch

## Other responses

- `400` — Route-parameter validation failure (e.g. non-positive `id`) or a business rule rejection (e.g. invalid `additionalColumns` value).
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — User lacks required feature scope to view this sequence
- `404` — Sequence not found
- `429` — Too Many Requests

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
