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

# Cancel Campaign

> End a campaign for good. No new calls are placed. Live calls finish

Cancel a campaign. Recipients that are still `pending` become `cancelled`. Calls that are already live finish normally and are recorded against their recipients. A cancelled campaign cannot be resumed.

Cancelling works even when the workspace plan is not active.

## Request

### Headers

**Authorization** `string` *required*

Bearer token with your API key (scope `agents`)

### Path

**campaignId** `string` *required*

The campaign `id` (UUID)

## Response

**200 OK**. The campaign with `status: "cancelled"` and `completed_at` set. The fields match [Get campaign](https://docs.60db.ai/api-reference/agents/get-campaign.md).

## Errors

| Status | Code | Meaning |
| - | - | - |
| 403 | `POLICY_DENY` | Your role cannot control campaigns, or the API key lacks the `agents` scope |
| 404 | `CAMPAIGN_NOT_FOUND` | No campaign with this ID in your workspace |
| 409 | `CAMPAIGN_NOT_EDITABLE` | The campaign has already finished (`completed` or `cancelled`) |

## Example

```bash cURL theme={null}
curl -X POST https://api.60db.ai/agents/campaigns/CAMPAIGN_ID/cancel \
  -H "Authorization: Bearer your-api-key"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.