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

# List contacts in sequence

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

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

Retrieve all contacts enrolled in the sequence. Defaults to most-recently-added first; use `sort_by` and `sort_direction` to override.

## Path parameters

- `id` integer, required

## Query parameters

- `top` integer
- `skip` integer
- `sort_by` 'addingDate' | 'email' | 'firstName' | 'lastName' | 'company' | 'statusInSequence'
- `sort_direction` 'asc' | 'desc'

## Response `200`

List of contacts in sequence

- object — Response model for listing contacts in a sequence with pagination
  - `items` object[] — Array of sequence contact items
    - `contactId` integer — Contact ID
    - `sequenceId` integer — Sequence ID
    - `email` string, nullable — Contact email address
    - `firstName` string, nullable — Contact first name
    - `lastName` string, nullable — Contact last name
    - `company` string, nullable — Contact company name
    - `title` string, nullable — Contact job title
    - `statusInSequence` 'active' | 'paused' | 'finished' | 'inactive' | 'outOfOffice' — Contact's status in this sequence. The writable subset (`active`, `paused`, `finished`, `outOfOffice`) can be set via `POST /v3/sequences/{id}/contacts/set-status-in-sequence`. `inactive` is set by the system when the contact is missing data needed to continue (e.g. no email when the next step is an email step).
    - `isOptedOut` boolean — Whether the contact has opted out (contact-level flag, not sequence-scoped)
    - `callStatus` 'none' | 'toCall' | 'called' — Contact-level call status. Set via `PATCH /v3/contacts/{id}` (`callStatus` field). Pass `none` to clear.
    - `meetingStatus` 'none' | 'meetingBooked' — Contact-level meeting status. Set via `PATCH /v3/contacts/{id}` (`meetingStatus` field). Pass `none` to clear.
    - `emailDisposition` object, nullable — Reply/bounce status for the most recent email sent to this contact in this sequence. `null` when no email has been sent to this contact yet in this sequence. Otherwise an object with `isReplied` and `isBounced` flags. `false`/`false` here means an email was sent but no reply or bounce was registered — distinct from the `null` "never sent" state.
      - `isReplied` boolean, required — Whether the contact has replied to any email in this sequence
      - `isBounced` boolean, required — Whether any email sent to this contact in this sequence has bounced
    - `currentStep` object — Current sequence step the contact is on. Always present in the response. When the contact has no in-progress step (e.g. finished or paused at the end of the sequence), `stepId` is `null` and `displayName` is `"Finished"`.
      - `stepId` integer, nullable, required — Identifier of the current step. `null` when the contact has no active step.
      - `displayName` string, nullable, required — Display label of the current step (e.g. `"1"`, `"2A"`, or `"Finished"`).
    - `addingDate` string, date-time — Date the contact was added to the sequence
    - `emailAccountId` integer, nullable — Identifier of the email account this contact is assigned to send from in this sequence. `null` when no email account is assigned (e.g. the sequence has no email steps the contact has reached, or the assignment hasn't been resolved yet).
    - `linkedInAccountId` integer, nullable — Identifier of the LinkedIn account this contact is assigned to send from in this sequence. `null` when no LinkedIn account is assigned (e.g. the sequence has no LinkedIn steps the contact has reached).
  - `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 pagination or invalid sort parameters).
- `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)
