Skip to main content
Get Chat
A chat has no phone numbers, no duration and no recording - it is priced per assistant reply, so it carries turn_count and a rate_per_reply cost instead. Voice conversations live at /v1/calls.
transcript is the stored conversation as { "turns": [...] }, oldest turn first, each turn a role and a text. A conversation with no turns stores {}, with no turns key, so check for the key before walking it.

Authorizations

Authorization
string
header
required

Your API key as a Bearer token, e.g. Authorization: Bearer vk_….

Path Parameters

chat_id
string
required

The chat's id, from GET /v1/chats.

Response

Successful Response

One text conversation — a widget chat or a WhatsApp thread.

Separate from a call because a chat has no numbers, no duration, no recording and no transfer, and is priced per assistant reply rather than per minute.

Read-only. A chat begins when someone opens your widget or messages your WhatsApp number, so there is no endpoint that starts one.

id
string
required

The chat's id.

agent_id
string | null
required

Which agent handled it.

agent_name
string | null
required

The agent's name as it was at the time — snapshotted, so a later rename does not rewrite history.

agent_version
integer | null
required

Which version of the agent answered.

status
string
required

Where the chat got to — started, in_progress, or completed. A chat has no failure state: it cannot ring, be declined or reach voicemail. completed means no longer active, which includes a visitor simply closing the tab.

origin
string | null
required

widget for a real end user on your site, dashboard for our own chat test button. null means unknown on older rows.

turn_count
integer
required

Assistant replies in the session. This is the billing unit for text — voice bills on duration_seconds, which is always null here — so it is published rather than left for you to count out of the transcript and get a different answer than the invoice.

created_at
string<date-time>
required

When the chat started (UTC, ISO 8601).

ended_at
string<date-time> | null
required

When it ended. null while still open.

metadata
Metadata · object | null
required

Your own passthrough, unchanged.

variables
Variables · object | null
required

The chat's own variables. Only your custom bag.

cost
PublicChatCost · object | null
required

What the chat cost. Priced per assistant reply, not per minute.

custom_analysis
Custom Analysis · object | null
required

Everything your analysis groups extracted, keyed by group then item.

transcript
Transcript · object | null
required

The conversation. Omitted (null) on the LIST unless you pass ?include=transcript.

dashboard_url
string
required

Deep link to this chat in the Vocily dashboard.