Skip to main content
GET
Get traces

Authorizations

Authorization
string
header
required

API key authorization. Pass your API key in the Authorization header as a Bearer token. Both new (gsk_*) and legacy (gsk-) API keys are accepted, e.g. Authorization: Bearer gsk_... or Authorization: Bearer gsk-....

Query Parameters

ids
string[]

Filter by trace IDs

sessionIds
string[]

Filter by session IDs

evaluationIds
string[]

Filter by evaluation IDs

limit
integer

Maximum number of results

offset
integer

Number of results to skip

fromCreatedAt
string<date-time>

Filter traces created at or after this timestamp (ISO 8601 format)

toCreatedAt
string<date-time>

Filter traces created at or before this timestamp (ISO 8601 format)

sort
string[]

Sort instructions (field and direction pairs). A caller gets 400 for a sort on a field it sees as null on any product the list reaches (evaluation.readInference).

Response

Traces retrieved successfully

id
string
Example:

"ir_123"

sessionId
string
Example:

"session_123"

userId
string | null
Example:

"user_123"

index
integer

Order index within the session

Example:

0

status
enum<string>
Available options:
PENDING,
GENERATED,
FAILED,
SKIPPED
Example:

"PENDING"

error
string | null

Error message explaining why this trace failed or was skipped

Example:

null

input
object | null

Structured input data. For plain text input, format is { user_message: "..." }. A content array of parts (audio or file) can sit beside an optional user_message. Each element of a content array is read on its own. A file part is a Galtea file when its uri names a Galtea storage key (files/<organization>/<32 hex>.<extension>, on any host): it is stored signature-free and checked as on a test case input (at most 20 files and 20 MB, an accepted file type, a file of this organization), otherwise 400. A Galtea file missing from storage is stored signature-free without its sizeBytes, and every other element as sent. A metric scores a Galtea file only when its judge model reads that kind of file (PNG, JPEG, WebP, GIF or PDF); any other metric that reads this side is skipped, except a human evaluation or self-hosted one, and the reason names the file.

Example:
actualOutput

The agent turn output. Plain text by default (the scored scalar). An envelope { assistant_message, content: [...] } carries a content array of parts (audio or file) beside an optional assistant_message — the scored scalar stays the canonical transcript, and an answer that is only a file carries no scalar at all. A metric scores a Galtea file only when its judge model reads that kind of file (PNG, JPEG, WebP, GIF or PDF); any other metric that reads this side is skipped, except a human evaluation or self-hosted one, and the reason names the file.

Example:

"Model response"

latency
integer | null
Example:

150

inputTokens
integer | null
Example:

100

outputTokens
integer | null
Example:

50

cacheReadInputTokens
integer | null
Example:

20

tokens
integer | null

Total tokens

Example:

150

costPerInputToken
number | null
Example:

0.00001

costPerOutputToken
number | null
Example:

0.00003

costPerCacheReadInputToken
number | null
Example:

0.000005

cost
number | null
Example:

0.001

creditsUsed
integer | null
Example:

1

droppedSpanCount
integer | null

How many spans sent with this trace were refused, for example a span with an empty name or a negative latency. Null means none were refused.

Example:

2

conversationSimulatorVersion
string | null
Example:

"1.0.0"

traceId
string | null

W3C trace ID Galtea sends in the traceparent header on this Direct Inference turn. Stored when the turn starts. This is the OpenTelemetry trace id, not the id of this Galtea trace, which is id.

Example:

"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

createdAt
string<date-time>
deletedAt
string<date-time> | null
comments
object[]

Free-form reviewer annotations on this turn, oldest first.