---
title: "GET /get-chat/{chat_id}"
method: GET
path: "/get-chat/{chat_id}"
---

# GET /get-chat/{chat_id}

`GET /get-chat/{chat_id}`

Retrieve details of a specific chat

## Path parameters

- `chat_id` string, required

## Response `200`

Successfully retrieved an chat.

- ChatResponse
  - `chat_id` string, required — Unique id of the chat.
  - `agent_id` string, required — Corresponding chat agent id of this chat.
  - `version` integer, nullable — The version of the agent
  - `retell_llm_dynamic_variables` object — Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.
  - `collected_dynamic_variables` object — Dynamic variables collected from the chat. Only available after the chat ends.
  - `chat_status` 'ongoing' | 'ended' | 'error', required — Status of chat. - `ongoing`: Chat session is ongoing, chat agent can receive new message and generate response. - `ended`: Chat session has ended, and no longer can generate new response. - `error`: Chat encountered error.
  - `chat_type` 'api_chat' | 'sms_chat' — Type of the chat
  - `custom_attributes` object — Custom attributes for the chat
  - `start_timestamp` integer — Begin timestamp (milliseconds since epoch) of the chat. Available after chat starts.
  - `end_timestamp` integer, nullable — End timestamp (milliseconds since epoch) of the chat. Available after chat ends.
  - `transcript` string — Transcription of the chat.
  - `message_with_tool_calls` MessageOrToolCall[] — Transcript of the chat weaved with tool call invocation and results.
    - union
      - Message
        - `message_id` string, required — Unique id of the message
        - `role` 'agent' | 'user', required — Documents whether this message is sent by agent or user.
        - `content` string, required — Content of the message
        - `created_timestamp` integer, required — Create timestamp of the message
      - ToolCallInvocationMessage
        - `message_id` string, required — Unique id of the message
        - `role` 'tool_call_invocation', required — This is a tool call invocation.
        - `tool_call_id` string, required — Tool call id, globally unique.
        - `name` string, required — Name of the function in this tool call.
        - `arguments` string, required — Arguments for this tool call, it's a stringified JSON object.
        - `thought_signature` string — Optional thought signature from Google Gemini thinking models. This is used internally to maintain reasoning chain in multi-turn function calling.
        - `created_timestamp` integer, required — Create timestamp of the message
      - ToolCallResultMessage
        - `message_id` string, required — Unique id of the message
        - `role` 'tool_call_result', required — This is the result of a tool call.
        - `tool_call_id` string, required — Tool call id, globally unique.
        - `content` string, required — Result of the tool call, can be a string, a stringified json, etc.
        - `successful` boolean — Whether the tool call was successful.
        - `created_timestamp` integer, required — Create timestamp of the message
      - NodeTransitionMessage
        - `message_id` string, required — Unique id of the message
        - `role` 'node_transition', required — This is a node transition.
        - `former_node_id` string — Former node id
        - `former_node_name` string — Former node name
        - `new_node_id` string — New node id
        - `new_node_name` string — New node name
        - `transition_type` 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal' — How this node was reached. "global" means a global node transition, "global_go_back" means returning from a global node, "interrupt_go_back" means going back due to user interruption, and "normal" means a regular edge transition.
        - `created_timestamp` integer, required — Create timestamp of the message
      - StateTransitionMessage
        - `message_id` string, required — Unique id of the message
        - `role` 'state_transition', required — This is a state transition.
        - `former_state_name` string — Former state name
        - `new_state_name` string — New state name
        - `created_timestamp` integer, required — Create timestamp of the message
  - `metadata` object — An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the chat. Not used for processing. You can later get this field from the chat object.
  - `chat_cost` object
    - `product_costs` ProductCost[] — List of products with their unit prices and costs in cents
      - `product` string, required — Product name that has a cost associated with it.
      - `unit_price` number — Unit price of the product in cents per second.
      - `cost` number, required — Cost for the product in cents for the duration of the call.
      - `is_transfer_leg_cost` boolean — True if this cost item is for a transfer segment.
    - `combined_cost` number — Combined cost of all individual costs in cents
  - `chat_analysis` ChatAnalysis
    - `chat_summary` string — A high level summary of the chat.
    - `user_sentiment` 'Negative' | 'Positive' | 'Neutral' | 'Unknown' — Sentiment of the user in the chat.
    - `chat_successful` boolean — Whether the agent seems to have a successful chat with the user, where the agent finishes the task, and the call was complete without being cutoff.
    - `custom_analysis_data` object — Custom analysis data that was extracted based on the schema defined in chat agent post chat analysis data. Can be empty if nothing is specified.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `422` — Unprocessable Content
- `500` — Internal Server Error

---

[API](https://skmtc.net/retellai/apis/retell-sdk.md) · [All operations](https://skmtc.net/retellai/apis/retell-sdk/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/retellai/retell-sdk/versions/2a182bedbfc5/schema)
