Usage Summary
Aggregate spend, tokens, and request volume for the dashboard Usage page.
Range-bounded (default last 30 days, hard-capped): unlike the raw /v1/usage list, every aggregate is scoped to a bounded window so it stays served by the timestamp index. Returns grand totals, breakdowns by model / user / API key (top rows plus a reconciling other fold), and a UTC-bucketed time series.
Query parameters
Return logs with timestamp >= start_date (ISO 8601 or Unix epoch seconds)
Return logs with timestamp >= start_date (ISO 8601 or Unix epoch seconds)
Return logs with timestamp < end_date (ISO 8601 or Unix epoch seconds)
Return logs with timestamp < end_date (ISO 8601 or Unix epoch seconds)
Filter to a single user
Filter to a single user
Filter to a single status (e.g. 'success' or 'error')
Filter to a single status (e.g. 'success' or 'error')
Filter to a single model
Filter to a single model
Filter to a single endpoint (e.g. '/v1/chat/completions')
Filter to a single endpoint (e.g. '/v1/chat/completions')
Filter to a single provenance source (e.g. 'gateway' or 'claude_code')
Filter to a single provenance source (e.g. 'gateway' or 'claude_code')
Filter to a single API key id
Filter to a single API key id
Filter by pricing state: true = only rows with a cost, false = only unpriced rows (cost is null)
Filter by pricing state: true = only rows with a cost, false = only unpriced rows (cost is null)
Filter by budget participation: true = only enforced gateway rows, false = only imported rows that never touch a budget
Filter by budget participation: true = only enforced gateway rows, false = only imported rows that never touch a budget
Time-series granularity: 'hour' or 'day'
Time-series granularity: 'hour' or 'day'
Response
Successful Response