sub, username, organization, role). A token issued through the API
cannot escalate privileges; it carries exactly the claims of the token that
created it.
Prometheux uses an allowlist model: a token is only accepted while its
record exists server-side. Revoking a token deletes that record, and the token
stops working immediately.
How external integrators get a token
There is no public sign-up endpoint. An external integration is bootstrapped once, then manages its own keys:1
Get a bootstrap token from an administrator
A Prometheux administrator provisions your workspace and gives you a
one-time bootstrap token. This is the credential you use for your very
first API call — typically only to mint a long-lived key.
2
Mint a long-lived API key
Call
POST /auth/issue-token with the bootstrap token in
the Authorization header. The response contains a new token — store it
securely. This is the key your integration uses day to day.3
Use the key on every request
Send
Authorization: Bearer <token> with all subsequent requests.4
Rotate and revoke as needed
List your keys with
GET /auth/tokens and revoke compromised
or retired keys with POST /auth/revoke/{jti}.Issue a token
Mint a new API key for the authenticated caller. The new token inherits the caller’s identity claims.Request body
All fields are optional.Response
Example
List tokens
List metadata for every active API key belonging to the caller, oldest first. The raw JWTs are never returned — only their metadata.Response
data.tokens is an array of:
Example
Revoke the current token
Revoke the token used to make the request (i.e. “log out” this key).Response
Revoke a specific token
Revoke a token by itsjti — use this to retire or rotate keys from a
management UI.
Authorization: admins may revoke any token; non-admins may only revoke
tokens they own. Revoking an unknown token you own is idempotent and returns
200 with status: "not_found" in data.
Example
Revoke all tokens
Revoke every API key belonging to the caller (“log out everywhere”).The out-of-band bootstrap token is managed by an administrator, not stored as a
user API key. It is not returned by
GET /auth/tokens and cannot be revoked
through these endpoints — attempting to revoke it returns 409 conflict.
