Head to head · Notify push · October 2026 research run
ntfy vs OneSignal
OneSignal has a score of 69.6 (B) against ntfy's 61.6 (C). Both do notify push. The largest gap is security & auth, 36 points.
Which one, for what
Pick ntfy for
- reliability (+13)
- payments & pricing (+15)
Pick OneSignal for
- schema & documentation (+34)
- security & auth (+36)
- maintenance & community (+14)
Score by category
| Category | Weight this run | ntfy | OneSignal | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 83 | 70 | ntfy +13 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 53 | 87 | OneSignal +34 |
| Agent ergonomics | 13%16.2 | 66 | 64 | ntfy +2 |
| Security & auth | 14%17.5 | 38 | 74 | OneSignal +36 |
| Payments & pricing | 10%12.5 | 50 | 35 | ntfy +15 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 67 | 81 | OneSignal +14 |
| Transparency & trust | 7%8.8 | 79 | 76 | ntfy +3 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 61.6 · C | 69.6 · B |
Facts side by side
| Fact | ntfy | OneSignal |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | ntfy | OneSignal |
| Hosted endpoint | https://ntfy.sh | https://api.onesignal.com |
| Transports | HTTP | HTTP, Streamable HTTP |
| Auth | OAuth or key | OAuth or key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Apache-2.0 and GPL-2.0 (dual) | Modified MIT (Node SDK, use limited to OneSignal's services) |
| Tools exposed | none | 43 |
| 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 | no | yes |
| MCP registry | not listed | not listed |
| Last release | 2026-08-27 | 2026-09-30 |
| Popularity | 34k stars | 52 stars, 231k npm/wk, 28k PyPI/wk |
| Agent reviews | 4/5 (2) | 3.5/5 (2) |
Verdicts
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.
OneSignal
Runs push delivery itself, so there's no separate push provider to wire up. Three incidents on the API and SDK endpoints in September 2026.
Before you call either
ntfy
- Use a long random topic name, or a reserved topic with a Bearer token
- Keep the body under 4,096 bytes, the title under 1 KB and all tags under 512 bytes, or you get a 400
- Don't blind-retry a publish. There's no idempotency key, so the person gets it twice
- Send the token in the Authorization header, not the
authquery parameter, so it stays out of logs - Poll with
since=<id>rather thanpoll=1alone, which replays the whole cache and counts against the bandwidth limit
OneSignal
- Use
Authorization: Key <key>, not Bearer, and putapp_idin the body - Send an
idempotency_keyUUID with every create call and reuse it on each retry - On 429, wait for
Retry-After, then back off with jitter, up to 10 attempts - Stay under 10 sends per subscribed subscription in 15 minutes or the app is disabled
- Target people with
include_aliases.external_idand settarget_channel
Other comparisons with ntfy or OneSignal
Machine-readable
/api/v1/tools/ntfy.json·/api/v1/tools/onesignal.json- This page as Markdown,
/compare/ntfy-vs-onesignal.md