Skip to content

Authentication

Every request to /v1 needs an API key in the Authorization header:

Authorization: Bearer lin_AbCdEfGhIjKlMnOpQrStUvWxYz012345
  1. In the dashboard, open Integrations → API keys. Only owners and admins see it.
  2. Click to create a key and give it a name that says where it’s used (CRM sync, Zapier…).
  3. 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.

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.

Terminal window
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 }
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 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.