X-Tenant-Id does not select which workspace you read. Access is always scoped to the
workspace that owns the API key — sending someone else’s workspace id does not grant you
their data. Both headers are simply required for the request to be accepted.Creating a key
In Linkiasoft: Settings → API Keys → Create.Scopes
Keys are scoped. A key that lacks the scope for an endpoint gets403 with a message
naming what’s missing:
Grant the minimum. An integration that only fires notifications needs
conversations:send — and possibly templates:read and channels:read — and nothing
else. A key scoped that way cannot read your inbox even if it leaks.
A key created with no scopes has full access to your workspace, for backwards
compatibility with keys issued before scopes existed. Always set scopes explicitly on new
keys.
Errors
A record belonging to another workspace returns
404, not 403. That’s deliberate: a
403 would confirm the record exists, which is exactly what someone guessing IDs wants to
learn. Treat 404 as “not yours or not there” — the API will not distinguish.Keeping keys safe
- Never put a key in frontend code, a mobile app, or anything a customer can view — it carries workspace-wide access for its scopes.
- Use a separate key per integration, so revoking one doesn’t take down the others.
- Revoke immediately in Settings → API Keys if a key is exposed; it stops working at once.

