Skip to main content
API keys are how CI and services authenticate. Each key carries an explicit scope list, so a deploy key need not be an admin key.

Commands

create

--scopes is validated client-side against the shared scope enum, so an unknown scope fails before the request is sent.
The secret in the create and rotate replies exists nowhere else. It is not stored in retrievable form and no route returns it again. Capture it now or mint another key.

list

prefix is the 12-character display prefix — the same value vetta whoami reports as key_prefix, and the only part of a secret that is ever readable. last_used_at is null for a key that has never authenticated a request, which makes unused keys easy to find:

rotate & revoke

Neither takes a flag; both take the key id as a positional argument. rotate returns a new secret, once. revoke takes effect immediately — in-flight requests holding the old secret start failing with 401. Both actions are recorded in the audit log as api_key.rotated and api_key.revoked.
Test-mode keys (sk_test_…) run against the no-real-money seam: sessions execute and the ledger moves, but no charge reaches a payment processor. Check mode in vetta whoami if you are unsure which you hold.