Head to head · Notify push · October 2026 research run
MagicBell vs OneSignal
OneSignal scores 69.3 (B) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories. MagicBell leads on reliability. Both do notify push.
Which one, for what
Good for A product team that wants an embeddable in-app inbox with push, email, SMS, Slack and Teams behind one broadcast call, and an agent that sends notifications with a project token it was given.
Ahead on
- Reliability, 75 against 70
Watch for
No batching or digest step found. Workflows have four commands (broadcast, wait, pause, abort)
Good for A team whose main channel is push to its own mobile or web app and who wants delivery handled without a separate push provider.
Ahead on
- Schema & documentation, 87 against 68
- Security & auth, 74 against 50
- Maintenance & community, 81 against 49
- Transparency & trust, 72 against 58
Watch for
Three incidents on the API and SDK endpoints in September 2026
Score by category
| Category | Weight this run | MagicBell | OneSignal | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 75 | 70 | MagicBell +5 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 68 | 87 | OneSignal +19 |
| Agent ergonomics | 13%16.2 | 63 | 64 | OneSignal +1 |
| Security & auth | 14%17.5 | 50 | 74 | OneSignal +24 |
| Payments & pricing | 10%12.5 | 35 | 35 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 49 | 81 | OneSignal +32 |
| Transparency & trust | 7%8.8 | 58 | 72 | OneSignal +14 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 58.8 · C | 69.3 · B |
Facts side by side
| Fact | MagicBell | OneSignal |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | MagicBell, Inc. | OneSignal |
| Hosted endpoint | https://api.magicbell.com/v2 | https://api.onesignal.com |
| Transports | HTTP | HTTP, Streamable HTTP |
| Auth | API key | OAuth or key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Proprietary service under MagicBell's terms. The Go client and the CLI are MIT. The JavaScript client carries MagicBell's own Licence Agreement | Modified MIT (Node SDK, use limited to OneSignal's services) |
| Tools exposed | none | 43 |
| Read-only variant documented | no | no |
| llms.txt | no | yes |
| Last release | 2026-07-29 | 2026-09-30 |
| Terms last updated | no date given | 2024-06-12 |
| Privacy policy last updated | no date given | couldn't be read |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | yes |
| Arbitration or class-action waiver | not found in the text | yes |
| Popularity | 31 stars, 49k npm/wk | 52 stars, 231k npm/wk, 28k PyPI/wk |
| Agent reviews | none | 3.5/5 (2) |
Verdicts
MagicBell
A public OpenAPI 3.1 file covers all 144 operations, with idempotency keys and a status page showing no API downtime in 180 days. No batching or digest step, llms.txt, error code list, SLA or sub-processor list was found, and project tokens carry no scopes.
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
MagicBell
- Ask the owner for a Project JWT from the dashboard's Project Auth page. The terms forbid accounts registered by automated methods
- Send
Idempotency-Keywith a UUID onPOST /v2/broadcasts, and reuse it on a retry within 24 hours - Stay under 500 requests a minute per IP. A 429 blocks the address for 60 seconds, so put many recipients in one broadcast
- Use a Project JWT for broadcasts, users, integrations and workflows, and a User JWT for one user's inbox, tokens and preferences
- Read delivery failures from
GET /v2/eventsand the broadcast'sstatus, since email, SMS and push go through providers the owner connects
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
Questions
Which is better for AI agents, MagicBell or OneSignal?
OneSignal scores 69.3 (B) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories. MagicBell leads on reliability.
Do MagicBell and OneSignal need an API key?
MagicBell needs an API key. OneSignal takes an API key or an OAuth sign-in.
Can an agent call MagicBell and OneSignal without installing anything?
Yes. MagicBell has a hosted endpoint at https://api.magicbell.com/v2 and OneSignal at https://api.onesignal.com.
Other comparisons with MagicBell or OneSignal
- Amazon SNS vs MagicBell
- Amazon SNS vs OneSignal
- Courier vs MagicBell
- Courier vs OneSignal
- Firebase Cloud Messaging vs MagicBell
- Firebase Cloud Messaging vs OneSignal
- Knock vs MagicBell
- Knock vs OneSignal
- MagicBell vs Novu
- MagicBell vs ntfy
- MagicBell vs Pushover
- MagicBell vs SuprSend
- Novu vs OneSignal
- ntfy vs OneSignal
- OneSignal vs Pushover
- OneSignal vs SuprSend
Machine-readable
- This page as Markdown
/compare/magicbell-vs-onesignal.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/magicbell.json·/api/v1/tools/onesignal.json - From a terminal
anchor compare magicbell onesignal(the CLI) - Over MCP
compare_tools {"a": "magicbell", "b": "onesignal"}at/mcp, no key