---
title: "Delete Contact"
method: DELETE
path: "/v1/contacts/{contact_id}"
tags: ["contacts"]
---

# Delete Contact

`DELETE /v1/contacts/{contact_id}`

## Request

- Base URL: `https://api.elaan.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.elaan.io/v1/contacts/{contact_id}`
- Auth: none declared

Delete a contact and erase their personal data everywhere it was copied.

Deleting the `contacts` row is not enough on its own. Every channel freezes a
*rendered copy* of the message at enqueue time, so that sending needs no
template or contact access, and the intake outbox keeps the raw trigger
payload. None of that is reachable by the foreign key cascade, so a plain
delete used to leave the recipient's address, device token and message
content behind indefinitely.

Delivery records are kept but blanked: what was sent, when and with what
outcome survives, while the personal data in it does not. Anything still
queued is cancelled so it can never be delivered.

## Path parameters

- `contact_id` string, required

## Headers

- `authorization` string, nullable

## Response `204`

Successful Response

## Other responses

- `404`: No contact with this id
- `422`: Validation Error

---

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