SumoRouter
SumoRouter Customer API

Usage

Server

Request logs and usage analytics of the signed-in user.


List request logs

GET
https://ai.brandkamu.id
/api/usage/logs

The user's requests (API and playground), newest first, including failed ones. Prompt and response content are never stored. Defaults to the last 30 days; the range may span at most 366 days.

List request logs › query Parameters

from
​string · date-time

Range start (RFC 3339). Default to minus 30 days.

to
​string · date-time

Range end, exclusive (RFC 3339). Default now. The range may span at most 366 days.

key
​string

An API key id, or playground for dashboard playground requests only.

model
​string

Exact model slug.

limit
​integer · min: 1 · max: 200
Default: 50
offset
​integer · min: 0
Default: 0

List request logs › Responses

A page of logs.

​UsageLog[] · required
total
​integer · int64 · required

Get one request log

GET
https://ai.brandkamu.id
/api/usage/logs/{id}

Everything recorded about one request (no prompt or response content).

Get one request log › path Parameters

id
​string · uuid · required

Get one request log › Responses

The log entry.

id
​string · uuid · required
upstream_id
​string | null · required

The provider's response id.

model_slug
​string · required
provider_slug
​string · required
api_key_name
​string | null · required
source
​string · enum · required
Enum values:
api
playground
streamed
​boolean · required
status_code
​integer · required
finish_reason
​string | null · required
prompt_tokens
​integer · required
completion_tokens
​integer · required
cached_tokens
​integer · required
cache_write_tokens
​integer · required
reasoning_tokens
​integer · required
cost_nano
​integer · int64 · required

Billed cost in nano-USD.

cost_breakdown
​object | null · required

Cost split in nano-USD.

latency_ms
​integer · required
ttft_ms
​integer | null · required
tps
​number | null · required
​object | null · required

Generation parameters and counts (e.g. stream, temperature, max_tokens, messages count, tools count, endpoint), never content.

error_type
​string | null · required

e.g. insufficient_credits, model_not_found, model_not_allowed, invalid_request, rate_limited, upstream_unavailable, stream_interrupted, or the provider's error type.

error_message
​string | null · required
client_ip
​string | null · required
user_agent
​string | null · required
started_at
​string · date-time · required
created_at
​string · date-time · required

When the request finished.


Get usage analytics

GET
https://ai.brandkamu.id
/api/usage/summary

Totals, a time series and a per-model breakdown (top 50 by cost) for the same filters as the logs. Ranges up to 25 hours are bucketed per hour, longer ones per day, in time zone tz (default: the site time zone). Every bucket in the range appears, including empty ones.

Get usage analytics › query Parameters

from
​string · date-time

Range start (RFC 3339). Default to minus 30 days.

to
​string · date-time

Range end, exclusive (RFC 3339). Default now. The range may span at most 366 days.

key
​string

An API key id, or playground for dashboard playground requests only.

model
​string

Exact model slug.

tz
​string

IANA time zone for grouping, e.g. Asia/Jakarta. Unknown zones return 400.

Get usage analytics › Responses

Summary.

bucket
​string · enum · required
Enum values:
hour
day
​object · required
​object[] · required
​object[] · required

Top 50 models by cost.


Get daily totals (last 30 days)

GET
https://ai.brandkamu.id
/api/usage/daily

Per-day totals for the last 30 days, grouped by UTC date. Only days with requests are included.

Get daily totals (last 30 days) › Responses

Days in ascending order.

day
​string · date · required
requests
​integer · int64 · required
tokens
​integer · int64 · required

Prompt + completion tokens.

cost_nano
​integer · int64 · required

nano-USD.


Get filter options

GET
https://ai.brandkamu.id
/api/usage/filters

Values for the usage filters — all the user's keys (including revoked ones, so their history can be filtered) and every model the user has called.

Get filter options › Responses

Filter options.

​object[] · required
models
​string[] · required