Skip to main content
GET
Get a conversation

Authorizations

Authorization
string
header
required

The id_token from POST /auth/v1/signin, sent as Authorization: Bearer <id_token>. Not the access_token — that one does not carry the identity Cloud Chat authorizes on.

Headers

cloudchat-instance
integer
required

Your Cloud Chat instance ID — an integer, fixed for your company, told at onboarding. The API overview explains how instances work, how to find yours, and the errors a wrong or missing value produces.

Example:

1

Path Parameters

accountId
integer
required

Your Cloud Chat account. It has to be an account your token grants membership on, and it has to live on the instance in the cloudchat-instance header — the two travel together. Account numbers are only unique within an instance, so the same number is a different company on another instance. Usually a mismatched pair fails closed with a 401, because your user does not exist on the other instance — but if your identity happens to exist on both, the call succeeds against the other company's data, silently. Read it and you are looking at the wrong help center; write it and you have stored into the wrong account. Send the two values that were given to you together, and never try a number to see what answers.

Example:

1

conversationId
integer
required

The conversation's display_id — the number shown in the dashboard URL and delivered in webhooks. It is never the internal database id, and it is the only conversation identifier any external surface of the product exposes.

Example:

1042

Response

The conversation.

id
integer
required

The conversation number — the same one shown in the dashboard URL and delivered in webhooks, unique within the account.

Example:

1042

status
enum<string>
required

Where the conversation is in its lifecycle.

Available options:
open,
resolved,
pending,
snoozed,
proactive
Example:

"open"

priority
enum<string> | null
required

The conversation's priority, null when none is set. One of the four levels the dashboard offers, in ascending urgency.

Available options:
low,
medium,
high,
urgent
Example:

"high"

assignee_id
integer | null
required

The agent currently assigned, null while unassigned.

Example:

7

inbox_id
integer
required

The inbox the conversation lives in.

Example:

3

team_id
integer | null
required

The team it is assigned to, null when none.

Example:

2

contact
object | null
required

The customer, null on the rare conversation without one.

labels
string[]
required

Labels applied to the conversation. Empty when it has none.

One label, exactly as it appears in the dashboard.

created_at
string<date-time>
required

When it was created. ISO 8601, always UTC, milliseconds included.

Example:

"2026-08-13T19:09:51.482Z"

updated_at
string<date-time>
required

When it last changed, in the same format. This is what updated_after / updated_before filter on.

Example:

"2026-08-13T19:42:07.115Z"

last_activity_at
string<date-time> | null
required

When the last message or activity happened. The list is ordered by this, newest first.

Example:

"2026-08-13T19:42:07.115Z"

custom_attributes
object | null
required

The account's custom conversation attributes, as configured in the dashboard. Keys and value types vary per account; an account with none defined answers {}.

Example:
snoozed_until
string<date-time> | null
required

When a snoozed conversation is scheduled to reopen. null outside the snoozed status.

Example:

null

waiting_since
string<date-time> | null
required

When the conversation started waiting on the customer's or the agent's next move — the field SLA and wait-time reports are built on. null when nothing is being waited on.

Example:

null