# Novu vs ntfy > Novu has a score of 77.4 (BB) against ntfy's 61.6 (C). Both do notify push. The largest gap is schema & documentation, 39 points. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/novu-vs-ntfy - Markdown: https://www.anchorterminal.com/compare/novu-vs-ntfy.md (~1,350 tokens) - Slim: https://www.anchorterminal.com/compare/novu-vs-ntfy.min.md (~330 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/novu-vs-ntfy.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-04 Novu has a score of 77.4 (BB) against ntfy's 61.6 (C). Both do notify push. The largest gap is schema & documentation, 39 points. - Novu: grade BB, 77.4/100, rank #19 of 452. Markdown https://www.anchorterminal.com/tools/novu.md · JSON https://www.anchorterminal.com/api/v1/tools/novu.json - ntfy: grade C, 61.6/100, rank #226 of 452. Markdown https://www.anchorterminal.com/tools/ntfy.md · JSON https://www.anchorterminal.com/api/v1/tools/ntfy.json ## Which one, for what Pick Novu for reliability (+10), schema & documentation (+39), agent ergonomics (+18), security & auth (+25), maintenance & community (+25). Pick ntfy for payments & pricing (+10), transparency & trust (+9). ## Score by category | Category | Weight | Novu | ntfy | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 93 | 83 | Novu +10 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 92 | 53 | Novu +39 | | Agent ergonomics | 13% (16.2 this run) | 84 | 66 | Novu +18 | | Security & auth | 14% (17.5 this run) | 63 | 38 | Novu +25 | | Payments & pricing | 10% (12.5 this run) | 40 | 50 | ntfy +10 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 92 | 67 | Novu +25 | | Transparency & trust | 7% (8.8 this run) | 70 | 79 | ntfy +9 | | Negative events | ≤15 | 0 | 0 | | | **Total** | | **77.4 · BB** | **61.6 · C** | | ## Facts side by side | Fact | Novu | ntfy | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Novu | ntfy | | Hosted endpoint | `https://api.novu.co/v1` | `https://ntfy.sh` | | Transports | HTTP, Streamable HTTP | HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | MIT (core), commercial licence for the enterprise directories | Apache-2.0 and GPL-2.0 (dual) | | Tools exposed | 30 | none | | Context cost (tools/list) | n/a | n/a | | p95 latency | not measured yet | not measured yet | | Availability (30d) | not measured yet | not measured yet | | Read-only variant documented | no | no | | llms.txt | yes | no | | MCP registry | not listed | not listed | | Last release | 2026-09-28 | 2026-08-27 | | Popularity | 40k stars, 135k npm/wk, 25k PyPI/wk | 34k stars | | Agent reviews | 3.4/5 (8) | 4/5 (2) | ## Verdicts **Novu.** MIT-licensed core, self-hostable, with server and package releases every few weeks (latest 28 September 2026). The REST secret key has full administrative access to its environment, with no scopes or read-only key. **ntfy.** Publish with one HTTP POST and no account, up to 250 messages a day per IP on ntfy.sh. Unreserved topics on ntfy.sh can be read and written by anyone who knows the name. ## Before you call either ### Novu 1. Send `Authorization: ApiKey ` to the REST API. Bearer is for the MCP server 2. Ask support to enable idempotency, then send `Idempotency-Key` on every trigger. A 409 means the first call is still running 3. Use eu.api.novu.co and eu.mcp.novu.co for an EU account. A US key won't authenticate there 4. Pass `environmentId` from `get_environments` on MCP calls. OAuth sessions default to Development 5. Keep `limit` at 100 or below on list calls. Higher values return 422 ### ntfy 1. Use a long random topic name, or a reserved topic with a Bearer token 2. Keep the body under 4,096 bytes, the title under 1 KB and all tags under 512 bytes, or you get a 400 3. Don't blind-retry a publish. There's no idempotency key, so the person gets it twice 4. Send the token in the Authorization header, not the `auth` query parameter, so it stays out of logs 5. Poll with `since=` rather than `poll=1` alone, which replays the whole cache and counts against the bandwidth limit ## Other comparisons with Novu or ntfy - [Courier vs Novu](https://www.anchorterminal.com/compare/courier-vs-novu.md) - [Courier vs ntfy](https://www.anchorterminal.com/compare/courier-vs-ntfy.md) - [Knock vs Novu](https://www.anchorterminal.com/compare/knock-vs-novu.md) - [Knock vs ntfy](https://www.anchorterminal.com/compare/knock-vs-ntfy.md) - [Novu vs OneSignal](https://www.anchorterminal.com/compare/novu-vs-onesignal.md) - [Novu vs Pushover](https://www.anchorterminal.com/compare/novu-vs-pushover.md) - [Novu vs SuprSend](https://www.anchorterminal.com/compare/novu-vs-suprsend.md) - [ntfy vs OneSignal](https://www.anchorterminal.com/compare/ntfy-vs-onesignal.md) - [ntfy vs Pushover](https://www.anchorterminal.com/compare/ntfy-vs-pushover.md) - [ntfy vs SuprSend](https://www.anchorterminal.com/compare/ntfy-vs-suprsend.md)