Creating a key
1
Open Integrations
Click Integrations in the sidebar.
2
Name it
Name the key after where it will be used —
Production, Local dev, Zapier. The name is how you’ll recognize it later.3
Choose its reach
Select which areas the key may touch (below). Grant only what the integration needs.
4
Copy it
Copy the key immediately and store it somewhere safe. Treat it like a password.
What a key can reach
Access is grouped, so you can hand out narrow keys:Using a key
Send it as a Bearer token:Disabling and re-enabling
Keys are disabled, not deleted — so the record of what existed stays intact.- Disable key stops it working immediately. Any integration using it starts failing on the next request.
- Disabled keys are hidden by default; toggle Show disabled to see them.
- A disabled key can be enabled again if you disabled it by mistake.
Good practice
- One key per environment. Never share a key between production and local development.
- Server-side only. A key in client-side JavaScript or a mobile app binary is a public key.
- Environment variables, never source control. Add your
.envto.gitignore. - Rotate on staff change. Create the replacement, switch over, then disable the old one — in that order, so nothing breaks mid-cutover.
- Name honestly.
test2tells you nothing in six months.
Troubleshooting
403 Forbidden
403 Forbidden
The key is valid but lacks the scope for that operation. Check its scopes against the table above.
Insufficient credits
Insufficient credits
The account is out of credits — the same wall you’d hit in the app. Top up on Billing.
A model works in the app but not through the API
A model works in the app but not through the API
Access is per plan, not per surface. If your plan can’t run it in the UI, a key can’t either.
