API tokens

Create personal access tokens for the API and MCP, choose exactly which abilities each one has, set expirations, and revoke access.

API & MCP → API tokens

Personal API tokens let your scripts and AI tools act on your account. The REST API and the MCP server use the same tokens. Give each integration its own token, with only the abilities it needs.

Create a token#

  1. Open API tokensIn the app, click API & MCP in the sidebar, then API tokens — or go to app.custodycommander.com/developers/tokens. Your email must be verified.
  2. Name itSomething that tells you where it's used, like "My local AI assistant" or "Nightly backup script".
  3. Set an expiryBy default a token expires in 30 days; pick another date, or tick No expiration.
  4. Choose its abilitiesTick read and/or write for each area it needs, or Full access for everything (including the built-in assistant).
  5. Copy itClick Create token, then Copy token. The full token is shown only once — store it somewhere safe before clicking I saved my token — close.
Treat a token like a password

Anyone with the token can act on your account within its abilities. Keep it in an environment variable or your client's private settings. Never put it in code you share, a file you commit, or an AI conversation.

Token format#

Tokens start with cc_live_ followed by 43 characters. Send them in the Authorization header with exactly one space after Bearer:

Authorization: Bearer cc_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

We store only a hash of your token. The token list shows only its prefix (cc_live_ plus 7 characters); if you lose a token, revoke it and create a new one.

Abilities (scopes)#

Each ability is an area plus read (GET operations) or write (create, change, and delete operations). Write doesn't include read — tick both if the integration needs both.

Available asAreas
read and writeaccount, billing, case, collaboration, contacts, court-cases, documents, evidence, export, files, firms, folders, hearings, mediation, messages, packages, preparation, shares, support, timeline, todos, tokens, workspaces
write onlycomms, document-templates, issues
read onlytemplates
Full access* — every current and future ability, including the built-in assistant (assistant operations require it)

Specific abilities don't grow: a token with evidence:read won't gain new areas as features are added. Only Full access covers future operations. Abilities grant an area of the app, including related data it displays — and your account's own sharing permissions always still apply.

Suggested sets#

UseAbilities
Look around safelycase:read, court-cases:read, evidence:read, folders:read, timeline:read
Organize evidence from your AIthe above + evidence:write, folders:write, files:read
Nightly backup scriptcase:read, evidence:read, files:read, documents:read, messages:read, export:read
Calendar synccase:read, court-cases:read, hearings:read, todos:read

Manage tokens#

Your tokens lists each token's name, status (Active, Expired, or Revoked), prefix, expiry, when it was last used, and its abilities.

  • Edit changes the name, abilities, or expiry. The token itself stays the same, so nothing needs reconfiguring.
  • Revoke stops the token immediately for new requests (requests already in progress may finish). It also revokes any tokens that token created. This can't be undone.

You can have up to 50 active tokens, each with up to 100 abilities.

Creating tokens from a token#

A token with tokens:write can create, edit, and revoke tokens through /api/v1/developer/tokens — useful for tools that hand out narrower tokens to sub-processes. The rules:

  • A child token can't have abilities its parent lacks, and can't outlive its parent.
  • A token can only manage itself and the tokens it (or its descendants) created, up to 8 levels deep.
  • Revoking a token revokes every token beneath it.

Errors you might see#

ResponseMeaning
401 invalid_tokenMissing, malformed, expired, or revoked token.
403 insufficient_scopeThe token lacks the ability this operation needs — the message names it.
403 email_unverifiedVerify your account email first.
400 invalid_scope / invalid_expiry / token_limitProblems creating a token: unknown ability, an expiry in the past, or 50 active tokens already.

Something here out of date or unclear? Tell us from the Help page in the app and we'll fix the docs.