Creating a group
Create an API key group with a name and an optional description (“What this key group is used for”). Then, inside the group:- Keys — mint keys and delete them. Deleting a key requires Admin or Owner.
- Permissions — a matrix over the account’s agents and gateways.
Permissions
Each row in the matrix is one agent or one gateway, and carries:- an access level: None, Read, or Write; plus
- an independent Resolve gate switch, available on agents only.
Key format
ak-marks the string as a Noorle API key.- The access id is 32 hex characters — a UUID with the hyphens removed. It is the public half.
- The secret follows immediately. It is verified against a stored hash and is shown once, at creation.
ak-{uuid}.{secret}, is still accepted.
Using a key
Management API — api.noorle.com
Any of these work:
MCP gateways — mcp-{handle}.noorle.com
Authorization: Bearer only. No X-API-Key.
Agent gateways — agent-{handle}.noorle.com
Authorization: Bearer with either an API key or a JWT. An API key may invoke an
agent over A2A only as a service principal — a key tied to a human user is
rejected with 403. The key also needs execute authority on that agent, which is
what the Write permission level grants — the picker offers None, Read, and
Write rather than a separate execute control.
A 401 comes back with an RFC 6750 WWW-Authenticate: Bearer realm="a2a" header.
Rotation
- Mint a second key in the same group.
- Roll it out.
- Delete the old key.
Handling secrets
- Never commit a key. Never paste one into an issue or a chat.
- Read it from an environment variable or a secret manager at runtime.
- One group per integration, so revoking one does not take down the others.
- Give a group the narrowest matrix that lets it work — Read where Read is enough, and no Resolve gate unless the integration genuinely answers approvals.
There is no per-key rate limit. Rate limiting on the platform is per gateway and
per caller, not per key — see
MCP gateways.