GET/api/v1/traces

Query traces

Query traces from DB or in-memory store. Supports filtering by service, model, status, duration, and time range.

Authentication

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

Parameters

projectId in query

Optional project ID for legacy DB traces

string
source in query

Data source (defaults to both)

string
serviceName in query
string
model in query
string
status in query
string
minDuration in query

Min duration in ms

integer
maxDuration in query

Max duration in ms

integer
limit in query
integer
offset in query
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"
  }
}

All status codes

200Trace summaries

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"
	"os"

	"github.com/evalguard/evalguard-go"
)

func main() {
	client := evalguard.NewClient(os.Getenv("EVALGUARD_API_KEY"))
	resp, err := client.Request(context.Background(), "GET", "/api/v1/traces", nil)
	if err != nil { panic(err) }
	fmt.Println(resp)
}

Other Traces endpoints