---
title: "Cancel campaign"
method: POST
path: "/campaigns/{id}/cancel"
tags: ["Campaigns"]
---

# Cancel campaign

`POST /campaigns/{id}/cancel`

Cancel a campaign and mark it as canceled.

**Cancelable source states:** `scheduled` or `paused` (all channel types), or `started` (email only). Any other status (e.g. `draft`, `sent`, `canceled`) returns 409.

Supported cases:
- Any scheduled or paused campaign (all channel types)
- Started email campaigns

**Note:** For started campaigns, cancellation is best-effort — messages already in flight may still be delivered.

**Scopes:**
`campaigns.write`

## Path parameters

- `id` string, required

## Headers

- `Omnisend-Version` string, required

## Response `204`

Campaign cancel initiated successfully

## Other responses

- `400` — Request contains invalid or missing fields
- `401` — Authentication is missing or invalid
- `403` — Insufficient permissions for this operation
- `404` — Campaign not found
- `409` — Campaign is not in a cancelable state (only scheduled, or started/paused email campaigns can be canceled)
- `410` — API version has been retired
- `422` — Campaign type is not supported
- `429` — Rate limit exceeded
- `500` — Unexpected error occurred

---

[API](https://skmtc.net/omnisend/apis/events-api.md) · [All operations](https://skmtc.net/omnisend/apis/events-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/omnisend/events-api/versions/50214fbc283f/schema)
