---
title: "Stream an AI-assistant chat turn"
method: POST
path: "/api/v1/assistant/chat"
tags: ["Assistant"]
---

# Stream an AI-assistant chat turn

`POST /api/v1/assistant/chat`

## Request body

- AssistantChatRequestDTO
  - `approvalMessageId` string — Assistant message id to continue in place (approval continuation)
  - `chatId` string, required — Target chat id (also the Sentry conversation id)
  - `clientMessages` object[] — Full client history incl. approval outcomes (approval continuation)
    - `id` string, required
    - `parts` unknown[], required
      - unknown
    - `role` string, required
  - `isDemo` boolean — Demo mode runs with no tools and the demo system prompt
  - `message` object, required — The incoming user UIMessage
    - `id` string, required — Stable message id — the idempotency key
    - `parts` union[], required — AI SDK message parts
      - union
        - object
          - `text` string, required
          - `type` 'text', required
        - object
          - `type` string, required
    - `role` 'user', required — Author role; always user for an incoming turn

## Response `201`

---

[API](https://skmtc.net/wejam/apis/jam.md) · [All operations](https://skmtc.net/wejam/apis/jam/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wejam/jam/revisions/bd5a5f406bca/schema)
