Analytics
What each number in the app means.
| Metric | Definition |
|---|---|
| Requests | Calls that passed authentication |
| Success rate | Calls with a 2xx status ÷ all calls |
| Tokens | Input + cache read + cache write + output |
| Cache hit rate | Cache read ÷ (input + cache read + cache write) |
| Spend | Sum of each call's cost |
| First token, p50 | Median time from the request to the first streamed token |
| Output speed, p50 | Median of output tokens ÷ (latency − first token time) per call. Counts streamed calls that returned output and weren't cancelled |
| Pace | Spend so far ÷ the share of the period that has passed |
| Thinking | The thinking budget the request asked for, normalized to one level (below) |
| Reasoning tokens | Thinking tokens the model reported. Already counted inside output |
Deltas compare the selected range with the range just before it. Medians come from the raw request log, which is kept for the retention window (90 days by default). Totals come from hourly rollups and are kept forever. The 15m and 1h ranges (on the overview and analytics pages) are the exception: they read the raw log in 30-second and 1-minute buckets and refresh every 5 seconds, so you can watch requests land.
Token counts come from the model's own usage report. When CLIProxyAPI later reports an exact breakdown for the same request, the row is updated and marked reconciled. If a response had no usage at all, tokens are estimated and marked estimated.
Thinking budget
Every request records the thinking budget it asked for, read from whichever field the client sent:
| Sent as | Example | Level |
|---|---|---|
reasoning_effort (OpenAI chat) | high | High |
reasoning.effort (Responses) | xhigh | Extra high |
output_config.effort (Anthropic) | max | Max |
thinking.budget_tokens (Anthropic) | 8192 | Medium |
thinking.type: disabled / adaptive | Off / Auto | |
thinkingConfig.thinkingBudget (Gemini) | -1 | Auto |
thinkingConfig.thinkingLevel (Gemini) | low | Low |
| Model suffix | gpt-5(high), gemini-2.5-pro(16000) | High |
Token budgets map to levels: 0 is Off, up to 512 Minimal, up to 2,048 Low, up to 12,288 Medium, up to 24,576 High, up to 32,768 Extra high, above that Max. A negative budget is Auto. A request that sets nothing is "Not set" (the provider's default). Requests from before this was recorded show as "Unknown". The exact field and value are kept and shown on each request in Activity.
The breakdown reads the raw request log, so it covers the retention window. Latency is end to end.