> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Resume Campaign

> Resume a paused campaign

Resume a campaign in `paused` status. Sending continues with the remaining recipients. When the campaign has a linked A/B test, the test or winner phase resumes from where it stopped.

## Request

<ParamField path="campaignId" type="string" required>
  Campaign ID.
</ParamField>

<ParamField body="spreadOverHours" type="number">
  Spread the remaining delivery over this many hours. Must be an integer from 1
  to 72. Pass `null` to clear an existing spread. Omit to keep the campaign's
  current setting.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/campaigns/camp_abc123/resume" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"spreadOverHours": 6}'
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "campaign": {
      "id": "camp_abc123",
      "name": "April Launch",
      "subject": "A quick update",
      "status": "sending",
      "labels": [],
      "scheduledAt": "2026-06-01T14:00:00.000Z",
      "sentAt": null,
      "createdAt": "2026-05-20T10:00:00.000Z",
      "url": "https://sequenzy.com/dashboard/company/comp_abc123/campaign/camp_abc123",
      "previewUrl": "https://sequenzy.com/dashboard/company/comp_abc123/campaign/camp_abc123?step=review"
    }
  }
  ```

  ```json 400 theme={null}
  {
    "error": "Cannot resume a campaign in \"sending\" status."
  }
  ```

  ```json 400 theme={null}
  {
    "error": "spreadOverHours must be an integer between 1 and 72."
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Invalid API key"
  }
  ```

  ```json 404 theme={null}
  {
    "error": "Campaign not found"
  }
  ```

  ```json 409 theme={null}
  {
    "error": "Campaign status has changed and can no longer be resumed."
  }
  ```
</ResponseExample>
