SumoRouter
SumoRouter Admin API

Admin API keys

Server

sk-admin-… keys for this API and the MCP server. These routes only accept a dashboard session (with 2FA); an admin API key gets 403.


List admin API keys

GET
https://ai.brandkamu.id/api/admin
/api-keys

All active (not revoked) admin API keys of every admin, newest first. Dashboard session only.

List admin API keys › Responses

The keys.

id
​string · uuid · required
name
​string · required
key_prefix
​string · required

e.g. sk-admin-****a1b2.

read_only
​boolean · required
expires_at
​string | null · date-time · required
allowed_ips
​array | null · required
last_used_at
​string | null · date-time · required
last_used_ip
​string | null · required
owner_email
​string | null · required
created_at
​string · date-time · required

Create an admin API key

POST
https://ai.brandkamu.id/api/admin
/api-keys

Creates a key owned by the signed-in admin. The full key is returned once; only a hash is stored. At most 20 active admin keys can exist. Dashboard session only.

Create an admin API key › Request Body

name
​string · minLength: 1 · maxLength: 100 · required
read_only
​boolean

Only GET/HEAD requests allowed.

Default: false
expires_at
​string | null · date-time

Must be in the future; null never expires.

allowed_ips
​array | null · maxItems: 50

IP addresses or CIDR ranges (e.g. 203.0.113.7, 10.0.0.0/8, 2001:db8::/32); empty or null allows any.

Create an admin API key › Responses

The new key, including the secret.

id
​string · uuid · required
key
​string · required

The full sk-admin-… key. Shown only here.

key_prefix
​string · required

Display form, e.g. sk-admin-****a1b2.

name
​string · required

Update an admin API key

PUT
https://ai.brandkamu.id/api/admin
/api-keys/{id}

Replaces the key's name, access level, expiry and IP allow-list (omitted expires_at / allowed_ips clear them). Dashboard session only.

Update an admin API key › path Parameters

id
​string · uuid · required

Admin API key id.

Update an admin API key › Request Body

name
​string · minLength: 1 · maxLength: 100 · required
read_only
​boolean

Only GET/HEAD requests allowed.

Default: false
expires_at
​string | null · date-time

Must be in the future; null never expires.

allowed_ips
​array | null · maxItems: 50

IP addresses or CIDR ranges (e.g. 203.0.113.7, 10.0.0.0/8, 2001:db8::/32); empty or null allows any.

Update an admin API key › Responses

The updated key.

id
​string · uuid · required
name
​string · required
key_prefix
​string · required

e.g. sk-admin-****a1b2.

read_only
​boolean · required
expires_at
​string | null · date-time · required
allowed_ips
​array | null · required
last_used_at
​string | null · date-time · required
last_used_ip
​string | null · required
owner_email
​string | null · required
created_at
​string · date-time · required

Revoke an admin API key

DELETE
https://ai.brandkamu.id/api/admin
/api-keys/{id}

Revokes the key at once. Dashboard session only.

Revoke an admin API key › path Parameters

id
​string · uuid · required

Admin API key id.

Revoke an admin API key › Responses

Done.

ok
​boolean · const · required
Const value: