permission. The key authenticated, but its scopes don’t cover
this call. Keys carry four scopes: runs:write (spending POSTs — sessions, turns,
refreshes, extractions, monitors, stop), runs:read (all run reads and
/v1/discover), webhooks:manage (endpoint CRUD, attempts, test deliveries), and
account:read (/v1/me, /v1/balance, /v1/usage, /v1/keys). The default pair
minted at signup carries all of them; scoped-down keys are minted in the dashboard.
Nothing ran and nothing was charged.
The shape
How to fix
required_scopenames what’s missing. Either use a key that carries it, or mint one in the dashboard with the right scopes — scopes are fixed at mint, not editable.- Check what the current key carries with
GET /v1/me(needsaccount:read). - If you scoped a key down on purpose (e.g. a read-only key for a reporting job), this error working as intended is the confirmation.
Reproduce it
Mint a key with onlyruns:read in the dashboard, then try to spend with it: