## List sequences

`sequence.list(SequenceListParams**kwargs)  -> SequenceListResponse`

**get** `/v1/sequences`

Returns a paginated list of sequences, including ones that have never been published. Results are sorted by when the sequence was created (`createdAt`), newest first. Use `offset` and `limit` to paginate through results, and bracketed filters to narrow the list. See <u>[List endpoints](/using-the-api/list-endpoints/)</u> for more information about pagination.

Supported filters: `status[equal]` (DRAFT, ACTIVE, DEACTIVATED), `channels[contains]` (EMAIL, LINKEDIN), and `createdAt`, `firstActivatedAt` or `lastActivatedAt` with `[greaterThanOrEqual]` or `[lessThanOrEqual]` (ISO 8601 timestamps with a timezone). Filters are combined with AND.

**[Required scope](/using-the-api/scopes/):** `sequences:read`

**[Rate limit category](/using-the-api/rate-limits/):** Search

### Parameters

- `limit: Optional[int]`

  Maximum number of records to return. Defaults to 25, maximum 25.

- `offset: Optional[int]`

  Number of records to skip for pagination. Defaults to 0.

### Returns

- `class SequenceListResponse: …`

  - `data: List[Data]`

    - `id: str`

      Unique identifier of the sequence.

    - `channels: List[Literal["EMAIL", "LINKEDIN"]]`

      Channels the published steps send on; empty before the first publish.

      - `"EMAIL"`

      - `"LINKEDIN"`

    - `created_at: str`

      ISO 8601 creation timestamp.

    - `definition: Optional[DataDefinition]`

      Published configuration, or null before the first publish.

      - `description: str`

        What this version of the sequence is for.

      - `messaging: DataDefinitionMessaging`

        Messaging inputs that frame every step.

        - `call_to_action: Optional[str]`

          What the recipient is asked to do.

        - `persona: Optional[str]`

          Who the sequence targets.

        - `trigger: Optional[str]`

          Why the outreach is timely.

        - `value_prop: Optional[str]`

          The value proposition.

      - `pacing: DataDefinitionPacing`

        How the whole sequence paces each step type it sends, keyed by sequence step type.

        - `email: DataDefinitionPacingEmail`

          Email steps.

          - `daily_limit: Optional[int]`

            Most sends of this step type across the whole sequence in any rolling 24 hours, or null when the sequence sets no daily cap. Workspace and sender limits still apply.

        - `linkedin_invite: DataDefinitionPacingLinkedinInvite`

          LinkedIn connection requests.

          - `daily_limit: Optional[int]`

            Most sends of this step type across the whole sequence in any rolling 24 hours, or null when the sequence sets no daily cap. Workspace and sender limits still apply.

        - `linkedin_message: DataDefinitionPacingLinkedinMessage`

          LinkedIn messages.

          - `daily_limit: Optional[int]`

            Most sends of this step type across the whole sequence in any rolling 24 hours, or null when the sequence sets no daily cap. Workspace and sender limits still apply.

      - `priority: Literal["HIGH", "NORMAL"]`

        Send priority relative to other sequences.

        - `"HIGH"`

        - `"NORMAL"`

      - `send_window: DataDefinitionSendWindow`

        When the sequence may send.

        - `days_of_week: List[int]`

          Days sends may go out, 0 = Sunday.

        - `end_hour: int`

          Local hour sends stop, exclusive (1–24).

        - `start_hour: int`

          First local hour sends may go out (0–23).

        - `timezone: str`

          IANA timezone of the window.

      - `steps: List[DataDefinitionStep]`

        Email, LinkedIn and wait steps in execution order.

        - `class DataDefinitionStepUnionMember0: …`

          - `id: str`

            Step identifier, referenced by enrollment `currentStepId` and message `sequenceStepId`.

          - `delivery_mode: Literal["AUTO", "FOR_REVIEW"]`

            `AUTO` sends without manual approval, subject to the send window and limits; `FOR_REVIEW` requires a person to approve the draft before sending.

            - `"AUTO"`

            - `"FOR_REVIEW"`

          - `mode: Literal["AGENT"]`

            How each message is written: `AGENT` composes it from `prompt`; `TEMPLATE` sends `template` to every contact, with its variables filled in.

            - `"AGENT"`

          - `name: str`

            Display name of the step.

          - `prompt: str`

            Instructions the agent follows when composing this message.

          - `type: Literal["EMAIL", "LINKEDIN_MESSAGE"]`

            Step type.

            - `"EMAIL"`

            - `"LINKEDIN_MESSAGE"`

        - `class DataDefinitionStepUnionMember1: …`

          - `id: str`

            Step identifier, referenced by enrollment `currentStepId` and message `sequenceStepId`.

          - `delivery_mode: Literal["AUTO", "FOR_REVIEW"]`

            `AUTO` sends without manual approval, subject to the send window and limits; `FOR_REVIEW` requires a person to approve the draft before sending.

            - `"AUTO"`

            - `"FOR_REVIEW"`

          - `include_note: bool`

            Whether the connection request carries a note. A step authored before this setting existed reads as true.

          - `mode: Literal["AGENT"]`

            How each message is written: `AGENT` composes it from `prompt`; `TEMPLATE` sends `template` to every contact, with its variables filled in.

            - `"AGENT"`

          - `name: str`

            Display name of the step.

          - `prompt: str`

            Instructions the agent follows when composing this message.

          - `type: Literal["LINKEDIN_INVITE"]`

            Step type.

            - `"LINKEDIN_INVITE"`

        - `class DataDefinitionStepUnionMember2: …`

          - `id: str`

            Step identifier, referenced by enrollment `currentStepId` and message `sequenceStepId`.

          - `delivery_mode: Literal["AUTO", "FOR_REVIEW"]`

            `AUTO` sends without manual approval, subject to the send window and limits; `FOR_REVIEW` requires a person to approve the draft before sending.

            - `"AUTO"`

            - `"FOR_REVIEW"`

          - `mode: Literal["TEMPLATE"]`

            How each message is written: `AGENT` composes it from `prompt`; `TEMPLATE` sends `template` to every contact, with its variables filled in.

            - `"TEMPLATE"`

          - `name: str`

            Display name of the step.

          - `template: DataDefinitionStepUnionMember2Template`

            The email every contact receives.

            - `body: str`

              Email body as Markdown, without the sign-off or signature, which are added when the message is written. Each `{{ }}` is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the `ad_` ID the field-definitions endpoints list.

            - `subject: str`

              Plain-text subject line. Each `{{ }}` is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the `ad_` ID the field-definitions endpoints list.

          - `type: Literal["EMAIL"]`

            Step type.

            - `"EMAIL"`

        - `class DataDefinitionStepUnionMember3: …`

          - `id: str`

            Step identifier, referenced by enrollment `currentStepId` and message `sequenceStepId`.

          - `delivery_mode: Literal["AUTO", "FOR_REVIEW"]`

            `AUTO` sends without manual approval, subject to the send window and limits; `FOR_REVIEW` requires a person to approve the draft before sending.

            - `"AUTO"`

            - `"FOR_REVIEW"`

          - `mode: Literal["TEMPLATE"]`

            How each message is written: `AGENT` composes it from `prompt`; `TEMPLATE` sends `template` to every contact, with its variables filled in.

            - `"TEMPLATE"`

          - `name: str`

            Display name of the step.

          - `template: DataDefinitionStepUnionMember3Template`

            The message every contact receives; for an invite, its connection note, sent only with `includeNote`.

            - `body: str`

              Plain-text message. Each `{{ }}` is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the `ad_` ID the field-definitions endpoints list.

          - `type: Literal["LINKEDIN_MESSAGE"]`

            Step type.

            - `"LINKEDIN_MESSAGE"`

        - `class DataDefinitionStepUnionMember4: …`

          - `id: str`

            Step identifier, referenced by enrollment `currentStepId` and message `sequenceStepId`.

          - `delivery_mode: Literal["AUTO", "FOR_REVIEW"]`

            `AUTO` sends without manual approval, subject to the send window and limits; `FOR_REVIEW` requires a person to approve the draft before sending.

            - `"AUTO"`

            - `"FOR_REVIEW"`

          - `include_note: bool`

            Whether the connection request carries a note. A step authored before this setting existed reads as true.

          - `mode: Literal["TEMPLATE"]`

            How each message is written: `AGENT` composes it from `prompt`; `TEMPLATE` sends `template` to every contact, with its variables filled in.

            - `"TEMPLATE"`

          - `name: str`

            Display name of the step.

          - `template: DataDefinitionStepUnionMember4Template`

            The message every contact receives; for an invite, its connection note, sent only with `includeNote`.

            - `body: str`

              Plain-text message. Each `{{ }}` is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the `ad_` ID the field-definitions endpoints list.

          - `type: Literal["LINKEDIN_INVITE"]`

            Step type.

            - `"LINKEDIN_INVITE"`

        - `class DataDefinitionStepUnionMember5: …`

          - `id: str`

            Step identifier.

          - `duration: int`

            Length of the wait.

          - `type: Literal["WAIT", "WAIT_FOR_CONNECTION"]`

            `WAIT` pauses for a fixed time; `WAIT_FOR_CONNECTION` waits up to that long for a LinkedIn invite to be accepted.

            - `"WAIT"`

            - `"WAIT_FOR_CONNECTION"`

          - `unit: Literal["DAY", "MINUTE"]`

            Unit of `duration`.

            - `"DAY"`

            - `"MINUTE"`

    - `first_activated_at: Optional[str]`

      When the sequence was first activated.

    - `last_activated_at: Optional[str]`

      When the sequence was most recently activated.

    - `name: str`

      Name of the sequence.

    - `object_type: Literal["sequence"]`

      Always `sequence`.

      - `"sequence"`

    - `reviewers: List[DataReviewer]`

      Extra members who may approve this sequence’s `FOR_REVIEW` messages before they send. The sending member and the sequence’s creator always review, whether or not they are listed.

      - `id: str`

        ID of the member.

      - `object_type: Literal["member"]`

        Always `member`.

        - `"member"`

    - `senders: List[DataSender]`

      The senders this sequence sends from; new contacts rotate across them. An archived sender stays listed but never sends; any change to the list drops it.

      - `id: str`

        ID of the sender.

      - `object_type: Literal["sender"]`

        Always `sender`.

        - `"sender"`

    - `status: Literal["DRAFT", "ACTIVE", "DEACTIVATED"]`

      `DRAFT` has not been published; `ACTIVE` is enabled for sending; `DEACTIVATED` is published but paused.

      - `"DRAFT"`

      - `"ACTIVE"`

      - `"DEACTIVATED"`

  - `object: Literal["list"]`

    - `"list"`

  - `total_count: int`

### Example

```python
from lightfield import Lightfield

client = Lightfield(
    api_key="My API Key",
)
sequence_list_response = client.sequence.list()
print(sequence_list_response.data)
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "channels": [
        "EMAIL"
      ],
      "createdAt": "createdAt",
      "definition": {
        "description": "description",
        "messaging": {
          "callToAction": "callToAction",
          "persona": "persona",
          "trigger": "trigger",
          "valueProp": "valueProp"
        },
        "pacing": {
          "EMAIL": {
            "dailyLimit": -9007199254740991
          },
          "LINKEDIN_INVITE": {
            "dailyLimit": -9007199254740991
          },
          "LINKEDIN_MESSAGE": {
            "dailyLimit": -9007199254740991
          }
        },
        "priority": "HIGH",
        "sendWindow": {
          "daysOfWeek": [
            -9007199254740991
          ],
          "endHour": -9007199254740991,
          "startHour": -9007199254740991,
          "timezone": "timezone"
        },
        "steps": [
          {
            "id": "id",
            "deliveryMode": "AUTO",
            "mode": "AGENT",
            "name": "name",
            "prompt": "prompt",
            "type": "EMAIL"
          }
        ]
      },
      "firstActivatedAt": "firstActivatedAt",
      "lastActivatedAt": "lastActivatedAt",
      "name": "name",
      "objectType": "sequence",
      "reviewers": [
        {
          "id": "x",
          "objectType": "member"
        }
      ],
      "senders": [
        {
          "id": "x",
          "objectType": "sender"
        }
      ],
      "status": "DRAFT"
    }
  ],
  "object": "list",
  "totalCount": -9007199254740991
}
```
