---
title: "Delete campaign"
method: POST
path: "/api/v1/tools/delete_campaign"
tags: ["guarded"]
---

# Delete campaign

`POST /api/v1/tools/delete_campaign`

## Request

- Base URL: `https://www.affiliatespy.io`
- URL: `https://www.affiliatespy.io/api/v1/tools/delete_campaign`
- Auth: HTTP bearer

Delete a campaign, as the dashboard does: it leaves every list and its queued emails stop. Enrolments and messages stay as contact history, so nobody in it can be emailed again from scratch, and late replies still reach the Inbox. The dashboard has no undo. Guarded: without approval_token it returns {error:"approval_required", approval_token, summary} for the user to confirm; call again with the token. Every dashboard guardrail still applies: this is exactly what a user clicking the dashboard could do, no more. GUARDED: requires the account's Unrestricted MCP setting; returns 403 {error:'restricted'} otherwise.

## Request body

- object
  - `campaign_id` string, uuid, required: A campaign id from list_campaigns.
  - `approval_token` string: Approval token from a previous approval_required response, after the user said yes.

## Response `200`

The tool's JSON result (same payload the MCP tool returns).

- unknown

## Other responses

- `400`: Arguments failed validation; body lists the issues.
- `401`: Missing or invalid API key.
- `403`: Guarded tool with Unrestricted MCP off.
- `429`: Rate limited (60 requests per minute per key).

---

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