Skip to main content
Every run - from the playground, the API, a schedule, a channel, or an eval - is persisted with its inputs, its output, and the ordered sequence of tool calls and results that produced it.

Traces

A trace is the run’s steps in order: each tool call with its arguments, and the result that came back. It is the same data live and after the fact, so a run you watched stream is replayable later without extra instrumentation.
In the dashboard this is AI Monitoring.

Metering

Each run records prompt tokens, completion tokens, total tokens, cost in USD, and wall-clock duration, taken from the provider’s own usage block.
Cost is exact decimal and is carried as a string on the wire - JSON floats cannot represent it faithfully. Every metering field is nullable, and null means unknown. Some providers report no usage block; that is not the same as a run that cost nothing. The CLI prints - rather than $0 so the two cannot be confused, and anything summing these values can tell them apart.
Eval runs carry source = "eval" and are excluded from AI Monitoring and cruqai runs by default. A single model comparison can add hundreds of rows, which would otherwise bury real traffic.

Over the API

Usage is nested under usage on each run: