Send the key as
Authorization: Bearer <key>. Keys carry scopes (for example sessions:write); a request outside the key’s scopes gets 403 FORBIDDEN. Publishable keys reach only the endpoints meant for the browser.
Keys are stored as SHA-256 hashes; the raw key is shown once when it is issued (today by npm run db:seed). Never put secret keys in NEXT_PUBLIC_* variables or browser bundles.
Request signing (optional)
A secret key can have a signing secret. When it does, requests may carry aTendr-Signature header, and a key marked “signing required” rejects any request without a valid one (401 SIGNATURE_INVALID).
- The MAC covers the exact raw body bytes sent, not re-serialised JSON. A request without a body signs
"<t>.". tmust be within 5 minutes of the server’s clock.- Several
v1=values may be sent (one per secret) while rotating; any one matching is accepted.

