List Usage
List usage logs ordered by timestamp (most recent first).
Supports optional filters for time range, user, status, model, and endpoint. Paginated via skip/limit. The return shape is a bare JSON array; external billing/analytics consumers depend on this, so the total row count for a paginated UI is served separately by GET /v1/usage/count rather than wrapped in an envelope here. Timestamps accept either ISO 8601 strings or Unix epoch seconds (numeric).
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