Skip to main content

Cancel Campaign

Cancel a campaign that is in flight.

Only a queued or sending campaign can be canceled. Canceling a campaign in any other status returns 409 CAMPAIGN_NOT_CANCELABLE. On success the campaign moves to canceled and the remaining sends are stopped. Emails that have already been delivered cannot be recalled.

A scheduled campaign is not canceled — it is unscheduled. Use Unschedule Campaign to return a scheduled campaign to draft.

Request

POST /campaigns/{uuid}/cancel

This endpoint takes no request body.

Path Parameters

ParameterTypeDescription
uuidstringCampaign's UUID

Example Request

curl -X POST "https://email.easy.tools/api/v1/campaigns/550e8400-e29b-41d4-a716-446655440000/cancel" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"

Response

Success Response (200 OK)

Returns the full campaign, identical in shape to Get Campaign, with status now canceled.

{
"data": {
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Spring Sale",
"status": "canceled",
"subject": "Up to 40% off this week",
"preheader": "Our biggest sale of the season",
"from_name": "Acme",
"reply_to": "support@acme.com",
"from_identity": "8f14e45f-ceea-467a-9575-1a1b2c3d4e5f",
"from_email": "hello@acme.com",
"content": "## Spring sale\n\nUp to **40% off**. [Shop now](https://acme.com/sale)",
"content_editable_via_api": true,
"content_overwrite_required": false,
"audience": {
"list_uuid": "660e8400-e29b-41d4-a716-446655440001",
"segment_uuid": null
},
"readiness": {
"can_send": true,
"missing": []
},
"created_at": "2026-06-24T10:00:00Z",
"updated_at": "2026-06-26T08:00:00Z",
"last_updated_at": "2026-06-24T10:05:00Z"
}
}

See Get Campaign for the full field reference.

Error Responses

Not Found Error (404)

{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Campaign with UUID '550e8400-e29b-41d4-a716-446655440000' not found"
}
}

Conflict Error (409 — Not Cancelable)

The campaign is not queued or sending. A scheduled campaign is unscheduled with Unschedule Campaign, not canceled.

{
"error": {
"code": "CAMPAIGN_NOT_CANCELABLE",
"message": "Campaign cannot be canceled because it is not queued or sending"
}
}

Conflict Error (409 — Transition In Progress)

Another change to the same campaign is already in flight. Retry after a moment.

{
"error": {
"code": "CAMPAIGN_TRANSITION_IN_PROGRESS",
"message": "Another transition is already in progress for this campaign"
}
}