Get Session by ID
curl --request GET \
--url https://api.example.com/sessions/{session_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/sessions/{session_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/sessions/{session_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/sessions/{session_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/sessions/{session_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/sessions/{session_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/sessions/{session_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"user_id": "123",
"agent_session_id": "6f6cfbfd-9643-479a-ae47-b8f32eb4d710",
"session_id": "6f6cfbfd-9643-479a-ae47-b8f32eb4d710",
"session_name": "What tools do you have?",
"session_summary": {
"summary": "The user and assistant engaged in a conversation about the tools the agent has available.",
"updated_at": "2025-09-05T18:02:12.269392"
},
"session_state": {},
"agent_id": "basic-agent",
"total_tokens": 160,
"agent_data": {
"name": "Basic Agent",
"agent_id": "basic-agent",
"model": {
"provider": "OpenAI",
"name": "OpenAIChat",
"id": "gpt-4o"
}
},
"metrics": {
"input_tokens": 134,
"output_tokens": 26,
"total_tokens": 160,
"audio_input_tokens": 0,
"audio_output_tokens": 0,
"audio_total_tokens": 0,
"cache_read_tokens": 0,
"cache_write_tokens": 0,
"reasoning_tokens": 0
},
"chat_history": [
{
"content": "<additional_information>\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n</additional_information>\n\nYou have access to memories from previous interactions with the user that you can use:\n\n<memories_from_previous_interactions>\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n</memories_from_previous_interactions>\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.",
"from_history": false,
"stop_after_tool_call": false,
"role": "system",
"created_at": 1757088129
},
{
"content": "What tools do you have?",
"from_history": false,
"stop_after_tool_call": false,
"role": "user",
"created_at": 1757088129
},
{
"content": "I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!",
"from_history": false,
"stop_after_tool_call": false,
"role": "assistant",
"metrics": {
"input_tokens": 134,
"output_tokens": 26,
"total_tokens": 160
},
"created_at": 1757088129
}
],
"created_at": "2025-09-05T16:02:09Z",
"updated_at": "2025-09-05T16:02:09Z"
}{
"detail": "Bad request",
"error_code": "BAD_REQUEST"
}{
"detail": "Unauthenticated access",
"error_code": "UNAUTHENTICATED"
}{
"detail": "Not found",
"error_code": "NOT_FOUND"
}{
"detail": "Validation error",
"error_code": "VALIDATION_ERROR"
}{
"detail": "Internal server error",
"error_code": "INTERNAL_SERVER_ERROR"
}Sessions
Get Session by ID
Retrieve detailed information about a specific session including metadata, configuration, and run history. Response schema varies based on session type (agent, team, or workflow).
GET
/
sessions
/
{session_id}
Get Session by ID
curl --request GET \
--url https://api.example.com/sessions/{session_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/sessions/{session_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/sessions/{session_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/sessions/{session_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/sessions/{session_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/sessions/{session_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/sessions/{session_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"user_id": "123",
"agent_session_id": "6f6cfbfd-9643-479a-ae47-b8f32eb4d710",
"session_id": "6f6cfbfd-9643-479a-ae47-b8f32eb4d710",
"session_name": "What tools do you have?",
"session_summary": {
"summary": "The user and assistant engaged in a conversation about the tools the agent has available.",
"updated_at": "2025-09-05T18:02:12.269392"
},
"session_state": {},
"agent_id": "basic-agent",
"total_tokens": 160,
"agent_data": {
"name": "Basic Agent",
"agent_id": "basic-agent",
"model": {
"provider": "OpenAI",
"name": "OpenAIChat",
"id": "gpt-4o"
}
},
"metrics": {
"input_tokens": 134,
"output_tokens": 26,
"total_tokens": 160,
"audio_input_tokens": 0,
"audio_output_tokens": 0,
"audio_total_tokens": 0,
"cache_read_tokens": 0,
"cache_write_tokens": 0,
"reasoning_tokens": 0
},
"chat_history": [
{
"content": "<additional_information>\n- Use markdown to format your answers.\n- The current time is 2025-09-05 18:02:09.171627.\n</additional_information>\n\nYou have access to memories from previous interactions with the user that you can use:\n\n<memories_from_previous_interactions>\n- User really likes Digimon and Japan.\n- User really likes Japan.\n- User likes coffee.\n</memories_from_previous_interactions>\n\nNote: this information is from previous interactions and may be updated in this conversation. You should always prefer information from this conversation over the past memories.",
"from_history": false,
"stop_after_tool_call": false,
"role": "system",
"created_at": 1757088129
},
{
"content": "What tools do you have?",
"from_history": false,
"stop_after_tool_call": false,
"role": "user",
"created_at": 1757088129
},
{
"content": "I don't have access to external tools or the internet. However, I can assist you with a wide range of topics by providing information, answering questions, and offering suggestions based on the knowledge I've been trained on. If there's anything specific you need help with, feel free to ask!",
"from_history": false,
"stop_after_tool_call": false,
"role": "assistant",
"metrics": {
"input_tokens": 134,
"output_tokens": 26,
"total_tokens": 160
},
"created_at": 1757088129
}
],
"created_at": "2025-09-05T16:02:09Z",
"updated_at": "2025-09-05T16:02:09Z"
}{
"detail": "Bad request",
"error_code": "BAD_REQUEST"
}{
"detail": "Unauthenticated access",
"error_code": "UNAUTHENTICATED"
}{
"detail": "Not found",
"error_code": "NOT_FOUND"
}{
"detail": "Validation error",
"error_code": "VALIDATION_ERROR"
}{
"detail": "Internal server error",
"error_code": "INTERNAL_SERVER_ERROR"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Session ID to retrieve
Query Parameters
Session type (agent, team, or workflow)
Available options:
agent, team, workflow User ID to query session from
Database ID to query session from
Response
Session details retrieved successfully
- AgentSessionDetailSchema
- TeamSessionDetailSchema
- WorkflowSessionDetailSchema