Credentials
An API credential lets your code call Introspection for one project and one environment. Use an API key first; move to a service account when you need short-lived tokens or a browser token broker.
You need: a login to the project (introspection login).
The agent’s own secrets (model keys, bot tokens, user connections) are not API credentials; they live in Bindings.
Create an API key
- Create the key. The secret is written to the file, never printed:
Or use Project settings, API keys.
introspection api-keys create --name ci --environment staging --secret-file ./introspection-key.txt - Copy the secret from that file into your backend’s secret store as
INTROSPECTION_TOKEN, which the SDK and CLI read. Then delete the file. - Verify with
introspection api-keys list.
| Property | Value |
|---|---|
| Environment | Fixed at creation; a staging key cannot reach production |
| Acts as | The Member Agent by default (--member-id for the Admin Agent) |
| Capabilities | runtimes (default) and evals |
| Secret | Shown once; Introspection keeps only a hash |
| Cannot | Administer members, applications, or integrations |
An API key never belongs in a browser, a mobile binary, an agent sandbox, or anywhere an end user can read it.
Use the CLI with an API key
Data Plane commands accept --token or INTROSPECTION_TOKEN: tasks,
conversations, events, metrics, files, shares, tags, images,
annotations, and repository reads. Control Plane commands (runtimes,
bindings, connectors, applications, api-keys, members,
experiments, judges) always act as your login
(full table).
The key’s environment selects where Data Plane work runs. It does not make the
CLI read-only: a production key can still create and delete tasks, upload
files, and create shares (deleting files needs a key with the evals
capability; no key can delete shares).
Create a service account
- Create it:
introspection applications create --type service-account --name "Acme backend". - Mint a client secret (shown once):
introspection applications secrets create --app <application-id>. - Your backend exchanges the client ID and secret (
client_credentials) for an access token. The SDK call is in Authentication.
Access tokens last 60 minutes and have no refresh token. The JS
fromServiceAccount client does not refresh, so mint a new token before expiry.
The SDK’s telemetry exporters (track, feedback, OTLP logs) keep the token
they start with, so a long-running exporter needs an API key.
Rotate or revoke a credential
introspection api-keys revoke --key <key-id> --expires-in 3600
introspection applications secrets revoke --app <application-id> --secret <secret-id> --expires-in 3600--expires-in gives callers a grace period; omit it to revoke now. To change a
key’s environment, create a new key and revoke the old one.