---
title: "End Text Conversation"
method: POST
path: "/core/conversations/{conversation_id}/end"
tags: ["Conversations"]
---

# End Text Conversation

`POST /core/conversations/{conversation_id}/end`

## Request

- Base URL: `https://api.anyreach.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.anyreach.ai/core/conversations/{conversation_id}/end`
- Auth: HTTP bearer

End a TEXT conversation (status -> completed).

Valid only for ``channel="text"`` (409 otherwise). Finalizes the
conversation — computes duration, writes a gated summary, and runs the
agent's post-conversation workflow. Idempotent: ending an already-closed
conversation returns 200 with the existing record (no re-close).

``transferred`` counts as already-closed here. A handed-off conversation
is finalized by ``close_handoff``, which sets that status and has already
run the post-conversation workflow; treating it as "not completed" would
turn the widget's ordinary end-of-chat call into a 409, and treating it
as endable would run the workflow a second time and overwrite the
bot-phase duration with wall clock.

## Path parameters

- `conversation_id` string, required

## Headers

- `x-anyreach-org` string, nullable: Organization ID for user PATs (pat_ prefix tokens)

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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