Skip to content

API keys

A key is a bearer credential for the REST API and MCP over stdio, scoped to read or read + write. Managing keys - creating or revoking one - requires a signed-in browser session; a key can never be used to create or revoke keys, including itself, so a single leaked key cannot escalate into every credential on the workspace.

Settings → API keys → New key. Name it for what it’s for (which integration or agent), and choose its scopes. The full key (ds_live_...) is shown once, immediately after creation - copy it now, because the server stores only its hash and a short prefix afterward and cannot show it again.

Settings → API keys: the list of keys with name, prefix, scope and last use, and the New key button; here the empty state No API keys yet.

The list in Settings → API keys shows each key’s name, prefix, scopes and last-used time - enough to tell keys apart and notice one that’s gone stale, without ever displaying the full key again.

Settings → API keys → Revoke next to it. Effective on its very next request - already-open connections using it are not retroactively torn down, but any new call fails unauthenticated.

Error Cause Fix
Full key not shown after creation Expected - it’s shown exactly once, by design. Create a new key if the old one was lost before being copied; the old one still works until revoked.
session_required when calling /api-keys with a key Key management needs a signed-in session, not a key. Manage keys from the dashboard, signed in.
unauthenticated right after revoking Expected - revocation is effective on the very next request. Create a new key if this integration still needs one.