Create an API key
1
Open your workspace settings
Navigate to Settings → Developers → API Keys in the Topo dashboard.
2
Create a new key
Click Create Key, give it a descriptive name (e.g.
crm-sync-production), and select the scopes your integration requires.3
Copy and store the key securely
Your key is shown once immediately after creation. Copy it to a secure secret store (such as your CI/CD secrets manager or a vault). Topo does not store the raw key value — if you lose it, you must rotate to a new one.
Pass the key in requests
Include your API key as a Bearer token in theAuthorization header of every request:
Authorization header are rejected with a 401 Unauthorized response before they reach any endpoint logic.
Available scopes
Scopes follow aresource:action naming convention. Grant only the scopes your integration actually uses.
The
ApiKeyScope enum also declares signals:read, crm:read, tools:execute, exclusions:read, and exclusions:write for Topo AI agent capabilities. None of those scopes gate a /v1 REST endpoint today — the REST exclusion endpoints use the split contact_exclusions:* and account_exclusions:* scopes.GET /v1/me is the one exception — it needs a valid key but no particular scope, so you can always use it to inspect a key.
Verify your key with GET /v1/me
The/v1/me endpoint returns the identity and permissions of the calling key — useful for confirming your key is valid and that it carries the scopes you expect.
string (UUID)
required
Unique identifier of the API key.
string (UUID)
required
The workspace this key belongs to.
string
required
The human-readable name you gave this key at creation time.
string
required
The leading characters of the raw key value — safe to display in logs or UIs to identify which key was used.
string[]
required
List of permission scopes granted to this key.
string (ISO 8601)
required
Timestamp of when the key was issued.
string (ISO 8601) | null
required
Timestamp of the last request made with this key, or
null if it has never been used.Authentication error responses
See Errors & Rate Limits for the full error response shape.
Security best practices
- Least privilege — only request the scopes your integration needs. A read-only reporting tool should never have
writescopes. - Rotate regularly — retire old keys and issue fresh ones periodically, or immediately after any suspected exposure.
- Never commit keys to source control — use environment variables or a secrets manager to inject keys at runtime.
- Monitor
last_used_at— keys that haven’t been used recently may be safe to revoke.