Method groups
The normal transport accepts the authenticated methods above except the four restricted exchanges. A client must not expose restricted methods through a normal authorized request path.
Device activation contract
auth/device/create creates a pending device and session. The response includes:
device_idandsession_id;- the gateway id;
- a one-time
activation_code; expires_at_unix.
auth/device/activate receives a ClientInstallationDescriptor:
AuthSessionGrant. It contains gateway, principal, device, and session snapshots, access and refresh credentials, both expiries, the refresh generation, protocol version, and the required credential storage order.
Activation codes are eight symbols, expire after ten minutes by default, and are limited to five failed attempts. Clients should clear the code after a successful or terminally failed exchange.
Refresh and revocation
AuthRefreshParams contains a durable refresh_request_id and an optional client version. A successful response rotates the refresh credential and advances its generation. Clients must persist the new refresh credential before relying on the new access credential.
The current refresh credential format uses the prf2_ prefix. Its value is a secret string and is redacted by Debug implementations. The protocol does not make clients responsible for JWT signing or validation.
Session revocation reasons include logout, self-revocation, device revocation, activation-attempt exhaustion, refresh reuse, principal suspension or removal, supersession, and security reset. Termination notifications classify session revoked, expired, compromised, suspended principal, and removed principal separately.
Profile and sessions
auth/profile/update accepts a display name, nickname, and avatar action. The display name is bounded to 128 characters. Nicknames are 2 to 32 ASCII characters and use the pattern [A-Za-z0-9][A-Za-z0-9_.-]{1,31}. Avatar media is validated and bounded before it is stored.
auth/session/list returns device and session snapshots, a current flag, and the last-seen timestamp. A client can show the list without receiving raw credentials. auth/session/revoke takes an optional expected_status so a stale settings screen does not accidentally apply a state transition it did not observe.
Capability snapshots
authorization/capabilities accepts optional workspace_id and thread_id. The response includes:
- schema version and authorization revision;
- principal id, role key, and server-owned role presentation;
- global management capabilities;
- workspace capabilities and execution limits;
- allowed providers, models, runtimes, skills, and MCP servers;
- agent permission presets and locked fields;
- thread capabilities when a thread was requested;
- artifact and MCP invocation limits.
Invitations
Invitations expire after seven days by default and grant between one and 64 workspaces. Their credential uses thepinv1_ prefix and can be embedded in a pioneer://invite URI. The gateway id, base URL, role presentation, workspaces, expiry, and transport security are available from preview before acceptance.
invite/preview and invite/accept use the restricted exchange transport. On acceptance, the caller submits the new member profile and installation descriptor. The response contains the new or linked principal, member, granted workspaces, device, session, and credentials.
Member lifecycle
Member directory pages default to 50 rows and allow up to 100. Member lifecycle methods accept a principal id and use expected status where the operation needs compare-and-set behavior. Suspending a member revokes its active sessions and publishes access and member changes. Removing a member also removes workspace access, invalidates related invitations, and changes private-thread access. Clients should handle these events by clearing stale projections rather than keeping a locally editable member row.Notifications
Events are invalidation signals. After reconnect, reload
auth/me, authorization/capabilities, and the affected member, invitation, workspace, or thread resource.
Generated schemas
The protocol schema generator emits these standalone schemas for this surface:/schemas/auth_me_response.json/schemas/authorization_capability_snapshot.json
AuthSessionGrant, AuthRefreshGrant, activation request and response types, invitation presentations, member summaries, and authentication notifications are used by the auth transport but are not emitted as standalone files by the current protocol schema generator. Client projection schemas are generated separately under /schemas/client/.