Skip to main content
GET
/
api
/
v1
/
chats
/
{id}
Retrieve a chat session — full transcript and lifecycle status.
const options = {method: 'GET'};

fetch('https://blackbox.dasha.ai/api/v1/chats/{id}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "agent_id": "<string>",
  "channel": "<string>",
  "messages": [
    {
      "role": "<string>",
      "content": "<string>",
      "tool_calls": [
        {
          "id": "<string>",
          "name": "<string>",
          "arguments": "<unknown>",
          "response": "<unknown>"
        }
      ],
      "time": "2023-11-07T05:31:56Z"
    }
  ],
  "created_time": "2023-11-07T05:31:56Z",
  "last_activity": "2023-11-07T05:31:56Z",
  "ttl_seconds": 123,
  "is_final": true,
  "status": "<string>",
  "final_reason": "<string>"
}

Path Parameters

id
string<uuid>
required

Response

Session found.

Public projection of a chat session — what callers see via GET /api/v1/chats/{id} and the list endpoint. Deliberately omits the orchestration State blob, the ExternalIdHash, and the worker hot-flags; those are server-internal.

id
string<uuid>

Session identifier.

agent_id
string | null

Agent driving this session. Frozen at open.

channel
string | null

Channel name (web, twilio_sms, …).

messages
object[] | null

Full conversation transcript so far, in send order.

created_time
string<date-time>

Session creation timestamp (UTC).

last_activity
string<date-time>

Most recent activity timestamp (inbound, outbound or assistant turn).

ttl_seconds
integer<int32> | null

Inactivity timeout in seconds; null when no TTL applies.

is_final
boolean

True once the session has terminated.

status
string | null

Status mirror of DashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.ChatSessionDto.IsFinal for list-endpoint filtering (active / final).

final_reason
string | null

Reason for finalisation (ttl, user_end, agent_finish, …).