---
title: "End Conversation"
method: POST
path: "/chat/{conversation_id}/end"
tags: ["Chat Widget"]
---

# End Conversation

`POST /chat/{conversation_id}/end`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/chat/{conversation_id}/end`
- Auth: none declared

End a conversation at the visitor's request (Quick Exit).

Marks the conversation completed and triggers the post-processing
pipeline. Idempotent — ending an already-completed conversation
returns ended=false.

Auth: X-Session-Token header, or a JSON body {"session_token": ...}
as a fallback for navigator.sendBeacon, which cannot set headers and
must send text/plain to avoid a CORS preflight — so the body is
parsed manually rather than via a Pydantic model.

## Path parameters

- `conversation_id` string, uuid, required

## Response `200`

Successful Response

- EndConversationResponse
  - `ended` boolean, required: True if this call ended the conversation; false if it was already completed/expired

## Other responses

- `422`: Validation Error

---

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