Unschedule Campaign
Cancel a pending schedule and return the campaign to draft.
Only a scheduled campaign can be unscheduled. Unscheduling a campaign in any
other status returns 409 CAMPAIGN_NOT_UNSCHEDULABLE. On success the campaign
moves back to draft and its scheduled_at is cleared, so it stays editable and
will not send until you schedule or send it again.
To stop a campaign that is already queued or sending, use
Cancel Campaign instead.
Request
POST /campaigns/{uuid}/unschedule
This endpoint takes no request body.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Campaign's UUID |
Example Request
curl -X POST "https://email.easy.tools/api/v1/campaigns/550e8400-e29b-41d4-a716-446655440000/unschedule" \
-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 draft.
{
"data": {
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Spring Sale",
"status": "draft",
"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 Unschedulable)
The campaign is not scheduled, so there is no schedule to cancel.
{
"error": {
"code": "CAMPAIGN_NOT_UNSCHEDULABLE",
"message": "Campaign cannot be unscheduled because it is not scheduled"
}
}
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"
}
}