Call logs
Path: Console → Logs /console/log
What it does
Every API call your account makes — filterable, searchable, exportable.
Fields
| Field | Description |
|---|---|
| Time | When the request hit primerouter |
| trace_id | Unique ID — matches response header x-request-id |
| Token | Which API key (masked) |
| Model | The model you requested |
| Upstream | The provider actually routed to (e.g. openai / anthropic / deepseek) |
| prompt / completion tokens | Counts (byte-identical to upstream) |
| Latency | Upstream response latency (TTFB / total) |
| Status | HTTP: 200 / 400 / 429 / 500 / etc. |
| Charge | Quota deducted |
Filters
- Time range (last hour / 24h / 7d / custom)
- Token
- Model
- Status (success / failure / rate-limited / timeout)
- Keyword (in user message — only when log retention is enabled)
Export
CSV with all visible fields — useful for monthly reconciliation.
Single-row detail
Expand any row for:
- Full trace_id, request / response headers (masked)
- Upstream signature (upstream SHA, if any) — used for the parity check described in Architecture
- Full usage field
- Routing decision path (group → channel → key)
- Error detail (on failure)
Privacy
prompt and completion content is not stored by default. Site administrators can enable log retention from the backend — that's an operational decision. See Privacy policy.
FAQ
Q: Why are my prompt_tokens higher than expected? A: Multi-turn history, system prompts, tool definitions all count as prompt tokens.
Q: What does status 429 mean? A: Rate limited (user / model / upstream level). See API → error codes.
