Every request to the Prometheux platform API must carry a bearer token:
Tokens are JarvisPy API keys — signed JWTs that inherit your identity (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}.
The raw token string is returned exactly once, in the response to POST /auth/issue-token. It is never retrievable again — store it securely the moment you receive it. Afterwards, tokens are referenced only by their jti (token ID) for listing and revocation.

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 its jti — 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.