/v1 endpoint authenticates with a developer API key sent as a bearer token:
Creating a key
1
Open Settings → Developer API
In the dashboard, go to Settings, then the Developer API section. You
need the Manage API keys permission — organization owners have it
automatically, other roles need it granted. See Team.
2
Name the key and create it
The name is for you. It shows up in the key list with the key’s last-used
time, so name keys after what will use them.
3
Copy it now
The raw key is shown once, at creation. AutoGrowth stores only a SHA-256
hash of it and cannot show it again. Lose it and your only option is to delete
the key and create another.
Key format
A key is 64 hexadecimal characters — 32 random bytes, hex-encoded — with no prefix and no separator:A key created by authorizing an MCP client looks different —
it is generated by the MCP server rather than the dashboard, and you never see
it. It behaves identically everywhere else.
Revoking a key
Delete it in Settings → Developer API. The next request with it answers401.
Deletion is the only revocation: keys do not expire, and they are not rotated for
you.
The list shows every key in your organization, so a teammate with the Manage API
keys permission can revoke yours, and you can revoke a stale one left behind by
someone who has moved on — including a key created by an MCP client.
What a key can see
This is the single most surprising thing about the API, so it is worth stating flatly.
Two consequences worth planning around:
- A key cannot act on behalf of a team. If three people each own accounts, you need three keys, or one user who owns everything.
- The dashboard’s “view as” is not available here. The dashboard lets an owner look at a teammate’s rows; a key always sees its own owner’s.
Auth error responses
401 means the credential is wrong — retrying with the same key will never work.
403 means the credential is fine and the account behind it is not allowed to do
this; retrying will not help either, and it is not a reason to re-authenticate.
A key deleted mid-request loses. The middleware re-checks the key when it stamps
lastUsedAt and answers 401 if the row went away, so a revocation cannot be
outrun by a request already in flight.