---
title: "Stream Conversation Turn"
method: GET
path: "/api/v1/chat-ai/conversations/{conversation_id}/stream"
tags: ["chat-ai", "chat_messages"]
---

# Stream Conversation Turn

`GET /api/v1/chat-ai/conversations/{conversation_id}/stream`

Reattach to the conversation's live turn and stream it via SSE.

Behind CHAT_DETACHED_TURNS_V1 a turn runs detached from the request that
started it (see `send_message`). This endpoint replays the active turn's
buffered frames from the start and then follows it live to the terminal
frame, so a reloaded client resumes the trace instead of waiting blind.

Returns 204 when no turn is currently active for the conversation — the
normal case, not an error.

Access is the READ check, not ownership: this replays a transcript that is
already being written, and a channel conversation is readable by the whole
tenant. Following "Open in anana" from Slack while the agent is still
answering is the common case, and the ownership check turned exactly that
into a 404 loop.

## Path parameters

- `conversation_id` string, uuid, required

## Response `200`

The active turn's SSE frames — replay, then live.

- unknown

## Other responses

- `204` — No turn is currently active for the conversation.
- `401` — Not authenticated.
- `404` — Conversation not readable by the caller.
- `422` — Validation Error

## Changes

> 28 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/chat-ai/conversations/:conversation_id/stream/get.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/6b978a517225?raw)
