Get a request
curl --request GET \
--url https://api.sidenet.ai/v1/requests/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sidenet.ai/v1/requests/{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{
"request": {
"id": "8f2c1d4e6a7b4c9d",
"kind": "chat",
"status": "success",
"error": null,
"started_at": "2026-10-27T10:00:00.000Z",
"ended_at": "2026-10-27T10:00:04.210Z",
"latency_ms": 4210,
"environment": "prod",
"source": "SDK-v2",
"group": {
"id": "grp_84f20c19",
"name": "Acme"
},
"user_id": "user_4821",
"thread_id": "thread_2f81c04a",
"message_id": "msg_9c41b0e7",
"trace_ids": [
"0af7651916cd43dd8448eb211c80319c",
"5c1e9a2b7d3f4e6a8b9c0d1e2f3a4b5c"
],
"agent": {
"id": "6f1c0f4e-2b7a-4a51-9a2f-0c9d1b3e5a10",
"name": "Support",
"version_id": "b3f7a2c8-5d19-4e6b-8f02-1a4c9e7d3b55",
"version": 4
},
"workflow": null,
"copilot": {
"id": "cccccccc-0000-4000-8000-000000000001",
"environment": "prod",
"network": {
"id": "12",
"name": "Acme network"
}
},
"experiment_id": null,
"target": null,
"model": "openai/gpt-4o",
"cost": 0.0123,
"usage": {
"input_tokens": 1210,
"output_tokens": 188,
"total_tokens": 1398
},
"cost_breakdown": {
"main": {
"cost": 0.0118,
"usage": {
"inputTokens": 1180,
"outputTokens": 184
},
"model": "openai/gpt-4o"
},
"handoff-agent": {
"cost": 0.0005,
"usage": {
"inputTokens": 30,
"outputTokens": 4
},
"model": "openai/gpt-4o-mini"
}
},
"participants": [
{
"type": "agent",
"id": "support-agent",
"name": "Support"
},
{
"type": "tool",
"id": "Acme_CRM_get_customer",
"name": "Acme_CRM_get_customer",
"success": true
}
],
"feedback": {
"rating": 1,
"comment": null
},
"scores": [
{
"id": "f2c1a7e4-6b3d-4a95-8e10-c7d2b9f4a301",
"scorer_id": "answer-relevancy",
"name": "Answer Relevancy",
"score": 0.85
}
],
"scoring": {
"runs": 1,
"cost": 0.0021
}
},
"traces": [
{
"trace_id": "0af7651916cd43dd8448eb211c80319c",
"spans": [
{
"spanId": "b7ad6b7169203331",
"parentSpanId": null,
"traceId": "0af7651916cd43dd8448eb211c80319c",
"name": "agent run: 'support-agent'",
"spanType": "agent_run",
"startedAt": "2026-10-27T10:00:00.000Z",
"endedAt": "2026-10-27T10:00:04.210Z",
"duration_ms": 4210,
"entityType": "agent",
"entityId": "support-agent",
"input": "…",
"output": "…",
"attributes": {},
"metadata": {}
}
]
}
],
"scores": [
{
"id": "f2c1a7e4-6b3d-4a95-8e10-c7d2b9f4a301",
"scorer_id": "answer-relevancy",
"name": "Answer Relevancy",
"score": 0.85,
"trace_id": "0af7651916cd43dd8448eb211c80319c",
"span_id": null,
"reason": null,
"source": "TEST",
"created_at": "2026-10-27T10:05:00.000Z"
}
]
}{
"error": "Not found",
"details": "Request not found: 8f2c1d4e6a7b4c9d"
}Observability
Get a request
One request with everything recorded about it: the row of the log, the span tree of each trace it produced (and of the scorer runs that scored it), and its scores. The id can be the request id or any of its trace ids, as shown on the Studio traces page. Only requests of your organization are served; any other id is a 404. Per-user tool credentials carried by the request context are redacted from every span.
GET
/
v1
/
requests
/
{id}
Get a request
curl --request GET \
--url https://api.sidenet.ai/v1/requests/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{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.sidenet.ai/v1/requests/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sidenet.ai/v1/requests/{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{
"request": {
"id": "8f2c1d4e6a7b4c9d",
"kind": "chat",
"status": "success",
"error": null,
"started_at": "2026-10-27T10:00:00.000Z",
"ended_at": "2026-10-27T10:00:04.210Z",
"latency_ms": 4210,
"environment": "prod",
"source": "SDK-v2",
"group": {
"id": "grp_84f20c19",
"name": "Acme"
},
"user_id": "user_4821",
"thread_id": "thread_2f81c04a",
"message_id": "msg_9c41b0e7",
"trace_ids": [
"0af7651916cd43dd8448eb211c80319c",
"5c1e9a2b7d3f4e6a8b9c0d1e2f3a4b5c"
],
"agent": {
"id": "6f1c0f4e-2b7a-4a51-9a2f-0c9d1b3e5a10",
"name": "Support",
"version_id": "b3f7a2c8-5d19-4e6b-8f02-1a4c9e7d3b55",
"version": 4
},
"workflow": null,
"copilot": {
"id": "cccccccc-0000-4000-8000-000000000001",
"environment": "prod",
"network": {
"id": "12",
"name": "Acme network"
}
},
"experiment_id": null,
"target": null,
"model": "openai/gpt-4o",
"cost": 0.0123,
"usage": {
"input_tokens": 1210,
"output_tokens": 188,
"total_tokens": 1398
},
"cost_breakdown": {
"main": {
"cost": 0.0118,
"usage": {
"inputTokens": 1180,
"outputTokens": 184
},
"model": "openai/gpt-4o"
},
"handoff-agent": {
"cost": 0.0005,
"usage": {
"inputTokens": 30,
"outputTokens": 4
},
"model": "openai/gpt-4o-mini"
}
},
"participants": [
{
"type": "agent",
"id": "support-agent",
"name": "Support"
},
{
"type": "tool",
"id": "Acme_CRM_get_customer",
"name": "Acme_CRM_get_customer",
"success": true
}
],
"feedback": {
"rating": 1,
"comment": null
},
"scores": [
{
"id": "f2c1a7e4-6b3d-4a95-8e10-c7d2b9f4a301",
"scorer_id": "answer-relevancy",
"name": "Answer Relevancy",
"score": 0.85
}
],
"scoring": {
"runs": 1,
"cost": 0.0021
}
},
"traces": [
{
"trace_id": "0af7651916cd43dd8448eb211c80319c",
"spans": [
{
"spanId": "b7ad6b7169203331",
"parentSpanId": null,
"traceId": "0af7651916cd43dd8448eb211c80319c",
"name": "agent run: 'support-agent'",
"spanType": "agent_run",
"startedAt": "2026-10-27T10:00:00.000Z",
"endedAt": "2026-10-27T10:00:04.210Z",
"duration_ms": 4210,
"entityType": "agent",
"entityId": "support-agent",
"input": "…",
"output": "…",
"attributes": {},
"metadata": {}
}
]
}
],
"scores": [
{
"id": "f2c1a7e4-6b3d-4a95-8e10-c7d2b9f4a301",
"scorer_id": "answer-relevancy",
"name": "Answer Relevancy",
"score": 0.85,
"trace_id": "0af7651916cd43dd8448eb211c80319c",
"span_id": null,
"reason": null,
"source": "TEST",
"created_at": "2026-10-27T10:05:00.000Z"
}
]
}{
"error": "Not found",
"details": "Request not found: 8f2c1d4e6a7b4c9d"
}Authorizations
Organization API key, generated in studio.sidenet.ai. Backend only — never in a browser.
Path Parameters
A request id, or one of its trace ids.
Example:
"8f2c1d4e6a7b4c9d"