---
title: "Get sequence"
method: GET
path: "/sequences/{sequenceId}"
tags: ["Sequences"]
---

# Get sequence

`GET /sequences/{sequenceId}`

Returns sequence metadata, nodes, and editable email steps.

## Path parameters

- `sequenceId` string, required

## Response `200`

Sequence retrieved successfully

- object
  - `success` boolean
  - `sequence` SequenceDetails
    - `id` string
    - `name` string
    - `status` 'draft' | 'active' | 'paused' | 'archived'
    - `enrollmentPaused` boolean — Whether new enrollments are paused while current recipients continue.
    - `trigger` string, nullable
    - `sendingWindow` SequenceSendingWindow — Optional local-time sending window applied to every email step in a sequence. Email steps that become due outside the window wait until the next allowed local time.
      - `enabled` boolean
      - `timezone` string — IANA timezone for the window.
      - `startTime` string — Earliest local send time in 24-hour HH:mm format.
      - `endTime` string — Latest local send cutoff in 24-hour HH:mm format. Must be later than startTime.
      - `days` string[] — Allowed local days. Omit days when creating or updating to allow every day.
    - `bccEmails` string[], nullable — Email addresses blind-copied on every email this sequence sends.
    - `senderProfileId` string, nullable
    - `fromName` string, nullable
    - `fromEmail` string, email, nullable
    - `replyProfileId` string, nullable
    - `replyToName` string, nullable
    - `replyToEmail` string, email, nullable
    - `createdAt` string, date-time
    - `nodes` SequenceNode[]
      - `id` string
      - `automationId` string
      - `nodeType` string
      - `config` object
      - `position` SequencePosition
        - `x` number
        - `y` number
    - `edges` SequenceGraphEdgeInput[] — Editable sequence topology. Pass the complete set back to graphEdit.edges when replacing edges.
      - `sourceNodeId` string, required — Existing source node ID.
      - `targetNodeId` string, required — Existing target node ID.
      - `condition` object, nullable — Exact branch-lane condition for this edge. Omit or set null for an unconditional edge.
    - `graphRevision` string — Revision token for optimistic graph edits. Supply this as graphEdit.expectedRevision.
    - `emails` SequenceEmail[]
      - `nodeId` string
      - `emailId` string, nullable
      - `stepNumber` number, nullable
      - `name` string, nullable
      - `subject` string, nullable
      - `previewText` string, nullable
      - `delayNodeId` string, nullable — ID of the logic_delay node immediately before this email, when present.
      - `delayMs` number, nullable — Delay before this email in milliseconds, derived from the preceding logic_delay node when present.
      - `delayMode` 'duration' | 'until_date', nullable — Delay mode for the preceding logic_delay node, when present.
      - `waitUntil` SequenceWaitUntilInput — Wait until a date from the enrollment event/subscriber data, optionally offset before or after that date.
        - `field` string — Event/subscriber date field path to wait until.
        - `untilDateField` string — Alias for field.
        - `offset` SequenceDelayOffsetInput — Relative offset for a delay.
          - `days` number
          - `hours` number
          - `minutes` number
        - `days` number — Shorthand offset days when offset is omitted.
        - `hours` number — Shorthand offset hours when offset is omitted.
        - `minutes` number — Shorthand offset minutes when offset is omitted.
        - `direction` 'before' | 'after' — Whether the offset runs before or after the field date. Defaults to after.
        - `untilOffsetDirection` 'before' | 'after' — Alias for direction.
        - `missingAction` 'continue' | 'exit' — What to do when the date field is missing or invalid. Defaults to continue.
        - `untilMissingAction` 'continue' | 'exit' — Alias for missingAction.
      - `delayDisplay` string, nullable — Human-readable delay before this email, derived from the preceding logic_delay node when present.
      - `delayDescription` string, nullable — Description stored on the preceding logic_delay node, when present.
      - `blocks` EmailBlock[]
        - `id` string
        - `type` 'text' | 'html' | 'heading' | 'list' | 'button' | 'spacer' | 'divider' | 'image' | 'columns' | 'conditional-group' | 'repeat' | 'card' | 'cta' | 'social' | 'logo' | 'header' | 'footer' | 'video' | 'product' | 'discount-code' | 'code' | 'countdown' | 'hero' | 'testimonial' | 'gallery' | 'badge' | 'table' | 'features' | 'image-card' | 'pricing' | 'author' | 'article' | 'rating' | 'stats' | 'steps' | 'product-grid' | 'poll', required
        - `content` string — Content for text, html, and heading-like blocks.
        - `styles` object — Per-block visual styles. For compatibility, style fields such as backgroundColor, backgroundOpacity, borderColor, borderWidth, and borderRadius can also be supplied at the block top level and are normalized into this object.
          - `paddingTop` number
          - `paddingBottom` number
          - `paddingLeft` number
          - `paddingRight` number
          - `backgroundColor` string
          - `backgroundOpacity` number — Background opacity percentage from 0 to 100.
          - `textColor` string
          - `textAlign` 'left' | 'center' | 'right'
          - `borderRadius` number
          - `borderColor` string
          - `borderWidth` number
          - `bleed` boolean — Stretch the block edge-to-edge across the email container. Top-level blocks only.
        - `conditions` object[] — Optional per-block display rules. The block renders only when every rule matches. The same shape is used for a conditional-group block's top-level `conditions`.
          - `id` string, required
          - `field` 'variable' | 'attribute' | 'email' | 'firstName' | 'lastName', required — `variable` resolves a merge-tag path from the transactional send `variables` or an automation `event` payload (nested paths like `order.total` or `event.plan` work). `attribute` reads a stored subscriber attribute. `email`, `firstName`, and `lastName` read core subscriber fields.
          - `operator` 'is' | 'is_not' | 'contains' | 'not_contains' | 'gt' | 'gte' | 'lt' | 'lte' | 'is_empty' | 'is_not_empty', required
          - `value` string, required — For `variable` and `attribute`, use `name:value` - the part before the colon is the variable path or attribute name, and the part after it is the comparison value. For `email`, `firstName`, and `lastName`, provide the plain comparison string.
    - `stopCondition` SequenceStopCondition
      - `type` 'none' | 'has_tag' | 'does_not_have_tag' | 'added_to_list' | 'removed_from_list' | 'entered_segment' | 'field_changed' | 'event_received'
      - `value` string, nullable
    - `enrichmentStatus` 'pending' | 'in_progress' | 'complete'
    - `emailCount` number
    - `discountCount` number
    - `subscriberUpdateCount` number
    - `enrichedCount` number

## Other responses

- `401` — Unauthorized
- `403` — No company selected
- `404` — Sequence not found

## Changes

- **2026-07-16** `d7ea66dede72` — 14 warning, 1 info
  - added the new `article` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - added the new `author` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - added the new `badge` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - added the new `features` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - …11 more
- **2026-07-14** `83e7fd773745` — 6 warning, 2 info
  - added the new `code` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - added the new `countdown` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - added the new `discount-code` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - added the new `header` enum value to the `sequence/allOf[subschema #2]/emails/items/blocks/items/type` response property for the response status `200`
  - …4 more
- …earlier changes not shown

[Full history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/sequences/:sequenceId/get.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/ad2202945c5b/schema)
