curl --request GET \
--url https://api.checkfu.com/v1/sessions/{session_id} \
--header 'Authorization: Bearer <token>' \
--header 'checkfu-beta: <checkfu-beta>' \
--header 'checkfu-version: <checkfu-version>'import requests
url = "https://api.checkfu.com/v1/sessions/{session_id}"
headers = {
"checkfu-version": "<checkfu-version>",
"checkfu-beta": "<checkfu-beta>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'checkfu-version': '<checkfu-version>',
'checkfu-beta': '<checkfu-beta>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.checkfu.com/v1/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.checkfu.com/v1/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>",
"checkfu-beta: <checkfu-beta>",
"checkfu-version: <checkfu-version>"
],
]);
$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.checkfu.com/v1/sessions/{session_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("checkfu-version", "<checkfu-version>")
req.Header.Add("checkfu-beta", "<checkfu-beta>")
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.checkfu.com/v1/sessions/{session_id}")
.header("checkfu-version", "<checkfu-version>")
.header("checkfu-beta", "<checkfu-beta>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.checkfu.com/v1/sessions/{session_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["checkfu-version"] = '<checkfu-version>'
request["checkfu-beta"] = '<checkfu-beta>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"agent": {
"id": "<string>",
"description": "<string>",
"mcp_servers": [
{
"type": "url",
"name": "<string>",
"url": "<string>"
}
],
"model": {
"id": "<string>",
"effort": {
"type": "low"
},
"inference_geo": "global",
"speed": "standard"
},
"name": "<string>",
"skills": [
{
"type": "anthropic",
"skill_id": "<string>",
"version": "<string>"
}
],
"system": "<string>",
"tools": [
{
"type": "agent_toolset_20260401",
"configs": [
{
"name": "bash",
"type": "bash",
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
],
"default_config": {
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
}
],
"multiagent": {
"agents": [
{
"id": "<string>",
"description": "<string>",
"mcp_servers": [
{
"type": "url",
"name": "<string>",
"url": "<string>"
}
],
"model": {
"id": "<string>",
"effort": {
"type": "low"
},
"inference_geo": "global",
"speed": "standard"
},
"name": "<string>",
"skills": [
{
"type": "anthropic",
"skill_id": "<string>",
"version": "<string>"
}
],
"system": "<string>",
"tools": [
{
"type": "agent_toolset_20260401",
"configs": [
{
"name": "bash",
"type": "bash",
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
],
"default_config": {
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
}
],
"type": "agent",
"version": 1
}
],
"type": "coordinator"
},
"type": "agent",
"version": 1
},
"archived_at": "<string>",
"budget": {
"type": "limit",
"max_list_cost": {
"amount": "<string>",
"currency": "USD"
}
},
"created_at": "<string>",
"environment_id": "<string>",
"metadata": {},
"outcome_evaluations": [
{
"completed_at": "<string>",
"description": "<string>",
"explanation": "<string>",
"iteration": 1,
"outcome_id": "<string>",
"result": "<string>",
"type": "outcome_evaluation"
}
],
"resources": [
{
"id": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"mount_path": "<string>",
"type": "github_repository",
"url": "<string>",
"checkout": {
"type": "branch",
"name": "<string>"
}
}
],
"stats": {
"active_seconds": 1,
"duration_seconds": 1
},
"status": "rescheduling",
"title": "<string>",
"type": "session",
"updated_at": "<string>",
"usage": {
"active_seconds": 1,
"cache_creation": {
"ephemeral_1h_input_tokens": 1,
"ephemeral_5m_input_tokens": 1
},
"cache_read_input_tokens": 1,
"input_tokens": 1,
"list_cost": {
"amount": "<string>",
"currency": "USD"
},
"output_tokens": 1,
"server_tool_use": {
"web_fetch_requests": 1,
"web_search_requests": 1
}
},
"vault_ids": [
"<string>"
],
"automation_id": "<string>"
}{
"error": {
"type": "validation.malformed",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-malformed"
}
}{
"error": {
"type": "auth.invalid_key",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-invalid-key"
}
}{
"error": {
"type": "auth.disabled_tenancy",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-disabled-tenancy"
}
}{
"error": {
"type": "validation.not_found",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-not-found"
}
}{
"error": {
"type": "budget.exceeded",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#budget-exceeded"
}
}{
"error": {
"type": "runtime.internal",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#runtime-internal"
}
}Get a Session
Retrieves one CMA-shaped Session. The response contains the resolved Agent Version snapshot, Environment ID, Resources, Vault IDs, budget, metadata, title, lifecycle status, timestamps, usage, statistics, and outcome evaluations. Checkfu adds only optional automation_id, the bounded Deployment-to-Automation terminology substitution. An id outside the authenticated Workspace answers not-found.
Checkfu support posture: alpha; hosted. Required evidence journey: session-turn. Deployment-specific readiness and the latest proven release are available from GET /v1/support/capabilities.
curl --request GET \
--url https://api.checkfu.com/v1/sessions/{session_id} \
--header 'Authorization: Bearer <token>' \
--header 'checkfu-beta: <checkfu-beta>' \
--header 'checkfu-version: <checkfu-version>'import requests
url = "https://api.checkfu.com/v1/sessions/{session_id}"
headers = {
"checkfu-version": "<checkfu-version>",
"checkfu-beta": "<checkfu-beta>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'checkfu-version': '<checkfu-version>',
'checkfu-beta': '<checkfu-beta>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.checkfu.com/v1/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.checkfu.com/v1/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>",
"checkfu-beta: <checkfu-beta>",
"checkfu-version: <checkfu-version>"
],
]);
$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.checkfu.com/v1/sessions/{session_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("checkfu-version", "<checkfu-version>")
req.Header.Add("checkfu-beta", "<checkfu-beta>")
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.checkfu.com/v1/sessions/{session_id}")
.header("checkfu-version", "<checkfu-version>")
.header("checkfu-beta", "<checkfu-beta>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.checkfu.com/v1/sessions/{session_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["checkfu-version"] = '<checkfu-version>'
request["checkfu-beta"] = '<checkfu-beta>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"agent": {
"id": "<string>",
"description": "<string>",
"mcp_servers": [
{
"type": "url",
"name": "<string>",
"url": "<string>"
}
],
"model": {
"id": "<string>",
"effort": {
"type": "low"
},
"inference_geo": "global",
"speed": "standard"
},
"name": "<string>",
"skills": [
{
"type": "anthropic",
"skill_id": "<string>",
"version": "<string>"
}
],
"system": "<string>",
"tools": [
{
"type": "agent_toolset_20260401",
"configs": [
{
"name": "bash",
"type": "bash",
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
],
"default_config": {
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
}
],
"multiagent": {
"agents": [
{
"id": "<string>",
"description": "<string>",
"mcp_servers": [
{
"type": "url",
"name": "<string>",
"url": "<string>"
}
],
"model": {
"id": "<string>",
"effort": {
"type": "low"
},
"inference_geo": "global",
"speed": "standard"
},
"name": "<string>",
"skills": [
{
"type": "anthropic",
"skill_id": "<string>",
"version": "<string>"
}
],
"system": "<string>",
"tools": [
{
"type": "agent_toolset_20260401",
"configs": [
{
"name": "bash",
"type": "bash",
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
],
"default_config": {
"enabled": true,
"permission_policy": {
"type": "always_allow"
}
}
}
],
"type": "agent",
"version": 1
}
],
"type": "coordinator"
},
"type": "agent",
"version": 1
},
"archived_at": "<string>",
"budget": {
"type": "limit",
"max_list_cost": {
"amount": "<string>",
"currency": "USD"
}
},
"created_at": "<string>",
"environment_id": "<string>",
"metadata": {},
"outcome_evaluations": [
{
"completed_at": "<string>",
"description": "<string>",
"explanation": "<string>",
"iteration": 1,
"outcome_id": "<string>",
"result": "<string>",
"type": "outcome_evaluation"
}
],
"resources": [
{
"id": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"mount_path": "<string>",
"type": "github_repository",
"url": "<string>",
"checkout": {
"type": "branch",
"name": "<string>"
}
}
],
"stats": {
"active_seconds": 1,
"duration_seconds": 1
},
"status": "rescheduling",
"title": "<string>",
"type": "session",
"updated_at": "<string>",
"usage": {
"active_seconds": 1,
"cache_creation": {
"ephemeral_1h_input_tokens": 1,
"ephemeral_5m_input_tokens": 1
},
"cache_read_input_tokens": 1,
"input_tokens": 1,
"list_cost": {
"amount": "<string>",
"currency": "USD"
},
"output_tokens": 1,
"server_tool_use": {
"web_fetch_requests": 1,
"web_search_requests": 1
}
},
"vault_ids": [
"<string>"
],
"automation_id": "<string>"
}{
"error": {
"type": "validation.malformed",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-malformed"
}
}{
"error": {
"type": "auth.invalid_key",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-invalid-key"
}
}{
"error": {
"type": "auth.disabled_tenancy",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#auth-disabled-tenancy"
}
}{
"error": {
"type": "validation.not_found",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#validation-not-found"
}
}{
"error": {
"type": "budget.exceeded",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#budget-exceeded"
}
}{
"error": {
"type": "runtime.internal",
"message": "<string>",
"more": "https://docs.checkfu.com/reference/errors#runtime-internal"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
2026-08-29 Path Parameters
^sess_[0-9a-f]{32}$Response
BetaManagedAgentsSession
^sess_[0-9a-f]{32}$Show child attributes
Show child attributes
A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$Show child attributes
Show child attributes
A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$^env_[0-9a-f]{32}$at most 16 correlation pairs with keys of 1 to 64 characters
Show child attributes
Show child attributes
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Show child attributes
Show child attributes
rescheduling, running, idle, terminated session A canonical UTC ISO-8601 timestamp with millisecond precision.
24^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$Show child attributes
Show child attributes
^vlt_[0-9a-f]{32}$^auto_[0-9a-f]{32}$