What needs a key
Everything else — sending, contacts, broadcasts, automations, the transactional API, web analytics, every provider integration — needs no key, has no meter, and never will. The full list is at notifuse.com/pricing/self-hosted.
A refusal is one action, at the moment you take it. Nothing is deleted or hidden, and the console is never put into a restricted mode: it greys out the one control the server would refuse — switching a translation on, narrowing a member’s permissions, switching SES tenant isolation on — and says which licence covers it, while everything you already have stays visible and can be removed. The send path contains no licence check of any kind: scheduled broadcasts, transactional email, webhooks and API keys keep working in every licence state, including one with no key at all. An installation that already exceeds a limit keeps everything it has.
Tiers
One key covers one deployment — one PostgreSQL database, however many API containers serve it. Buy at notifuse.com/pricing/self-hosted; for anything else, write to hello@notifuse.com.
Getting your key
- Pay. Checkout is by card, through Stripe, as an annual subscription. There is no trial: the free tier is the trial, and a 14-day refund on the first purchase replaces it.
- Your first key arrives by email, within a minute. It is valid for 30 days. The email is titled Your Notifuse licence key and contains the key itself.
- Your one-year key follows automatically. Once the 14-day refund window has closed, a second email delivers the key that runs to the end of your subscription year. Nothing to do on your side.
Installing a key
Either of two ways. The environment variable wins. In the console. Sign in as an instance administrator (aROOT_EMAIL), open Settings → Licence, paste the key, and save. It is stored in the database and applies immediately, with no restart, on the API container that received it.
As an environment variable. Set NOTIFUSE_LICENSE_KEY to the key and restart. While it is set, the console refuses to save a key rather than store one that would lose to the variable at the next restart.
Running more than one API container? Use the environment variable. A key pasted in the console reaches the other containers only at their next restart — until then, requests are licensed or not depending on which container answers them. One container, either way works.
Verification is offline. The key is checked against a public key compiled into the binary. There is no activation step, no account, and no call to Notifuse — an installation with no outbound network access is licensed exactly like any other. If telemetry is enabled, it reports the licence tier and whether SSO is configured, and nothing else about the key.
