Creating a key
- Open the dashboard → API keys.
- Click Create key, give it a name, and copy the value.
Using a key
Send it in theAuthorization header as a Bearer token:
api_key:
Key format and failures
Omnia keys always start withsk_sovereign_. A missing, malformed, or
revoked key returns 401 with the standard envelope, so one parser handles
auth failures and every other refusal:
GET /v1/setup/status: a 200 proves the key is live and reports where
your workspace is in the setup, including what to do next. Send
Accept: text/plain for flat key=value lines if you’re parsing from a
shell script.
Key permissions and roles
A key is not just a workspace pointer. Every key acts as the user who minted it, and permission checks run against that user’s workspace role per operation:- Read endpoints work with any workspace key. (The training surfaces: GRPO, RAFT rounds, environment tools, and model versions, are the exception: they require owner/admin even to read.)
- Endpoints that spend money or redirect traffic require the minting user
to be a workspace owner or admin, and return
403otherwise: creating dedicated endpoints, fine-tuning jobs, GRPO runs, eval runs, datasets, labels, judges and anything that judges (calibration, scans, suggestions, auto-improve), and alias repoints.
429 with a
Retry-After header.
Revoking a key
Revoke any time from the dashboard. Revocation is checked on every request, so it takes effect immediately: there is no cached session to wait out. Each key’s last-used time is tracked, which makes stale keys easy to spot before you rotate.Provider keys for bring your own key are a
separate thing: they are stored encrypted and write-only, and never work as
Omnia API keys.
Best practices
Never commit keys to source control
Never commit keys to source control
Load keys from environment variables or a secrets manager. A key in a public
repo should be treated as compromised: revoke it.
Use separate keys per environment
Use separate keys per environment
Create distinct keys for development, staging, and production so you can
revoke one without affecting the others, and attribute usage clearly. The
per-key table in Observability shows exactly
which key is doing what.
Rotate periodically
Rotate periodically
Create a new key, roll your services over to it, then revoke the old one.
Last-used timestamps confirm the old key has gone quiet before you revoke.