Search Traces
Returns a cursor-paginated page of filtered trace rows for a project. Pass nextCursor from the response as cursor to fetch the next page.
curl --request POST \
--url https://api.adaline.ai/v2/logs/traces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "<string>",
"startedAfter": 123,
"startedBefore": 123,
"name": "<string>",
"referenceId": "<string>",
"sessionId": "<string>",
"filters": [
{
"column": "<string>",
"operator": "<string>",
"value": "<unknown>"
}
],
"limit": 100,
"cursor": "<string>"
}
'import requests
url = "https://api.adaline.ai/v2/logs/traces"
payload = {
"projectId": "<string>",
"startedAfter": 123,
"startedBefore": 123,
"name": "<string>",
"referenceId": "<string>",
"sessionId": "<string>",
"filters": [
{
"column": "<string>",
"operator": "<string>",
"value": "<unknown>"
}
],
"limit": 100,
"cursor": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: '<string>',
startedAfter: 123,
startedBefore: 123,
name: '<string>',
referenceId: '<string>',
sessionId: '<string>',
filters: [{column: '<string>', operator: '<string>', value: '<unknown>'}],
limit: 100,
cursor: '<string>'
})
};
fetch('https://api.adaline.ai/v2/logs/traces', 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.adaline.ai/v2/logs/traces",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => '<string>',
'startedAfter' => 123,
'startedBefore' => 123,
'name' => '<string>',
'referenceId' => '<string>',
'sessionId' => '<string>',
'filters' => [
[
'column' => '<string>',
'operator' => '<string>',
'value' => '<unknown>'
]
],
'limit' => 100,
'cursor' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.adaline.ai/v2/logs/traces"
payload := strings.NewReader("{\n \"projectId\": \"<string>\",\n \"startedAfter\": 123,\n \"startedBefore\": 123,\n \"name\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"sessionId\": \"<string>\",\n \"filters\": [\n {\n \"column\": \"<string>\",\n \"operator\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"limit\": 100,\n \"cursor\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.adaline.ai/v2/logs/traces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"<string>\",\n \"startedAfter\": 123,\n \"startedBefore\": 123,\n \"name\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"sessionId\": \"<string>\",\n \"filters\": [\n {\n \"column\": \"<string>\",\n \"operator\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"limit\": 100,\n \"cursor\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.adaline.ai/v2/logs/traces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"<string>\",\n \"startedAfter\": 123,\n \"startedBefore\": 123,\n \"name\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"sessionId\": \"<string>\",\n \"filters\": [\n {\n \"column\": \"<string>\",\n \"operator\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"limit\": 100,\n \"cursor\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"pagination": {
"limit": 123,
"returned": 1,
"hasMore": true,
"nextCursor": "<string>"
},
"traces": [
{
"id": "<string>",
"name": "<string>",
"status": "success",
"startedAt": 17450965800000,
"endedAt": 17450965800000,
"latency": 123,
"referenceId": "<string>",
"sessionId": "<string>",
"attributes": {},
"tags": [
"<string>"
],
"totalCost": 123,
"totalInputTokens": 123,
"totalOutputTokens": 123,
"spanIds": [
"<string>"
],
"createdAt": 17450965800000,
"updatedAt": 17450965800000
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}nextCursor from the response as cursor to fetch the next page.
See Export Logs for filter types, available columns, and pagination conventions.Authorizations
Workspace API key. Pass as Authorization: Bearer <key>.
Body
Request payload for paginated trace search.
The project to search traces in.
20 - 80Unix timestamp in milliseconds. Only return rows started at or after this time.
Unix timestamp in milliseconds. Only return rows started at or before this time.
Filter by status.
success, failure, aborted, cancelled, pending, unknown Case-insensitive substring match on the trace or span name.
Exact match on the reference ID.
Exact match on the session ID.
Typed filter objects for advanced queries. ANDed with flat params.
20Show child attributes
Show child attributes
Sort order. Defaults to startedAt:desc.
startedAt:asc, startedAt:desc Page size. Defaults to 50, max 200.
1 <= x <= 200Opaque pagination cursor from a previous response.
Response
A page of search results with cursor-based pagination metadata.
Was this page helpful?
curl --request POST \
--url https://api.adaline.ai/v2/logs/traces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "<string>",
"startedAfter": 123,
"startedBefore": 123,
"name": "<string>",
"referenceId": "<string>",
"sessionId": "<string>",
"filters": [
{
"column": "<string>",
"operator": "<string>",
"value": "<unknown>"
}
],
"limit": 100,
"cursor": "<string>"
}
'import requests
url = "https://api.adaline.ai/v2/logs/traces"
payload = {
"projectId": "<string>",
"startedAfter": 123,
"startedBefore": 123,
"name": "<string>",
"referenceId": "<string>",
"sessionId": "<string>",
"filters": [
{
"column": "<string>",
"operator": "<string>",
"value": "<unknown>"
}
],
"limit": 100,
"cursor": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: '<string>',
startedAfter: 123,
startedBefore: 123,
name: '<string>',
referenceId: '<string>',
sessionId: '<string>',
filters: [{column: '<string>', operator: '<string>', value: '<unknown>'}],
limit: 100,
cursor: '<string>'
})
};
fetch('https://api.adaline.ai/v2/logs/traces', 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.adaline.ai/v2/logs/traces",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => '<string>',
'startedAfter' => 123,
'startedBefore' => 123,
'name' => '<string>',
'referenceId' => '<string>',
'sessionId' => '<string>',
'filters' => [
[
'column' => '<string>',
'operator' => '<string>',
'value' => '<unknown>'
]
],
'limit' => 100,
'cursor' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.adaline.ai/v2/logs/traces"
payload := strings.NewReader("{\n \"projectId\": \"<string>\",\n \"startedAfter\": 123,\n \"startedBefore\": 123,\n \"name\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"sessionId\": \"<string>\",\n \"filters\": [\n {\n \"column\": \"<string>\",\n \"operator\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"limit\": 100,\n \"cursor\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.adaline.ai/v2/logs/traces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"<string>\",\n \"startedAfter\": 123,\n \"startedBefore\": 123,\n \"name\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"sessionId\": \"<string>\",\n \"filters\": [\n {\n \"column\": \"<string>\",\n \"operator\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"limit\": 100,\n \"cursor\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.adaline.ai/v2/logs/traces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"<string>\",\n \"startedAfter\": 123,\n \"startedBefore\": 123,\n \"name\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"sessionId\": \"<string>\",\n \"filters\": [\n {\n \"column\": \"<string>\",\n \"operator\": \"<string>\",\n \"value\": \"<unknown>\"\n }\n ],\n \"limit\": 100,\n \"cursor\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"pagination": {
"limit": 123,
"returned": 1,
"hasMore": true,
"nextCursor": "<string>"
},
"traces": [
{
"id": "<string>",
"name": "<string>",
"status": "success",
"startedAt": 17450965800000,
"endedAt": 17450965800000,
"latency": 123,
"referenceId": "<string>",
"sessionId": "<string>",
"attributes": {},
"tags": [
"<string>"
],
"totalCost": 123,
"totalInputTokens": 123,
"totalOutputTokens": 123,
"spanIds": [
"<string>"
],
"createdAt": 17450965800000,
"updatedAt": 17450965800000
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}