Skip to main content
GET
Get a chat session
The response includes tags, with each tag’s tag_name and created_at timestamp. Tags are ordered by name. Sessions without tags return an empty array. The support_team field contains the assigned support team’s id and name. The ID remains stable when the team is renamed. This field is null when no support team can be resolved for the session. The first_human_message_at field contains the first recorded human reply time as an ISO 8601 timestamp, or null when no human reply has been recorded. Internal notes and automated messages do not set this timestamp. Later human replies do not change it. The title field is the session title: the email subject, a subject set by an agent, or an AI-generated title. It is null until one is set. The recording_url field contains a download link for the latest completed phone or web call recording, or null when unavailable. Links expire after seven days; request the session again to get a fresh link. This field is only included when getting a session by ID. Use assignee to identify who is currently assigned to a session: A human assignee’s name matches the organization display name in GET /users. An organization name override takes precedence; a blank or missing override falls back to the account name. The name is null if the user is no longer a member of the organization or cannot be found; the recorded ID remains available for historical attribution. Reading a session does not require the users:read scope. Reading the user directory, including emails, does. The response field assignee_id is deprecated. Human IDs remain strings there; AI and unassigned sessions return null. Clients that previously used the AI placeholder must switch to assignee.type. Assignment requests continue to use assignee_id with a numeric human user ID or null to unassign.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

session_id
string
required

The unique identifier of the chat session

Response

Default Response

id
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
tags
object[]
required

All tags currently assigned to this session, ordered by tag name. Empty when no tags are assigned.

status
enum<string>
required
Available options:
open,
closed_resolved,
closed_unresolved
sub_status_id
string | null
required

Id of the custom status refining status, or null when only the built-in status applies. Resolve it with GET /custom-statuses.

ai_closure_type
enum<string> | null
required
Available options:
assumed_resolved,
handed_off,
resolved
sentiment
enum<string> | null
required
Available options:
angry,
happy,
neutral
summary
string | null
required

AI-generated summary of the conversation. Populated for both AI-resolved and handed-off sessions once the session has been summarized; null otherwise.

title
string | null
required

Session title: the email subject, a subject set by an agent, or an AI-generated title. Null until one is set.

channel
object
required
assignee
object
required

Current session assignment. AI and unassigned sessions have no assignee ID.

support_team
object | null
required

Support team assigned to this session. Null when no team can be resolved within the session organization.

ticket_number
number
required
assist_mode
boolean
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
first_human_message_at
string<date-time> | null
required

Timestamp of the first recorded human reply to this session. Null when no human reply has been recorded.

recording_url
string | null
required

Download link for the latest completed call recording in a phone or web session, or null when unavailable. Valid for seven days; fetch this session again to refresh it. Available only when getting a session by ID.

contact
object
language
string
assignee_id
string | null
deprecated

Deprecated: use assignee. Contains the recorded human user ID as a string, or null for AI and unassigned sessions. Use assignee.type to distinguish them. This deprecation applies only to response fields; assignment requests still accept assignee_id.

custom_data
object

Session-level custom data stored on the chat session.

team
object
handoff
object
ticketing_system
object