---
title: "Enable sequence"
method: POST
path: "/sequences/{sequenceId}/enable"
tags: ["Sequences"]
---

# Enable sequence

`POST /sequences/{sequenceId}/enable`

Activates a sequence and opens it for new enrollments. Activation enforces the same readiness checks returned by simulateSequence; invalid triggers, incomplete steps, disconnected graphs, and archived sequences are rejected without changing status. If it was paused, held subscribers continue from their current step and due waits are queued gradually.

## Path parameters

- `sequenceId` string, required

## Response `200`

Sequence enabled successfully

- SequenceActionResponse
  - `success` boolean
  - `message` string
  - `sequenceId` string
  - `status` 'draft' | 'active' | 'paused' | 'archived' — Stored lifecycle status. Do not read literally: a sequence can be active while enrollmentPaused blocks new subscribers. Branch on effectiveStatus instead.
  - `enrollmentPaused` boolean — Present for enable/disable and enrollment pause/resume actions.
  - `effectiveStatus` 'draft' | 'live' | 'enrollment_paused' | 'paused' | 'archived' — Resolved run state, and the single field to branch on. live accepts new subscribers and advances existing recipients; enrollment_paused advances existing recipients only; draft, paused, and archived do neither.
  - `acceptsNewEnrollments` boolean — Whether new subscribers can enter the sequence right now.
  - `processesExistingEnrollments` boolean — Whether subscribers already inside the sequence keep advancing and receiving steps.
  - `effectiveStatusSummary` string — One plain-language sentence describing the run state, safe to show a user verbatim.

## Other responses

- `400` — Activation-readiness error, including invalid or disconnected graphs, incomplete steps, archived sequences, or missing discount-provider connections
- `401` — Unauthorized
- `403` — No company selected
- `404` — Sequence not found

## Changes

> 121 revisions in range; 3 could not be searched.

- **2026-08-19** `ba3a29c6eb33` — 4 info
  - added the optional property `retryable` to the response with the `400` status
  - added the optional property `retryable` to the response with the `401` status
  - added the optional property `retryable` to the response with the `403` status
  - added the optional property `retryable` to the response with the `404` status
- **2026-08-16** `6fd2903b91ce` — 4 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `403` status
  - added the optional property `code` to the response with the `404` status
- **2026-08-02** `36f92fc0caa2` — 4 breaking
  - the response property `success` became optional for the status `400`
  - the response property `success` became optional for the status `401`
  - the response property `success` became optional for the status `403`
  - the response property `success` became optional for the status `404`
- …earlier changes not shown

[Full history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/sequences/:sequenceId/enable/post.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/73f826277d9a/schema)
