Agent Sessions
Get a session
Returns a session and its API runs, ordered from newest to oldest. The session must belong to the authenticating API key.
Pagination parameters apply to the runs array. Use limit, after, and before for cursor pagination.
GET
/
kapso-agent
/
sessions
/
{id}
Get a session
curl --request GET \
--url https://api.kapso.ai/platform/v1/kapso-agent/sessions/{id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.kapso.ai/platform/v1/kapso-agent/sessions/{id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.kapso.ai/platform/v1/kapso-agent/sessions/{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.kapso.ai/platform/v1/kapso-agent/sessions/{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 => [
"X-API-Key: <api-key>"
],
]);
$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.kapso.ai/platform/v1/kapso-agent/sessions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.kapso.ai/platform/v1/kapso-agent/sessions/{id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kapso.ai/platform/v1/kapso-agent/sessions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"session": {
"conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"status": "active",
"created_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"latest_run": {
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"created_at": "2023-11-07T05:31:56Z"
},
"last_activity_at": "2023-11-07T05:31:56Z"
},
"runs": [
{
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"mode": "api",
"title": "<string>",
"kind": "ask",
"prompt": "<string>",
"provider_model": "gpt-5.5",
"reasoning_effort": "medium",
"error_message": "<string>",
"ai_cost_microdollars": 123,
"result": null,
"pending_approval": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"tool_name": "<string>",
"parameters": {},
"created_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"paused_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"status_url": "<string>",
"finding": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"investigation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
]
},
"meta": {
"page": 2,
"per_page": 2,
"total_pages": 1,
"total_count": 1,
"has_next": true,
"total_count_estimated": true
},
"paging": {
"cursors": {
"before": "<string>",
"after": "<string>"
},
"next": "<string>",
"previous": "<string>"
}
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>"
}{
"error": "<string>"
}{
"message": "record_not_found",
"detail": "Session not found."
}Authorizations
Path Parameters
Session conversation_id
Query Parameters
Page number for legacy offset pagination. Use cursor pagination for new integrations.
Required range:
1 <= x <= 50Number of results for legacy offset pagination.
Required range:
1 <= x <= 100Maximum number of results for cursor pagination.
Required range:
1 <= x <= 100Cursor for the previous page.
Cursor for the next page.
Was this page helpful?
⌘I
Get a session
curl --request GET \
--url https://api.kapso.ai/platform/v1/kapso-agent/sessions/{id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.kapso.ai/platform/v1/kapso-agent/sessions/{id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.kapso.ai/platform/v1/kapso-agent/sessions/{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.kapso.ai/platform/v1/kapso-agent/sessions/{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 => [
"X-API-Key: <api-key>"
],
]);
$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.kapso.ai/platform/v1/kapso-agent/sessions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.kapso.ai/platform/v1/kapso-agent/sessions/{id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kapso.ai/platform/v1/kapso-agent/sessions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"session": {
"conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"status": "active",
"created_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"latest_run": {
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"created_at": "2023-11-07T05:31:56Z"
},
"last_activity_at": "2023-11-07T05:31:56Z"
},
"runs": [
{
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"mode": "api",
"title": "<string>",
"kind": "ask",
"prompt": "<string>",
"provider_model": "gpt-5.5",
"reasoning_effort": "medium",
"error_message": "<string>",
"ai_cost_microdollars": 123,
"result": null,
"pending_approval": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"tool_name": "<string>",
"parameters": {},
"created_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"paused_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"status_url": "<string>",
"finding": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"investigation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
]
},
"meta": {
"page": 2,
"per_page": 2,
"total_pages": 1,
"total_count": 1,
"has_next": true,
"total_count_estimated": true
},
"paging": {
"cursors": {
"before": "<string>",
"after": "<string>"
},
"next": "<string>",
"previous": "<string>"
}
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>"
}{
"error": "<string>"
}{
"message": "record_not_found",
"detail": "Session not found."
}
