---
title: "Resume paused subscribers in a sequence"
method: POST
path: "/sequences/{sequenceId}/enrollments/resume"
tags: ["Sequences"]
---

# Resume paused subscribers in a sequence

`POST /sequences/{sequenceId}/enrollments/resume`

## Request

- Base URL: `https://api.sequenzy.com/api/v1`
- URL: `https://api.sequenzy.com/api/v1/sequences/{sequenceId}/enrollments/resume`
- Auth: HTTP bearer

Continues paused contacts from the step they were paused on, with the status they had. Nothing restarts or is skipped. Waits keep their original wall-clock time, like a whole-sequence pause - a wait that ran out while paused continues right away, and one that has not still ends when it would have. Enrollments of the targeted contacts that are not paused are reported with outcome not_paused and left alone. When the sequence itself is disabled, sequenceRunning is false and the resumed contacts continue once it is enabled.

## Path parameters

- `sequenceId` string, required

## Request body

- SequenceEnrollmentResumeRequest: Provide subscriberIds, emails, or both. Up to 500 combined.
  - `subscriberIds` string[]: Subscriber IDs to resume.
  - `emails` string[]: Subscriber emails to resume, matched case-insensitively.

## Response `200`

Request applied; each targeted enrollment reports its outcome

- SequenceEnrollmentResumeResponse
  - `success` boolean, required
  - `sequenceId` string, required
  - `enrollments` SequenceEnrollmentPauseItem[], required: Every active, waiting, or paused enrollment of the targeted contacts in this sequence, with its outcome.
    - `enrollmentId` string, required
    - `subscriberId` string, required
    - `subscriberEmail` string, nullable, required
    - `currentNodeId` string, required: Step the enrollment is on. Pausing and resuming never change it.
    - `status` 'active' | 'waiting' | 'paused', required: Status after this request.
    - `waitUntil` string, date-time, nullable, required: When a waiting enrollment next runs its step, or null.
    - `pausedAt` string, date-time, nullable, required: When the current pause began; null unless status is paused.
    - `outcome` 'paused' | 'already_paused' | 'in_progress' | 'resumed' | 'not_paused', required: paused, already_paused, or in_progress (a step was running at that moment; repeat the request shortly) for pause. resumed or not_paused for resume.
  - `notEnrolled` object[], required: Targeted contacts that exist but have no active, waiting, or paused enrollment in this sequence.
    - `subscriberId` string
    - `email` string, nullable
  - `notFound` object, required
    - `subscriberIds` string[]
    - `emails` string[]
  - `message` string, required
  - `resumedCount` integer, required: Enrollments resumed by this request.
  - `notPausedCount` integer, required: Enrollments of the targeted contacts that were not paused.
  - `sequenceRunning` boolean, required: False when the sequence itself is disabled or not live; resumed contacts continue once it is enabled.
  - `enqueuedCount` integer, required: Resumed enrollments handed to the sending queue. Zero while the sequence is not running.
  - `enqueueErrors` object[], required: Resumed enrollments whose queue handoff failed. They stay resumed and are picked up by the stuck-enrollment sweeper.
    - `enrollmentId` string
    - `error` string

## Other responses

- `400`: Validation error, such as no subscriberIds or emails, or more than 500 combined
- `401`: Unauthorized
- `403`: No company selected or missing the sequences:enroll scope
- `404`: Sequence not found

## Changes

- **2026-10-23** `0cab06a3593a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/sequences/:sequenceId/enrollments/resume/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.dev/sequenzy/apis/sequenzy-api/revisions/3d816357b738?raw)
