---
title: "Cancel or reschedule an email"
method: PATCH
path: "/email/{id}"
tags: ["Emails"]
---

# Cancel or reschedule an email

`PATCH /email/{id}`

## Request

- Base URL: `https://www.unitpost.com/api/v1`
- URL: `https://www.unitpost.com/api/v1/email/{id}`
- Auth: HTTP bearer

Cancel a scheduled or queued email, or move it to a new send time. Only emails that haven't been handed off for delivery yet can be changed — once an email is sent this returns `409`. Look up the email's current state first with [Retrieve an email](#get-email-id). Requires the `emails:send` capability.

## Request body

- EmailPatch
  - `cancel` true
  - `scheduled_at` string, date-time

## Response `200`

The updated email.

- Email
  - `object` 'email', required
  - `id` string, required
  - `to` string[], required
  - `from` string, required
  - `subject` string, required
  - `template_id` string, nullable, required
  - `campaign_id` string, nullable, required
  - `status` 'scheduled' | 'queued' | 'sent' | 'delivered' | 'bounced' | 'complained' | 'canceled' | 'failed', required
  - `last_event` string, required
  - `scheduled_at` string, nullable, required
  - `sent_at` string, nullable, required
  - `delivered_at` string, nullable, required
  - `opened_at` string, nullable, required
  - `clicked_at` string, nullable, required
  - `canceled_at` string, nullable, required
  - `last_error` string, nullable, required
  - `created_at` string, required

## Other responses

- `401`: Missing or invalid API key.
- `403`: Insufficient scope.
- `404`: Email not found.
- `409`: Email is not in a cancelable / reschedulable state.
- `422`: Validation error.

---

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