---
title: "Get one AI conversation"
method: GET
path: "/api/{org_id}/ai/chats/{session_id}"
tags: ["AI"]
---

# Get one AI conversation

`GET /api/{org_id}/ai/chats/{session_id}`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/ai/chats/{session_id}`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/ai/chats/:session_id/get.ts> (a function with typed inputs; its response is checked against the schema)

The caller's stored conversation, reconstructed from its durable event history. With `known_seq` and `known_version` equal to the stored ones the body says `not_modified` and carries no turns. With an older `known_seq` only the turns past it come back, plus earlier turns whose status changed since `known_version`; with the same seq but another version, every turn does.

## Path parameters

- `org_id` string, required
- `session_id` string, required

## Query parameters

- `known_seq` integer
- `known_version` string
- `limit` integer

## Response `200`

The conversation

- object: One chat in the user's list.
  - `agent_type` string, required
  - `created_at` integer, required: Microseconds since the epoch.
  - `forked_from_share` string, nullable: Set on a chat forked from a share: the share's id.
  - `last_committed_seq` integer, required: Highest durably stored event sequence (-1: nothing yet).
  - `session_id` string, required
  - `title` string, required
  - `updated_at` integer, required
  - `active_turn` boolean, required: A turn of this chat is running right now.
  - `has_more` boolean, required: Older turns were left out to honour `limit`.
  - `not_modified` boolean, required: True when `known_seq` and `known_version` are current; `turns` is then omitted.
  - `partial_from_seq` integer, nullable: Set when `turns` holds the turns past this seq plus older ones whose status changed.
  - `state_version` string, required: Changes whenever the committed seq, a turn's status or error, or `active_turn` changes.
  - `turns` object[], nullable: Per turn: the user's words, the UI frames, and `turn_id`/`status`/`error_code` if recorded.

## Other responses

- `404`: Unknown conversation
- `503`: History temporarily unreadable

---

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