Courier API
Courier is a multi-channel notification routing platform that lets developers send notifications across email, SMS, push, Slack, Microsoft Teams, WhatsApp, and other channels through a single API. Rather than integrating separately with Sendgrid for email, Twilio for SMS, and Firebase for push, Courier abstracts all channels behind a unified Send API. Routing rules, channel failover, and notification templates are managed in the Courier Studio UI or via API, allowing non-engineers to control notification logic without code changes. Courier also handles user preferences (letting end users control which channels they receive notifications on), delivery tracking, and notification audit logs.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
No token scoping — a single API key has full workspace access including reading message logs and recipient profiles. Separate production/test keys are a good practice enforced by design. HIPAA compliance available on Enterprise plans with BAA. Recipient profile data (including PII) is stored in Courier's platform; agents must understand data residency implications when sending user data with notifications.
⚡ Reliability
Best When
Your application needs to send notifications across multiple channels and you want to manage routing logic, templates, and user preferences centrally without building per-channel integrations.
Avoid When
You're sending only one notification type on one channel (pure email or pure SMS), need marketing campaign tooling, or are highly cost-sensitive at very high email volumes.
Use Cases
- • Sending transactional notifications across multiple channels (email + SMS + push) with a single API call and channel routing logic
- • Implementing user notification preferences — letting end users opt out of specific channels or notification types without developer involvement
- • Building notification audit trails and delivery status dashboards using Courier's message log API
- • Managing reusable notification templates with dynamic variable substitution across channels without hardcoding message content
- • Routing notifications to Slack or Microsoft Teams channels for internal alerting alongside user-facing email and SMS
Not For
- • High-volume transactional email at email-only scale — dedicated ESPs (Sendgrid, Postmark) offer lower per-email costs and more advanced deliverability tooling
- • Marketing campaigns with A/B testing, segmentation, and audience management — Courier is transactional-first, not a marketing automation platform
- • Real-time chat or two-way messaging — Courier sends notifications outbound but does not handle inbound message routing or conversation threading
- • Teams that need sub-cent per-email pricing at millions of emails/month — Courier's pricing reflects the multi-channel routing layer on top of underlying providers
Interface
Authentication
Single API key per Courier workspace, passed as a Bearer token. Production and test environments have separate API keys — test environment sends are intercepted and not delivered, making it safe for development. No fine-grained token scoping; a single key has full access to the workspace. Multiple workspaces can be used to isolate environments or tenants.
Pricing
Free tier is generous for development and low-volume production use. Channel provider costs (Twilio, Sendgrid, etc.) are separate — Courier routes through your own provider accounts or its built-in providers at additional cost. Enterprise plans include SLA guarantees and advanced features like custom domains.
Agent Metadata
Known Gotchas
- ⚠ Send API accepts requests and returns HTTP 202 (accepted) even if the downstream channel fails — delivery status must be checked via the message log API (GET /messages/{message_id}) or webhooks; there is no synchronous delivery confirmation.
- ⚠ Notification template IDs are referenced by name or UUID — agents must look up or store template IDs; using a deleted or renamed template silently fails or routes to a fallback.
- ⚠ Test vs. production API keys are distinct and not interchangeable — agents must manage environment-specific key configuration; using a test key in production results in notifications being intercepted, not delivered.
- ⚠ User profile data sent with a notification is merged into Courier's recipient profile store — agents sending PII in notification data should be aware that Courier stores recipient profiles, which has data privacy implications.
- ⚠ Routing rules (channel priority, failover) are configured in Courier Studio UI, not via API — agents cannot programmatically change routing logic without using the routing object in the send payload to override templates.
- ⚠ Webhook events for delivery status (DELIVERED, UNDELIVERABLE) require webhook endpoint configuration — agents assuming in-app polling is sufficient will miss delivery failures that only surface via webhook events.
- ⚠ Bulk sends via /send/list use list IDs that must be pre-created and managed — agents sending to dynamic recipient lists must create/update lists before triggering bulk sends.
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Courier API.
Scores are editorial opinions as of 2026-03-06.