curl --request GET \
--url https://app.traceroot.ai/api/v1/public/sessions \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.traceroot.ai/api/v1/public/sessions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.traceroot.ai/api/v1/public/sessions', 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://app.traceroot.ai/api/v1/public/sessions",
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://app.traceroot.ai/api/v1/public/sessions"
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://app.traceroot.ai/api/v1/public/sessions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.traceroot.ai/api/v1/public/sessions")
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{
"data": [
{
"duration_ms": 123,
"first_trace_time": "2023-11-07T05:31:56Z",
"input": "<string>",
"last_trace_time": "2023-11-07T05:31:56Z",
"output": "<string>",
"session_id": "<string>",
"total_input_tokens": 123,
"total_output_tokens": 123,
"trace_count": 123,
"user_ids": [
"<string>"
],
"total_cost": 123
}
],
"meta": {
"limit": 123,
"page": 123,
"total": 123
}
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}List Sessions
List unique sessions for the caller’s project with trace counts.
Args: auth (DualStampedAuth): Resolved credential context (API key or user session token); scopes the read to its project and stamps the rate-limit identity. limit (int): Items per page (1-200). search_query (str | None): Substring match on session id. start_after (datetime | None): Inclusive lower bound on trace time. end_before (datetime | None): Exclusive upper bound on trace time.
Returns: SessionListResponse: Session summaries, newest first.
Raises: HTTPException: 500 on a reader failure.
curl --request GET \
--url https://app.traceroot.ai/api/v1/public/sessions \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.traceroot.ai/api/v1/public/sessions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.traceroot.ai/api/v1/public/sessions', 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://app.traceroot.ai/api/v1/public/sessions",
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://app.traceroot.ai/api/v1/public/sessions"
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://app.traceroot.ai/api/v1/public/sessions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.traceroot.ai/api/v1/public/sessions")
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{
"data": [
{
"duration_ms": 123,
"first_trace_time": "2023-11-07T05:31:56Z",
"input": "<string>",
"last_trace_time": "2023-11-07T05:31:56Z",
"output": "<string>",
"session_id": "<string>",
"total_input_tokens": 123,
"total_output_tokens": 123,
"trace_count": 123,
"user_ids": [
"<string>"
],
"total_cost": 123
}
],
"meta": {
"limit": 123,
"page": 123,
"total": 123
}
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Items per page
1 <= x <= 200Search by session_id
Only sessions with traces at or after this time (inclusive, ISO 8601)
Only sessions with traces before this time (exclusive, ISO 8601)
Target project for the request. Required when authenticating with a user session token (a user credential is only meaningful scoped to a project); for an API key it is optional and, if given, must match the key's project.

