Skip to content
GET/api/v1/traces

Query traces

Queries trace summaries from DB and/or the in-memory store. projectId is REQUIRED (400 MISSING_PROJECT_ID) - it scopes tenancy on both paths. Supports cursor (preferred) or legacy offset pagination, plus service/model/status/duration/time filters.

Authentication

Send Authorization: Bearer YOUR_API_KEY on every request. Generate API keys at /dashboard/api-keys.

Parameters

projectId in queryrequired
string
source in query

Defaults to both (DB preferred).

string
serviceName in query
string
model in query
string
status in query
string
minDuration in query
integer
maxDuration in query
integer
startTime in query

Epoch ms lower bound on start_time_ms.

integer
endTime in query

Epoch ms upper bound on start_time_ms.

integer
cursor in query

Opaque keyset cursor (base64url). Preferred over offset.

string
limit in query
integer
offset in query

Legacy pagination - deprecated; emits Deprecation/Sunset headers.

integer

Response

200 example

{
  "success": false,
  "data": {
    "traces": [
      {
        "traceId": "string",
        "rootSpanName": "string",
        "duration": 0,
        "spanCount": 0,
        "services": [
          "string"
        ],
        "status": "ok",
        "startTime": 0
      }
    ],
    "total": 0,
    "source": "string",
    "nextCursor": "string",
    "paginationMode": "cursor"
  }
}

All status codes

200Trace summaries.
400(no description)
401(no description)
429(no description)

Code samples

cURL

curl -X GET \
  https://evalguard.ai/api/v1/traces \
  -H "Authorization: Bearer $EVALGUARD_API_KEY" \

TypeScript

import { EvalGuard } from "@evalguard/sdk";

const client = new EvalGuard({ apiKey: process.env.EVALGUARD_API_KEY });

const response = await client.request({
  method: "GET",
  path: "/api/v1/traces",
});
console.log(response);

Python

from evalguard import EvalGuard
import os

client = EvalGuard(api_key=os.environ["EVALGUARD_API_KEY"])

response = client.request(method="GET", path="/api/v1/traces")
print(response)

Go

package main

import (
	"context"
	"fmt"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequestWithContext(context.Background(), "GET", "https://evalguard.ai/api/v1/traces", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("EVALGUARD_API_KEY"))
	resp, err := http.DefaultClient.Do(req)
	if err != nil { panic(err) }
	defer resp.Body.Close()
	fmt.Println(resp.Status)
}

Errors

400401429

Other Traces endpoints