curl --request GET \
--url https://api.uselemma.ai/traces/{trace_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uselemma.ai/traces/{trace_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{
"id": "<string>",
"otel_trace_id": "<string>",
"project_id": "<string>",
"service_name": "<string>",
"agent_name": "<string>",
"thread_id": "<string>",
"thread_trace_count": 123,
"agent_input_display": "<string>",
"tool_calls": [
{
"span_id": "<string>",
"name": "<string>",
"duration_ms": 123,
"is_error": true,
"user_facing_message": "<string>",
"user_facing_message_truncated": true,
"user_facing_messages_omitted": 123
}
],
"interaction": {
"has_input": true,
"has_output": true,
"input_kind": "none",
"has_user_message_tools": true
},
"has_error": true,
"total_duration_ms": 123,
"timestamp": "2023-11-07T05:31:56Z",
"spans": [
{
"id": "<string>",
"otel_span_id": "<string>",
"parent_otel_span_id": "<string>",
"name": "<string>",
"kind": "<string>",
"start_time_ns": "<string>",
"end_time_ns": "<string>",
"duration_ms": 123,
"status_code": "<string>",
"status_description": "<string>",
"input_tokens": 123,
"output_tokens": 123,
"model_name": "<string>",
"tps": 123,
"attributes": {},
"events": "<unknown>"
}
],
"stats": {
"span_count": 123,
"total_tokens": 123,
"total_duration_ms": 123,
"error_count": 123,
"tool_calls": [
{
"name": "<string>",
"otel_span_id": "<string>",
"status": "<string>"
}
],
"models_used": [
"<string>"
]
},
"issue_extraction": {
"status": "running",
"reason": "issues_found",
"issue_count": 123,
"occurrence_count": 123,
"completed_at": "2023-11-07T05:31:56Z"
},
"project_name": "<string>",
"agent_input": null,
"agent_output": null,
"release": "<string>"
}{
"detail": "<string>",
"code": "<string>"
}{
"detail": "<string>",
"code": "<string>"
}Get trace
Loads a single trace with spans and stats. Pass expand=context to return the agent context bundle (row, stats, spans, and issue occurrences) instead of the default detail payload. Default (no expand) responds with the get_trace detail schema; expand=context responds with the get_trace_context bundle schema. With expand=context, spans_limit/spans_offset page the bundle’s spans (spans_total reports the stored count) and include_attributes/include_events=false drop the payload-heavy span fields.
curl --request GET \
--url https://api.uselemma.ai/traces/{trace_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_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.uselemma.ai/traces/{trace_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uselemma.ai/traces/{trace_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{
"id": "<string>",
"otel_trace_id": "<string>",
"project_id": "<string>",
"service_name": "<string>",
"agent_name": "<string>",
"thread_id": "<string>",
"thread_trace_count": 123,
"agent_input_display": "<string>",
"tool_calls": [
{
"span_id": "<string>",
"name": "<string>",
"duration_ms": 123,
"is_error": true,
"user_facing_message": "<string>",
"user_facing_message_truncated": true,
"user_facing_messages_omitted": 123
}
],
"interaction": {
"has_input": true,
"has_output": true,
"input_kind": "none",
"has_user_message_tools": true
},
"has_error": true,
"total_duration_ms": 123,
"timestamp": "2023-11-07T05:31:56Z",
"spans": [
{
"id": "<string>",
"otel_span_id": "<string>",
"parent_otel_span_id": "<string>",
"name": "<string>",
"kind": "<string>",
"start_time_ns": "<string>",
"end_time_ns": "<string>",
"duration_ms": 123,
"status_code": "<string>",
"status_description": "<string>",
"input_tokens": 123,
"output_tokens": 123,
"model_name": "<string>",
"tps": 123,
"attributes": {},
"events": "<unknown>"
}
],
"stats": {
"span_count": 123,
"total_tokens": 123,
"total_duration_ms": 123,
"error_count": 123,
"tool_calls": [
{
"name": "<string>",
"otel_span_id": "<string>",
"status": "<string>"
}
],
"models_used": [
"<string>"
]
},
"issue_extraction": {
"status": "running",
"reason": "issues_found",
"issue_count": 123,
"occurrence_count": 123,
"completed_at": "2023-11-07T05:31:56Z"
},
"project_name": "<string>",
"agent_input": null,
"agent_output": null,
"release": "<string>"
}{
"detail": "<string>",
"code": "<string>"
}{
"detail": "<string>",
"code": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Trace ID.
Query Parameters
Optional expansion. Omit for the default detail payload; context returns the agent context bundle.
context Project ID. Required when expand=context.
With expand=context: maximum spans in the bundle (max 500).
1 <= x <= 500With expand=context: number of spans to skip.
x >= 0With expand=context: include span attributes (default true).
With expand=context: include span events (default true).
Response
Trace details
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes