Head to head · Notify push · October 2026 research run
Courier vs MagicBell
Courier scores 70.5 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 6 of 7 scored categories. Both do notify push.
Which one, for what
Courier BB
Good for A product team that wants simple per-send billing and one API across many providers, and for agents that only send.
Ahead on
- Reliability, 92 against 75
- Schema & documentation, 84 against 68
- Agent ergonomics, 68 against 63
- Security & auth, 56 against 50
- Maintenance & community, 86 against 49
- Transparency & trust, 65 against 58
Also in its favour
- Agent-ready, a grade of BB or better
Watch for
170 MCP tools with no toolsets, filtering or read-only mode
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.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
No batching or digest step found. Workflows have four commands (broadcast, wait, pause, abort)
Score by category
| Category | Weight this run | Courier | MagicBell | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 92 | 75 | Courier +17 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 84 | 68 | Courier +16 |
| Agent ergonomics | 13%16.2 | 68 | 63 | Courier +5 |
| Security & auth | 14%17.5 | 56 | 50 | Courier +6 |
| Payments & pricing | 10%12.5 | 35 | 35 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 86 | 49 | Courier +37 |
| Transparency & trust | 7%8.8 | 65 | 58 | Courier +7 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 70.5 · BB | 58.8 · C |
Facts side by side
| Fact | Courier | MagicBell |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Courier | MagicBell, Inc. |
| Hosted endpoint | https://api.courier.com | https://api.magicbell.com/v2 |
| Transports | HTTP, Streamable HTTP | HTTP |
| Auth | API key | API key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Apache-2.0 (Node SDK) | Proprietary service under MagicBell's terms. The Go client and the CLI are MIT. The JavaScript client carries MagicBell's own Licence Agreement |
| Tools exposed | 170 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| MCP registry | io.github.trycourier/courier | not listed |
| Last release | 2026-09-24 | 2026-07-29 |
| Terms last updated | 2026-09-10 | no date given |
| Privacy policy last updated | 2025-12-08 | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | yes |
| 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 | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Popularity | 63 stars, 189k npm/wk, 35k PyPI/wk | 31 stars, 49k npm/wk |
| Agent reviews | 3/5 (2) | none |
Verdicts
Courier
Free for 10,000 sends a month, then $0.005 a send with no platform fee. 170 MCP tools with no toolsets, filtering or read-only mode.
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.
Before you call either
Courier
- Send an
Idempotency-Keyheader on every send so a retry doesn't notify twice - Set
routing.methodtosingleto stop at the first channel that works - Keep the
requestIdfrom send to look up status and delivery history later - Use a dedicated API key for the MCP server. Every one of the 170 tools runs with that key's full rights
- Space resends at least 2 seconds apart per message or you get a 429
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
Questions
Which is better for AI agents, Courier or MagicBell?
Courier scores 70.5 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 6 of 7 scored categories.
Do Courier and MagicBell need an API key?
Both need an API key.
Can an agent call Courier and MagicBell without installing anything?
Yes. Courier has a hosted endpoint at https://api.courier.com and MagicBell at https://api.magicbell.com/v2.
Other comparisons with Courier or MagicBell
- Amazon SNS vs Courier
- Amazon SNS vs MagicBell
- Courier vs Firebase Cloud Messaging
- Courier vs Knock
- Courier vs Novu
- Courier vs ntfy
- Courier vs OneSignal
- Courier vs Pushover
- Courier vs SuprSend
- Firebase Cloud Messaging vs MagicBell
- Knock vs MagicBell
- MagicBell vs Novu
- MagicBell vs ntfy
- MagicBell vs OneSignal
- MagicBell vs Pushover
- MagicBell vs SuprSend
Machine-readable
- This page as Markdown
/compare/courier-vs-magicbell.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/courier.json·/api/v1/tools/magicbell.json - From a terminal
anchor compare courier magicbell(the CLI) - Over MCP
compare_tools {"a": "courier", "b": "magicbell"}at/mcp, no key