sk_live_ server-to-server credentials. Listing endpoints work with any auth; CRUD operations are gated to the Hub UI — a leaked sk_live_ cannot mint another. Mint via hub.kataven.ai/settings → API Keys.
Endpoints at a glance
Reference
GET /api/v1/api-keys
List API keys
Returns metadata for every sk_live_ key in this account. Plaintext key values are never returned — only the last 8 characters and the row id.
Responses
Example
POST /api/v1/api-keys
Create an API key (returns plaintext sk_live_ ONCE)
Mints a new sk_live_ credential. The plaintext value is returned in the response and never again — store it in your secret manager. Requires Hub UI (Zitadel) auth; sk_live_ keys cannot mint other sk_live_ keys.
Request body (application/json)
Schema: handlers.CreateApiKeyRequest. Server-set fields (id, created_at, updated_at, …) are ignored if supplied; only the user-settable fields are shown below.
Responses
Example
PATCH /api/v1/api-keys/{id}
Update or revoke an API key
Renames the key or revokes it (disabled=true sets disabled_at=now() — idempotent). Requires Hub UI (Zitadel) auth so a leaked sk_live_ cannot disable other keys.
Parameters
Request body (
application/json)
Schema: handlers.UpdateApiKeyRequest. Server-set fields (id, created_at, updated_at, …) are ignored if supplied; only the user-settable fields are shown below.
Responses
Example
DELETE /api/v1/api-keys/{id}
Delete or soft-disable an API key
Hard-deletes the row if the key was never used; otherwise sets disabled_at=now() to preserve the audit trail. Requires Hub UI auth.
Parameters
Responses
Example

