Skip to content

List sequences

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 List endpoints 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: sequences:read

Rate limit category: Search

Query ParametersExpand Collapse
limit: optional number

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

minimum1
maximum9007199254740991
offset: optional number

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

minimum0
maximum9007199254740991
ReturnsExpand Collapse
SequenceListResponse object { data, object, totalCount }
data: array of object { id, channels, createdAt, 8 more }
id: string

Unique identifier of the sequence.

channels: array of "EMAIL" or "LINKEDIN"

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

One of the following:
"EMAIL"
"LINKEDIN"
createdAt: string

ISO 8601 creation timestamp.

definition: object { description, messaging, pacing, 3 more }

Published configuration, or null before the first publish.

description: string

What this version of the sequence is for.

messaging: object { callToAction, persona, trigger, valueProp }

Messaging inputs that frame every step.

callToAction: string

What the recipient is asked to do.

persona: string

Who the sequence targets.

trigger: string

Why the outreach is timely.

valueProp: string

The value proposition.

pacing: object { EMAIL, LINKEDIN_INVITE, LINKEDIN_MESSAGE }

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

EMAIL: object { dailyLimit }

Email steps.

dailyLimit: number

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.

minimum-9007199254740991
maximum9007199254740991
LINKEDIN_INVITE: object { dailyLimit }

LinkedIn connection requests.

dailyLimit: number

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.

minimum-9007199254740991
maximum9007199254740991
LINKEDIN_MESSAGE: object { dailyLimit }

LinkedIn messages.

dailyLimit: number

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.

minimum-9007199254740991
maximum9007199254740991
priority: "HIGH" or "NORMAL"

Send priority relative to other sequences.

One of the following:
"HIGH"
"NORMAL"
sendWindow: object { daysOfWeek, endHour, startHour, timezone }

When the sequence may send.

daysOfWeek: array of number

Days sends may go out, 0 = Sunday.

endHour: number

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

minimum-9007199254740991
maximum9007199254740991
startHour: number

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

minimum-9007199254740991
maximum9007199254740991
timezone: string

IANA timezone of the window.

steps: array of object { id, deliveryMode, mode, 3 more } or object { id, deliveryMode, includeNote, 4 more } or object { id, deliveryMode, mode, 3 more } or 3 more

Email, LinkedIn and wait steps in execution order.

One of the following:
object { id, deliveryMode, mode, 3 more }
id: string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

deliveryMode: "AUTO" or "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.

One of the following:
"AUTO"
"FOR_REVIEW"
mode: "AGENT"

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

name: string

Display name of the step.

prompt: string

Instructions the agent follows when composing this message.

type: "EMAIL" or "LINKEDIN_MESSAGE"

Step type.

One of the following:
"EMAIL"
"LINKEDIN_MESSAGE"
object { id, deliveryMode, includeNote, 4 more }
id: string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

deliveryMode: "AUTO" or "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.

One of the following:
"AUTO"
"FOR_REVIEW"
includeNote: boolean

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

mode: "AGENT"

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

name: string

Display name of the step.

prompt: string

Instructions the agent follows when composing this message.

type: "LINKEDIN_INVITE"

Step type.

object { id, deliveryMode, mode, 3 more }
id: string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

deliveryMode: "AUTO" or "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.

One of the following:
"AUTO"
"FOR_REVIEW"
mode: "TEMPLATE"

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

name: string

Display name of the step.

template: object { body, subject }

The email every contact receives.

body: string

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: string

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: "EMAIL"

Step type.

object { id, deliveryMode, mode, 3 more }
id: string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

deliveryMode: "AUTO" or "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.

One of the following:
"AUTO"
"FOR_REVIEW"
mode: "TEMPLATE"

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

name: string

Display name of the step.

template: object { body }

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

body: string

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: "LINKEDIN_MESSAGE"

Step type.

object { id, deliveryMode, includeNote, 4 more }
id: string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

deliveryMode: "AUTO" or "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.

One of the following:
"AUTO"
"FOR_REVIEW"
includeNote: boolean

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

mode: "TEMPLATE"

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

name: string

Display name of the step.

template: object { body }

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

body: string

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: "LINKEDIN_INVITE"

Step type.

object { id, duration, type, unit }
id: string

Step identifier.

duration: number

Length of the wait.

minimum-9007199254740991
maximum9007199254740991
type: "WAIT" or "WAIT_FOR_CONNECTION"

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

One of the following:
"WAIT"
"WAIT_FOR_CONNECTION"
unit: "DAY" or "MINUTE"

Unit of duration.

One of the following:
"DAY"
"MINUTE"
firstActivatedAt: string

When the sequence was first activated.

lastActivatedAt: string

When the sequence was most recently activated.

name: string

Name of the sequence.

objectType: "sequence"

Always sequence.

reviewers: array of object { id, objectType }

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: string

ID of the member.

minLength1
objectType: "member"

Always member.

senders: array of object { id, objectType }

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: string

ID of the sender.

minLength1
objectType: "sender"

Always sender.

status: "DRAFT" or "ACTIVE" or "DEACTIVATED"

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

One of the following:
"DRAFT"
"ACTIVE"
"DEACTIVATED"
object: "list"
totalCount: number
minimum-9007199254740991
maximum9007199254740991

List sequences

curl https://api.lightfield.app/v1/sequences \
    -H 'Lightfield-Version: 2026-03-01' \
    -H "Authorization: Bearer $API_KEY"
{
  "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
}
Returns Examples
{
  "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
}