---
title: "Cancel a duty handover"
method: DELETE
path: "/api/v1/schedules/{schedule}/overrides/{override}"
tags: ["On-call schedules"]
---

# Cancel a duty handover

`DELETE /api/v1/schedules/{schedule}/overrides/{override}`

## Request

- Base URL: `https://wardenpoint.com` (the document declares no server; this is the origin it was published from)
- URL: `https://wardenpoint.com/api/v1/schedules/{schedule}/overrides/{override}`
- Auth: API key in header `X-API-Key`

A handover that has not started yet is removed outright; one already running is ended at this instant so the record of who actually covered, and until when, survives. The `outcome` field says which of the two happened — that difference matters to the caller, so this endpoint answers 200 with a body rather than an empty 204. Handovers whose window has already elapsed are not cancellable and return 404: reviving one by pushing its end forward would be worse than refusing. Requires the duty-handover feature to be switched on for the deployment.

## Path parameters

- `schedule` string, uuid, required
- `override` string, uuid, required

## Response `200`

Cancelled.

- object
  - `data` object
    - `outcome` 'deleted' | 'ended_now': `deleted` — the window had not started and the handover is gone. `ended_now` — it was running and was ended at this instant; the row stays for the history.
    - `message` string: The same wording the dashboard shows, in the account language.

## Other responses

- `401`: API key missing, invalid, revoked or expired.
- `403`: API key lacks the config.write ability, or the schedule belongs to another company.
- `404`: No such handover in this schedule, its window has already elapsed, or on-call schedules or duty handovers are switched off for this deployment.

---

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