omni-usage-logs
Access detailed call logs and usage analytics. Filter by provider, model, time range, status, and cost. Export logs and aggregate token usage across all connections.
Install
npx skills add https://github.com/diegosouzapw/omniroute --skill omni-usage-logsOverview
Access detailed call logs and usage analytics. Filter by provider, model, time range, status, and cost. Export logs and aggregate token usage across all connections.
Authentication
All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE_API_KEY=false for local development.
Endpoints
GET /api/usage/analytics
Get usage analytics
curl https://localhost:20128/api/usage/analytics \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/call-logs
Get call logs
curl https://localhost:20128/api/usage/call-logs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/call-logs/{id}
Get a specific call log
curl https://localhost:20128/api/usage/call-logs/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/{connectionId}
Get usage for a specific connection
curl https://localhost:20128/api/usage/{connectionId} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/history
Get usage history
curl https://localhost:20128/api/usage/history \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/logs
Get usage logs
curl https://localhost:20128/api/usage/logs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/proxy-logs
Get proxy logs
curl https://localhost:20128/api/usage/proxy-logs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/request-logs
Get request logs
curl https://localhost:20128/api/usage/request-logs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/budget
Get usage budget status
Returns current budget limits and consumption.
curl https://localhost:20128/api/usage/budget \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/usage/budget
Configure usage budget
Set or update budget limits for usage tracking.
curl -X POST https://localhost:20128/api/usage/budget \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/usage/cache-health
Get prompt-cache health summary
Summarizes the write/read cache ratio from call_logs for a time window:
distribution (p50/p90/p99/max of cache-write tokens), warm/cold/rewrite/uncached
call counts, the "heavy write" outlier share (10x the window median, floored at
1024 tokens — Anthropic's cache-creation minimum), and a per-model breakdown.
Only successful (status = 200) calls with a non-null cache column are counted.
curl https://localhost:20128/api/usage/cache-health \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/model-latency-stats
Get per-model/provider latency statistics
Aggregates usage_history rows into per-(provider, model) latency stats (avg/p50/p95/p99, std-dev, TTFT, tokens/sec) over a rolling window. Falls back from successful-only to all-sample rows when the successful count is below minSamples.
curl https://localhost:20128/api/usage/model-latency-stats \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/budget/bulk
GET usage › budget › bulk
curl https://localhost:20128/api/usage/budget/bulk \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/codex-reset-credit
GET usage › codex reset credit
curl https://localhost:20128/api/usage/codex-reset-credit \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/usage/codex-reset-credit
POST usage › codex reset credit
curl -X POST https://localhost:20128/api/usage/codex-reset-credit \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/usage/combo-forecast
GET usage › combo forecast
curl https://localhost:20128/api/usage/combo-forecast \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/combo-health
GET usage › combo health
curl https://localhost:20128/api/usage/combo-health \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/combo-health-autopilot
GET usage › combo health autopilot
curl https://localhost:20128/api/usage/combo-health-autopilot \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/combo-health-dashboard
GET usage › combo health dashboard
curl https://localhost:20128/api/usage/combo-health-dashboard \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/combo-scoring-inspector
GET usage › combo scoring inspector
curl https://localhost:20128/api/usage/combo-scoring-inspector \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/combo-trace/{id}
GET usage › combo trace ›
curl https://localhost:20128/api/usage/combo-trace/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/om-usage
GET usage › om usage
curl https://localhost:20128/api/usage/om-usage \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/provider-limits
GET usage › provider limits
curl https://localhost:20128/api/usage/provider-limits \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/usage/provider-limits
POST usage › provider limits
curl -X POST https://localhost:20128/api/usage/provider-limits \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/usage/provider-window-costs
GET usage › provider window costs
curl https://localhost:20128/api/usage/provider-window-costs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/quota
GET usage › quota
curl https://localhost:20128/api/usage/quota \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/requests-by-provider-date
GET usage › requests by provider date
curl https://localhost:20128/api/usage/requests-by-provider-date \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/route-explain/{id}
GET usage › route explain ›
curl https://localhost:20128/api/usage/route-explain/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/token-limits
GET usage › token limits
curl https://localhost:20128/api/usage/token-limits \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/usage/token-limits
POST usage › token limits
Save a per-key token limit. A key holds one limit per scope and reset interval, so daily, weekly and monthly limits for the same scope coexist. Without id, a new limit is added (or the key's limit for the same scope and interval is updated); with id, that limit is updated.
curl -X POST https://localhost:20128/api/usage/token-limits \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/usage/token-limits
DELETE usage › token limits
curl -X DELETE https://localhost:20128/api/usage/token-limits \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/usage/utilization
GET usage › utilization
curl https://localhost:20128/api/usage/utilization \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
Payloads
See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.
