Authentication
Every request to /v1 needs an API key in the Authorization header:
Authorization: Bearer lin_AbCdEfGhIjKlMnOpQrStUvWxYz012345Create a key
Section titled “Create a key”- In the dashboard, open Integrations → API keys. Only owners and admins see it.
- Click to create a key and give it a name that says where it’s used (
CRM sync,Zapier…). - Copy the key now. It starts with
lin_and is shown once; Linnia keeps only a hash.
Keys can also be managed with the API: GET /v1/keys, POST /v1/keys {"name"} and POST /v1/keys/{id}/revoke.
What a key can do
Section titled “What a key can do”A key belongs to the workspace and acts with the owner’s rights: every account, approvals, webhooks and keys. Treat it like a password: keep it on your server, never in a browser or mobile app, and use one key per integration so you can revoke them separately.
A few things need a signed-in person and are only available in the dashboard: inviting teammates, changing roles and two-factor settings.
Check a key
Section titled “Check a key”curl https://api.linnia.ai/v1/me -H "Authorization: Bearer $LINNIA_KEY"{ "ok": true, "orgId": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "kind": "key", "keyName": "CRM sync", "org": null, "user": null }Errors
Section titled “Errors”| Status | error.type |
Meaning |
|---|---|---|
| 401 | unauthorized |
No Authorization: Bearer … header, or the key is unknown or revoked, or the workspace isn’t active. |
| 403 | notAllowed |
A member’s session called an owner/admin endpoint (keys, webhooks). |
Revoke a key
Section titled “Revoke a key”Revoke it under Integrations → API keys or with POST /v1/keys/{id}/revoke. It stops working immediately, and any assistant (MCP) connection that was authorised with that key is revoked too.