---
title: "Control a campaign — start, pause, resume or cancel"
method: POST
path: "/v1/campaigns/{campaign_id}/action"
tags: ["Campaigns", "Campaigns"]
---

# Control a campaign — start, pause, resume or cancel

`POST /v1/campaigns/{campaign_id}/action`

## Request

- Base URL: `https://api.call2me.app`
- URL: `https://api.call2me.app/v1/campaigns/{campaign_id}/action`
- Auth: HTTP bearer

Drive the lifecycle of a campaign. Send `{action: "<verb>"}` where verb is one of:

- **start** — begin dialing (campaign moves draft → running)
- **pause** — temporarily halt the dialer (running → paused); in-flight calls are allowed to finish
- **resume** — pick up where it left off (paused → running)
- **cancel** — stop and finalize (any → cancelled); pending contacts will not be called

Common automation pattern: create campaign → upload CSV → start. Pause/resume is useful when integrating with business hours or external pacing logic.

## Path parameters

- `campaign_id` string, required

## Request body

- CampaignActionRequest
  - `action` string, required

## Response `200`

Confirmation with the new campaign status.

- unknown

## Other responses

- `400`: Action not valid in current state (e.g. starting an already-running campaign).
- `404`: Campaign not found.
- `422`: Validation Error

---

[API](https://skmtc.dev/call2me/apis/call2me-api.md) · [All operations](https://skmtc.dev/call2me/apis/call2me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/call2me/apis/call2me-api/revisions/3951f9b7e47d?raw)
