# Courier vs Expo Push Notifications > Courier scores 70.5 (BB) to Expo Push Notifications's 58.8 (C) for push notifications. Prices, MCP, x402, uptime and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/courier-vs-expo-push-notifications - Markdown: https://www.anchorterminal.com/compare/courier-vs-expo-push-notifications.md (~2,350 tokens) - Slim: https://www.anchorterminal.com/compare/courier-vs-expo-push-notifications.min.md (~680 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/courier-vs-expo-push-notifications.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-09 Courier scores 70.5 (BB) on agent readiness against Expo Push Notifications's 58.8 (C), and leads in 5 of 7 scored categories. Expo Push Notifications leads on payments & pricing. Both do push notifications. - Courier: grade BB, 70.5/100, rank #151 of 950. Markdown https://www.anchorterminal.com/tools/courier.md · JSON https://www.anchorterminal.com/api/v1/tools/courier.json - Expo Push Notifications: grade C, 58.8/100, rank #571 of 950. Markdown https://www.anchorterminal.com/tools/expo-push-notifications.md · JSON https://www.anchorterminal.com/api/v1/tools/expo-push-notifications.json - Best notification APIs for AI agents: https://www.anchorterminal.com/best/notifications/index.md - All 66 notifications comparisons: https://www.anchorterminal.com/compare/notifications/index.md ## 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 65 - Schema & documentation, 84 against 60 - Agent ergonomics, 68 against 63 - Security & auth, 56 against 48 - Maintenance & community, 86 against 74 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 ### Expo Push Notifications (C) Good for: An agent that must push to an app already built with Expo, at no cost and with one call for both platforms. Ahead on: - Payments & pricing, 40 against 35 Watch for: The send API needs no authentication by default, so anyone holding a push token can send to that device until the owner enables access tokens ## Score by category | Category | Weight | Courier | Expo Push Notifications | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 92 | 65 | Courier +27 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 84 | 60 | Courier +24 | | Agent ergonomics | 13% (16.2 this run) | 68 | 63 | Courier +5 | | Security & auth | 14% (17.5 this run) | 56 | 48 | Courier +8 | | Payments & pricing | 10% (12.5 this run) | 35 | 40 | Expo Push Notifications +5 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 86 | 74 | Courier +12 | | Transparency & trust | 7% (8.8 this run) | 65 | 68 | Expo Push Notifications +3 | | Negative events | ≤15 | 0 | 0 | | | **Total** | | **70.5 · BB** | **58.8 · C** | | ## Facts side by side | Fact | Courier | Expo Push Notifications | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Courier | Expo | | Hosted endpoint | `https://api.courier.com` | `https://exp.host/--/api/v2/push/send` | | Transports | HTTP, Streamable HTTP | HTTP | | Auth | API key | OAuth or key | | Pricing | Freemium | Free | | x402 | no | no | | Licence | Apache-2.0 (Node SDK) | Proprietary service under Expo's terms of service. The Node.js server SDK is MIT | | Tools exposed | 170 | none | | Read-only variant documented | no | no | | llms.txt | yes | yes | | MCP registry | `io.github.trycourier/courier` | not listed | | Last release | 2026-09-24 | 2026-08-24 | | Terms last updated | 2026-09-10 | 2025-05-29 | | Privacy policy last updated | 2025-12-08 | 2025-10-21 | | 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 | yes | | Arbitration or class-action waiver | not found in the text | yes | | Popularity | 63 stars, 189k npm/wk, 35k PyPI/wk | 1k stars, 1.3M 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. **Expo Push Notifications.** A free push relay with a small, well documented HTTP API, published limits of 600 notifications a second and written error codes. Sending needs no credential unless the owner turns on access tokens, there is no idempotency key or SLA, and the status page records three iOS push incidents since 4 August 2026. ## Before you call either ### Courier 1. Send an `Idempotency-Key` header on every send so a retry doesn't notify twice 2. Set `routing.method` to `single` to stop at the first channel that works 3. Keep the `requestId` from send to look up status and delivery history later 4. Use a dedicated API key for the MCP server. Every one of the 170 tools runs with that key's full rights 5. Space resends at least 2 seconds apart per message or you get a 429 ### Expo Push Notifications 1. Send an array of up to 100 messages per request, all for one project, and stay under 600 notifications a second 2. Keep each ticket `id` and POST them to `/--/api/v2/push/getReceipts` about 15 minutes later. Receipts are cleared after 24 hours 3. Stop sending to a token when a ticket or receipt returns `DeviceNotRegistered` 4. If the project has enhanced push security on, send `Authorization: Bearer ` or the call fails with `UNAUTHORIZED` 5. Retry 429 and 5xx with exponential backoff, and expect an occasional duplicate because there is no idempotency key ## Questions ### Which is better for AI agents, Courier or Expo Push Notifications? Courier scores 70.5 (BB) on agent readiness against Expo Push Notifications's 58.8 (C), and leads in 5 of 7 scored categories. Expo Push Notifications leads on payments & pricing. ### Do Courier and Expo Push Notifications need an API key? Courier needs an API key. Expo Push Notifications takes an API key or an OAuth sign-in. ### Can an agent call Courier and Expo Push Notifications without installing anything? Yes. Courier has a hosted endpoint at https://api.courier.com and Expo Push Notifications at https://exp.host/--/api/v2/push/send. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/courier-vs-expo-push-notifications.json, and with the fewest tokens: https://www.anchorterminal.com/compare/courier-vs-expo-push-notifications.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "courier", "b": "expo-push-notifications"}`. From a terminal: `anchor compare courier expo-push-notifications` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/courier.json and https://www.anchorterminal.com/api/v1/tools/expo-push-notifications.json ## Other comparisons with Courier or Expo Push Notifications - [Amazon SNS vs Courier](https://www.anchorterminal.com/compare/amazon-sns-vs-courier.md) - [Amazon SNS vs Expo Push Notifications](https://www.anchorterminal.com/compare/amazon-sns-vs-expo-push-notifications.md) - [Courier vs Firebase Cloud Messaging](https://www.anchorterminal.com/compare/courier-vs-firebase-cloud-messaging.md) - [Courier vs Knock](https://www.anchorterminal.com/compare/courier-vs-knock.md) - [Courier vs MagicBell](https://www.anchorterminal.com/compare/courier-vs-magicbell.md) - [Courier vs Novu](https://www.anchorterminal.com/compare/courier-vs-novu.md) - [Courier vs ntfy](https://www.anchorterminal.com/compare/courier-vs-ntfy.md) - [Courier vs OneSignal](https://www.anchorterminal.com/compare/courier-vs-onesignal.md) - [Courier vs Pingram](https://www.anchorterminal.com/compare/courier-vs-pingram.md) - [Courier vs Pushover](https://www.anchorterminal.com/compare/courier-vs-pushover.md) - [Courier vs SuprSend](https://www.anchorterminal.com/compare/courier-vs-suprsend.md) - [Expo Push Notifications vs Firebase Cloud Messaging](https://www.anchorterminal.com/compare/expo-push-notifications-vs-firebase-cloud-messaging.md) - [Expo Push Notifications vs Knock](https://www.anchorterminal.com/compare/expo-push-notifications-vs-knock.md) - [Expo Push Notifications vs MagicBell](https://www.anchorterminal.com/compare/expo-push-notifications-vs-magicbell.md) - [Expo Push Notifications vs Novu](https://www.anchorterminal.com/compare/expo-push-notifications-vs-novu.md) - [Expo Push Notifications vs ntfy](https://www.anchorterminal.com/compare/expo-push-notifications-vs-ntfy.md) - [Expo Push Notifications vs OneSignal](https://www.anchorterminal.com/compare/expo-push-notifications-vs-onesignal.md) - [Expo Push Notifications vs Pingram](https://www.anchorterminal.com/compare/expo-push-notifications-vs-pingram.md) - [Expo Push Notifications vs Pushover](https://www.anchorterminal.com/compare/expo-push-notifications-vs-pushover.md) - [Expo Push Notifications vs SuprSend](https://www.anchorterminal.com/compare/expo-push-notifications-vs-suprsend.md)