---
title: "Delete a conversation"
description: "Permanently delete one of your conversations and its messages, a person's chat or a conversation your API key started. It cannot be undone."
canonical: "https://lookio.app/docs/api/conversations/delete-conversation"
updated: "2026-10-17"
---

# Delete a conversation

Requires `query`.

Deleting removes the conversation and all its messages for good. It is gated by the `query` scope, like renaming. It costs no credits.

A person deletes their own chats. An API key deletes the conversations it started, and can send `end_user` as a query parameter to be sure it is that person's. **An API key's conversation also disappears from the workspace's [logs](/docs/platform/logs)** and from their figures: nobody can read it afterwards. To honour a user's request to erase their data, list their conversations with `end_user` and delete each one.

This only deletes your own conversations. The conversations that anonymous visitors had through a widget are kept 90 days and removed with the widget: see [Delete a widget](/docs/api/widgets/delete-widget).

```http
DELETE https://api.lookio.app/v1/conversations/{conversation_id}
```

## Authorizations

- `Authorization` (bearer, in header, required)

## Path parameters

- `conversation_id` (`string`, required, pattern: `^cnv_[abcdefghjkmnpqrstuvwxyz23456789]{12}$`)

## Query parameters

- `end_user` (`string`, pattern: `^[\w.@:+\-]{1,200}$`): API keys only: the `end_user` of the conversation. When given, a conversation of another end user answers not found.

## Response

**200**: Delete a conversation

- `data` (`object`, required)
- `data.id` (`string`, required, pattern: `^(?:res|doc|ver|ast|wdg|cnv|msg|att|acc|aky)_[abcdefghjkmnpqrstuvwxyz23456789]{12}$`)
- `data.deleted` (`boolean`, required)
- `request_id` (`string`, required)

```json
{
  "data": {
    "id": "cnv_ca9xz837zsvb",
    "deleted": true
  },
  "request_id": "req_01K9X7M2Q4"
}
```

**400**: Possible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**401**: Possible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**403**: Possible codes: insufficient_scope, feature_not_available, admin_required, permission_denied

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**404**: Possible codes: resource_not_found

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**429**: Possible codes: rate_limited

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**500**: Possible codes: internal_error

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**Example request**

```bash
curl --request DELETE \
  --url 'https://api.lookio.app/v1/conversations/<conversation_id>' \
  --header 'Authorization: <api-key>'
```
