> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete conversation

> Delete one conversation by ID through the public Conversations API.

Use this endpoint to delete one conversation from the workspace tied to your API key.

<Tip>
  Use [List conversations](/en/api-reference/list-conversations) to discover IDs before deleting. If you need to remove multiple conversations in one request, use [Bulk delete conversations](/en/api-reference/bulk-delete-conversations).
</Tip>

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token containing your Fini workspace API key. Format: `Bearer fini_...` The key needs `write` scope.
</ParamField>

## Path parameters

<ParamField path="id" type="string" required>
  Conversation ID to delete.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request DELETE \
    --url 'https://api-prod.usefini.com/v2/hc-interactions/0b8626b0-4cc8-4a3d-8fc2-f18ad1a4a1a8/public' \
    --header 'Authorization: Bearer fini_your_api_key'
  ```

  ```python Python theme={null}
  import requests

  conversation_id = "0b8626b0-4cc8-4a3d-8fc2-f18ad1a4a1a8"
  response = requests.delete(
      f"https://api-prod.usefini.com/v2/hc-interactions/{conversation_id}/public",
      headers={"Authorization": "Bearer fini_your_api_key"},
  )
  result = response.json()
  ```

  ```javascript Node.js theme={null}
  const conversationId = "0b8626b0-4cc8-4a3d-8fc2-f18ad1a4a1a8";

  const response = await fetch(
    `https://api-prod.usefini.com/v2/hc-interactions/${conversationId}/public`,
    {
      method: "DELETE",
      headers: {
        Authorization: "Bearer fini_your_api_key",
      },
    }
  );
  const result = await response.json();
  ```
</RequestExample>

<Note>
  Current implementation note: this route returns `{ "success": true }` once the update query completes. It does not currently verify that the ID matched a live conversation, so missing, already-removed, or workspace-mismatched IDs can still return success.
</Note>

## Response

<ResponseField name="success" type="boolean">
  `true` when the route completed successfully.
</ResponseField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "success": true
  }
  ```

  ```json 401 Unauthorized theme={null}
  {
    "statusCode": 401,
    "message": "Invalid or revoked API key",
    "error": "Unauthorized"
  }
  ```

  ```json 403 Forbidden theme={null}
  {
    "statusCode": 403,
    "message": "API key does not have the required scope for this operation",
    "error": "Forbidden"
  }
  ```
</ResponseExample>

## Errors

<AccordionGroup>
  <Accordion title="401 Unauthorized" icon="lock">
    The API key is missing, malformed, revoked, or invalid. Confirm you are sending `Authorization: Bearer fini_...` with the full key.
  </Accordion>

  <Accordion title="403 Forbidden" icon="shield-halved">
    The API key does not include the `write` scope required for this route.
  </Accordion>

  <Accordion title="500 Internal Server Error" icon="triangle-exclamation">
    Fini failed while updating the conversation row in storage.
  </Accordion>
</AccordionGroup>
