---
title: "Resume Campaign"
method: POST
path: "/api/v1/campaigns/{campaign_id}/resume"
tags: ["Campaigns"]
---

# Resume Campaign

`POST /api/v1/campaigns/{campaign_id}/resume`

## Request

- Base URL: `http://localhost:3009`
- URL: `http://localhost:3009/api/v1/campaigns/{campaign_id}/resume`
- Auth: HTTP bearer

Resumes a paused campaign and restarts its held leads. Also enrols leads that were added before a sequence existed. A campaign with no published sequence resumes but enrols nobody — publish first.

Safe to call on a campaign that is already active: it skips the hold sweep and reports `resumed: 0, requeued: 0`, still enrolling any leads waiting at `added`. The counters therefore only ever describe what this call actually changed.

## Path parameters

- `campaign_id` string, required

## Response `200`

Default Response

- object
  - `status` integer
  - `message` string
  - `data` object
    - `campaign_id` string
    - `state` 'active'
    - `resumed` integer: Leads whose campaign-pause hold this call released. `0` when the campaign was already running and nothing was held.
    - `requeued` integer: Held leads re-queued to advance. Re-queuing is idempotent, so this can be non-zero on a repeat call while `resumed` is 0.
    - `enrolled` integer: Leads enrolled into the sequence by this call

## Other responses

- `401`: Unauthorized — missing or invalid API key
- `403`: Forbidden. `code` says which permission refused: ROLE_FORBIDDEN (your role), INSUFFICIENT_SCOPE (the API key's scopes), WORKFLOW_FORBIDDEN (no access to the workflow), KEY_WORKFLOW_FORBIDDEN (the API key's workflow restriction).
- `404`: Campaign not found
- `429`: Too Many Requests — rate limit exceeded. Check `Retry-After` header for seconds until the limit resets.

---

[API](https://skmtc.dev/floqer/apis/floqer-public-api.md) - [All operations](https://skmtc.dev/floqer/apis/floqer-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/floqer/apis/floqer-public-api/revisions/fce50dc07b20?raw)
