curl --request GET \
--url https://api.example.com/api/observability/runs \
--header 'x-api-key: <api-key>'import requests
url = "https://api.example.com/api/observability/runs"
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.example.com/api/observability/runs', 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.example.com/api/observability/runs",
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.example.com/api/observability/runs"
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.example.com/api/observability/runs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/observability/runs")
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": {
"items": [
{
"id": "<string>",
"inputPreview": "<unknown>",
"outputPreview": "<unknown>",
"status": "<string>",
"tags": [
"<string>"
],
"traceId": "<string>",
"cost": 123,
"createdAt": "<string>",
"latencyMs": 123,
"totalTokens": 123
}
],
"page": 123,
"nextPage": 123
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}List observability runs
Filterable run list via the contract’s list_traces, paged with the
reader’s limit / page. Time range plus the neutral advanced filters
(tags / status / cost / token / latency ranges) and sort.
List- or dict-typed query params are JSON-encoded in the query string
(tags may be a JSON list ["a","b"] or a comma-separated string).
curl --request GET \
--url https://api.example.com/api/observability/runs \
--header 'x-api-key: <api-key>'import requests
url = "https://api.example.com/api/observability/runs"
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.example.com/api/observability/runs', 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.example.com/api/observability/runs",
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.example.com/api/observability/runs"
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.example.com/api/observability/runs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/observability/runs")
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": {
"items": [
{
"id": "<string>",
"inputPreview": "<unknown>",
"outputPreview": "<unknown>",
"status": "<string>",
"tags": [
"<string>"
],
"traceId": "<string>",
"cost": 123,
"createdAt": "<string>",
"latencyMs": 123,
"totalTokens": 123
}
],
"page": 123,
"nextPage": 123
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Query Parameters
Range start as an ISO instant or a relative token (e.g. 30d); defaults to 30 days ago.
Range end as an ISO instant or a relative token; defaults to now.
Tag filter as a JSON list (["a","b"]) or a comma-separated string.
Restrict to error runs; success is unfiltered.
error, success Filter to one run user (the backend's native user identity dimension).
Filter to one run session/thread (the backend's native session dimension).
Filter to one run version (the backend's native version dimension; e.g. a preset's version).
Inclusive lower bound on run cost.
Inclusive upper bound on run cost.
Inclusive lower bound on token count.
Inclusive upper bound on token count.
Inclusive lower bound on latency in milliseconds.
Inclusive upper bound on latency in milliseconds.
Sort key.
createdAt, cost, latencyMs, totalTokens Sort direction; defaults to desc.
asc, desc 1-based page number.
x >= 1Items per page; capped to 100, never refused.
x >= 1Response
Success.
One page of observability runs; nextPage is null on the last page.
Show child attributes
Show child attributes

