APIAuthentication

Authentication

Every request carries an API key as a bearer token:

curl -sS https://nov3x.com/api/public/v1/events \
  -H "Authorization: Bearer nvx_live_your_key_here"

Creating a key

The API keys screen: the create form with its read-only scopes, and an existing key shown by its prefix — the secret itself is displayed once, at creation, and never again.

Go to Settings → API as a tenant admin and create a key. Give it a name you will recognise later — “Badge printer — main hall” beats “key 2”.

🔴 The key is shown once. We store only a one-way hash of it, so we cannot show it to you again and cannot recover it — not even from support. Copy it into your secret store before you close the dialog. If you lose it, create a new key and revoke the old one.

Scopes

A key carries scopes, and each endpoint requires one. Grant only what the integration needs — a badge printer does not need to read your invoices.

ScopeGrants
events.readRead events
registration.readRead registrations
invoices.readRead invoices

A key is its own identity. It is not acting as the person who created it, so it does not inherit their roles, and removing that person from your team does not change what the key can do.

Rotating a key

Rotation avoids downtime by running two keys briefly at once. Revoking first and creating second guarantees an outage in between.

  1. Rotate the key in Settings → API. This issues a new key with the same scopes and leaves the old one working.
  2. Deploy the new key wherever the old one is used.
  3. Watch Last used on the old key. Once it stops advancing, nothing is calling it any more.
  4. Revoke the old key.

Revoking a key

Revocation is immediate — the next request with that key gets 401. Revoke any key you believe has leaked, and any key that has not been used in months.

Sandbox keys

Keys beginning nvx_test_ are reserved for a future sandbox and are not available yet. Sending one today returns 401 with a message saying exactly that, rather than a generic “invalid key” — so you can tell a not-yet-available feature from a broken credential.