---
title: "Delete an SMS campaign"
description: "Archive a draft or finished SMS campaign; its delivery history is kept and an already archived campaign returns 204 again. `DELETE /api/v1/sms/campaigns/{id}`"
url: https://www.unitpost.com/docs/sms/delete-sms-campaigns-id
section: "SMS API reference"
updated: 2026-10-13
---
# Delete an SMS campaign

`DELETE /api/v1/sms/campaigns/{id}`

Archive a draft or finished SMS campaign; its delivery history is kept and an already archived campaign returns `204` again. Restore it with `{ "archived": false }` on [Update an SMS campaign](https://www.unitpost.com/docs/sms/patch-sms-campaigns-id). A scheduled, sending or paused campaign returns `409`: cancel it first with [Cancel an SMS campaign](https://www.unitpost.com/docs/sms/post-sms-campaigns-id-cancel). Requires the `campaigns:write` capability.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | — |

## Responses

| Status | Description |
| --- | --- |
| 204 | Deleted. |
| 401 | Missing or invalid API key. |
| 403 | Insufficient scope, or SMS is not on this plan. |
| 404 | SMS campaign not found, or SMS is not enabled. |
| 409 | The campaign is in flight; cancel it first. |

## Example request

```bash
curl -X DELETE 'https://www.unitpost.com/api/v1/sms/campaigns/cmp_123' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0'
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/sms/delete-sms-campaigns-id
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
