Usage Summary Csv
Download the per-model / per-user / per-key / per-source breakdown as CSV.
A dedicated route rather than a format=csv flag on /summary so that endpoint keeps a single JSON response model and a clean OpenAPI schema. The export is uncapped (no top-N fold): finance wants every row. Kept separate from the bare-array /v1/usage contract, which is untouched.
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
Response
Successful Response