Scoped API Keys
A normal API key acts as you: it can read every dataset, drive agents, and mutate resources in any organization you belong to. That is the right shape for an operator credential and the wrong shape for a server that only needs to do one job — a portal backend that queries two datasets and writes rows into one should not hold a credential that can do everything else too. A scoped key is anerdo_api_* key minted with a capability allowlist
and, optionally, a resource-slug allowlist. It authenticates exactly like a
normal key, but it can only call the /v1 endpoints its capabilities map to,
and (where slugs are given) only against the named datasets and workstreams.
Everything else returns 403 permission_denied.
Minting a scoped key
Mint from a session or a normal (unscoped) API key viaPOST /v1/tokens —
a scoped key can never mint keys itself:
GET /v1/tokens (scoped keys carry is_scoped, capabilities,
and resource_slugs) and DELETE /v1/tokens/{id}.
A scoped key is pinned to the organization it was minted in. Its slug
allowlist names resources within that org, so the key rejects any
X-Organization-ID header that names a different organization — even one its
owner belongs to.
The capability vocabulary
The vocabulary is small and closed — minting with any string not listed here is rejected:GET /v1/me works with any scoped key — it only echoes the caller’s own
identity and org, and is the “does this key work” probe.
Fail closed
Scoped keys deny by default:- An endpoint that is not explicitly mapped to a capability is unreachable —
including endpoints added to
/v1after the key was minted, the/mcpendpoint, and the legacy SDK surface. New surface area never silently widens an existing scoped key. - Deliberately unmapped today: org-wide dataset listing and search
(
GET /v1/datasets,/v1/datasets-search) and ID-addressed dataset reads — a slug-confined key cannot enumerate or address datasets outside its allowlist. - When
resource_slugsis non-empty, slug-addressed dataset and workstream calls outside the allowlist are denied even when the capability is granted.
What no capability can grant
Regardless of the capabilities a scoped key was minted with, it can never:- mint or manage credentials of any kind (
/v1/tokens, scoped-token minting, the manager key), - touch managed-organization surfaces (create, revoke, adopt, or seat members),
- connect or delete integrations, or create integration connect links.

