Skip to main content

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 apiKey option, 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 — typically dev and prod, plus optional staging or per-team environments. Each has its own copy of every secret. Never share keys across environments:
  • A dev sdkSecretKey posted to prod’s API resolves to dev’s environment, not prod’s — your prod traffic ends up in dev’s queue.
  • A prod Front API Key in your dev frontend means dev users see prod notifications.
Most failures classified as “weird” turn out to be cross-environment key contamination. Treat keys as environment-scoped from day one.

Rotation

The dashboard exposes a rotation flow per secret. The general pattern:
  1. Generate a new key alongside the existing one (overlap window).
  2. Deploy your services to use the new key.
  3. Wait the overlap window — Notifizz accepts both keys during it.
  4. Retire the old key.
Existing widget sessions keep their HMAC token across rotation only if you re-mint after the rotation; backend-side keys (SDK secret, auth secret) are read on every call, so rotation propagates as soon as your service redeploys.

Region note

The default API host is https://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

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.
No — they belong to different environments. Each environment has its own pair. Sharing causes hard-to-debug cross-traffic; avoid even on internal tools.
All of them: Environment settings → API Keys (one section per role). Connector verification secrets live separately under Connectors → source detail.
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.
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.
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.