API keys reference
Notifizz uses five distinct secrets across its surface — each scoped to a single role, each scoped per environment (dev, prod, …). This page lists them all so you know which one to copy into which place.TL;DR
sdkSecretKey— backend →POST /v1/events/track(Bearer + body field).authSecretKey— backend →client.generateHashedToken(userId)for widget backend-token auth.- Front API Key — frontend → widget
apiKeyoption, used by/v1/users/auth. webhookSigningSecret— backend → enricher constructor, verifies HMAC on incoming enricher webhooks.verificationSecret— per-source → connectors (Segment, Stripe, HubSpot, Intercom).- All five are environment-scoped: dev keys never reach prod, and vice versa.
The five secrets
1. SDK Secret Key (sdkSecretKey)
2. Auth Secret Key (authSecretKey)
3. Front API Key
4. Webhook Signing Secret (webhookSigningSecret)
The Notifizz backend signs every enricher webhook request with this secret over the verbatim
payload string in the body envelope. The SDK verifies the signature on receipt. Mismatch → { ok: false, error: { code: "hmac-invalid" } } in the response body.
5. Connector Verification Secret (verificationSecret)
The exact algorithm differs per provider — see connector webhooks.
Quick reference table
Environments
Each Notifizz organisation has multiple environments — typicallydev and prod, plus optional staging or per-team environments. Each has its own copy of every secret. Never share keys across environments:
- A
devsdkSecretKeyposted to prod’s API resolves to dev’s environment, not prod’s — your prod traffic ends up in dev’s queue. - A
prodFront API Key in your dev frontend means dev users see prod notifications.
Rotation
The dashboard exposes a rotation flow per secret. The general pattern:- Generate a new key alongside the existing one (overlap window).
- Deploy your services to use the new key.
- Wait the overlap window — Notifizz accepts both keys during it.
- Retire the old key.
Region note
The default API host ishttps://api.notifizz.com/v1. Future US/APAC regions will have their own hostnames; keys generated in one region don’t work against another. The dashboard surfaces the right hostname for your environment.
FAQ
I get 401 on `/events/track` — which key did I get wrong?
I get 401 on `/events/track` — which key did I get wrong?
auth/invalid-authorization on /events/track always means the sdkSecretKey (Bearer + body) didn’t resolve to an environment. Three suspects: (1) wrong environment (most common), (2) typo / extra whitespace, (3) the key was rotated and your service hasn’t reloaded.Where in the dashboard do I find each key?
Where in the dashboard do I find each key?
All of them: Environment settings → API Keys (one section per role). Connector verification secrets live separately under Connectors → source detail.
Is the SDK secret safe in a mobile app?
Is the SDK secret safe in a mobile app?
No — never embed
sdkSecretKey in a mobile or web frontend. Mobile clients should hit your own backend, which then calls Notifizz with its server-side secret. The widget’s Front API Key is the only Notifizz secret intended to ship in a frontend.How do I rotate without downtime?
How do I rotate without downtime?
Use the dashboard rotation flow. Generate the new key, deploy your services with it, wait the overlap window (Notifizz accepts both during this period), retire the old key. Existing in-flight requests keep working — rotation only affects new requests after the cutover.
What if my key leaks?
What if my key leaks?
Rotate immediately. The dashboard exposes a one-click “rotate now, no grace period” path for emergencies; this revokes the old key right away and any in-flight request using it fails. Pair it with your incident process — log audit, scan dashboard for unexpected events, etc.
See also
Event Tracking
Where
sdkSecretKey is used.Backend tokens
Where
authSecretKey is used.Enrichers protocol
Where
webhookSigningSecret is used.Connector webhooks
Where
verificationSecret is used.