Skip to main content

Get an API key

Create an account, copy a key once, and revoke it when needed.

At a glance

Dashboard
/dashboard/sign-up
Secret
Shown once
Password reset
Admin assisted

Create an account​

1

Sign up

Open /dashboard/sign-up. Enter your email, password, and organization name.

Your password must contain at least 10 characters.

Pantheon Create an account form in the dark theme
Create an account with your email, password, and organization name.
2

Sign in

Use /dashboard/sign-in when you return. Pantheon opens the keys page after sign in.

Pantheon Sign in form in the dark theme
Sign in with the email and password for your Pantheon account.
3

Create a key

Enter a name on the keys page. Pantheon uses the full tenant builder scopes by default.

Pantheon keys page showing a newly created one time secret
Create the key to reveal its secret one time.
4

Copy the secret

Copy the secret immediately. Pantheon shows it once and stores only its hash.

Pantheon keys page confirming the secret was copied to the clipboard
Copy the secret and keep it in a secure location.

Use the key​

Set the production base URL and the one-time secret.

Terminal
export PANTHEON_BASE_URL="https://pantheon-todo.alethiconsulting.com/pantheon-api"
export PANTHEON_API_KEY="PANTHEON_API_KEY"

Send the key as a bearer token. API keys cannot list, create, or revoke other keys, and cannot create or edit workspace users. Those are account operations and need a signed-in session.

Scopes are enforced on every route. A key that lacks the scope an operation names is refused with HTTP 403 and permission_denied, and the message names the missing scope. Every operation in api/openapi/openapi.yaml states the scopes it requires under its security entry. A write scope does not imply the matching read scope: ask for both, or use a family wildcard such as agents:*.

Manage keys​

The keys page lists each key without its secret.

Pantheon keys page listing a key without its secret
Review key details without exposing the secret.
ActionResult
CreatePantheon shows the new secret once.
ReviewYou see the name, prefix, scopes, creation time, last use, and revocation state.
RevokeThe key stops working and returns KEY_REVOKED.

Revoke a key from the same page. Create a replacement before revoking an active key.

Auth release routes​

MethodPathUse
POST/v1/auth/signupCreate a user, tenant, and session.
POST/v1/auth/loginStart a session.
POST/v1/auth/logoutRevoke the current session.
GET/v1/auth/meRead the current user, tenant, and session expiry.
GET/v1/auth/keysList keys without secrets.
POST/v1/auth/keysCreate a key and return its secret once.
DELETE/v1/auth/keys/{id}Revoke a key.
POST/v1/auth/password/changeChange the signed-in user's password.

Signup response​

Send email, password, and organization_name. A successful request returns HTTP 201.

Selected JSON
{
  "user": {"id": "user_123", "email": "you@example.com"},
  "tenant": {"id": "tenant_123", "name": "Acme", "slug": "acme"},
  "session": {"token": "ps_SESSION_TOKEN", "expires_at": "2026-10-04T12:00:00Z"}
}

Key response​

Send name and optional scopes. A successful request returns HTTP 201.

Selected JSON
{
  "id": "key_123",
  "name": "Development",
  "prefix": "pk_example",
  "scopes": ["..."],
  "created_at": "2026-09-04T12:00:00Z",
  "secret": "PANTHEON_API_KEY"
}

Limits and sessions​

ValueMeaning
5 signups per IP per hourFurther signup requests wait until the rate window resets.
10 login attempts per email per 15 minutesFurther attempts return HTTP 429 with retry_after.
30 day session expiryValid session use extends the expiry.
ps_ prefixIdentifies an opaque session token.

The dashboard stores the session token in localStorage under pantheon.session.

Manage your application​

Create and edit agents, publish deployments, and review deployment history on the dashboard Agents page.

Register tools, create versions, and deprecate versions on the dashboard Tools page.

Filter sessions, inspect usage and events, and archive sessions on the dashboard Sessions page.

Reset a password​

Change a known password from the account page.

Email delivery is not available yet. An admin resets a forgotten password with POST /v1/admin/users/{id}/password.

Pitfalls​

  • The secret is missing from the key list: This is expected. Pantheon returns the secret only when you create the key.
  • Sign in returns INVALID_CREDENTIALS: Check both fields. INVALID_CREDENTIALS does not identify which value is wrong.
  • Sign in returns RATE_LIMITED: Wait for the retry_after interval after RATE_LIMITED.
  • You forgot your password: Ask an administrator to reset it. Email reset is not available yet.

Search docs

Esc

Ask Bami

Bami answers inside your signed-in dashboard. Write your question here, then paste it into Bami with Cmd/Ctrl+/.