# Contact API - Delete

Use this endpoint to delete a contact from your account.

---

## Endpoint

```
DELETE https://e1.envoke.com/v1/contacts/{ID}
```

Replace `{ID}` with the Envoke contact ID you want to delete. Authentication is via HTTP Basic Auth using your API ID and API Key. No request body is needed.

---

## Important

**Deletion is permanent.** Deleting a contact removes the contact record, its consent history, its custom field values, its tag, subscription, and mandatory consent memberships, its nurture campaign memberships and queued campaign actions, and its form submissions. There is no undo, and the contact's ID is never reused. To keep a contact but stop sending to it, set its `consent_status` to `Revoked` with an [update](https://envoke-developers.pages.dev/v1/contacts/update/) instead; note that a `Revoked` contact can no longer be deleted (see below).

**Some consent statuses block deletion.** A contact whose current `consent_status` is `Revoked`, `Envoke Spam Reported`, or `External Spam Reported` cannot be deleted.

**Delete responses have no `result_data`.** Unlike the other write endpoints, success and error responses contain only `success` and `result_text`.

---

## Response

### Success

```json
{
  "success": true,
  "result_text": "1 contact deleted"
}
```

### Contact not found

Returned with HTTP status `400` when the ID does not match any contact in your account:

```json
{
  "success": false,
  "result_text": "1 contact not deleted, 1 - no matching contact found"
}
```

### Blocked by consent status

Returned with HTTP status `400` when the contact's consent status blocks deletion:

```json
{
  "success": false,
  "result_text": "1 contact not deleted, 1 - can't delete due to consent status"
}
```

### Database error

If the delete fails on the server, `result_text` is `1 contact not deleted, 1 - delete error: ` followed by the error detail, with HTTP status `400`. Retry the request; if it keeps failing, contact Envoke support.

---

## Example

```bash
curl -X DELETE -gs \
  -u "$API_ID:$API_KEY" \
  "https://e1.envoke.com/v1/contacts/1009"
```

Replace `1009` with the ID of the contact you want to delete, and substitute your actual API ID and API Key.

A `GET https://e1.envoke.com/v1/contacts/1009` afterwards returns `[]`, and a second `DELETE` returns the not-found response above.

To find the ID of a contact from its email address first:

```bash
curl -X GET -gs -u "$API_ID:$API_KEY" \
  "https://e1.envoke.com/v1/contacts?email=to.delete%40example.com&fields=id&limit=1"
```

---

*Note: The curl examples above are formatted for readability. All requests must use properly encoded URLs.*

*Full reference, OpenAPI description, and Postman collection: [developers.envoke.com](https://developers.envoke.com).*
