Courier API

Deliver your product’s notifications to the best channel for each user, automatically. Use your existing Email, SMS, Push, & Slack services

The Courier REST API provides several endpoints that allow your application to send messages, request details about an individual message, and manage profile and preference information for each recipient in your audience.

If you're new to Courier, you can also follow one of our Getting Started with Courier Guides to send your first message.


The Courier REST API supports both token and basic authorization

Token Auth

Courier assigns you a "Courier Auth Token" when you Register your account.

This token should be passed as a Bearer Token in an Authorization header with each request. Remember, it is best not to store an authorization token in your source control but instead reference values stored in environment variables or some other configuration. However you handle your tokens, be sure to keep them private and secure.

curl --request POST \
  --url \
  --header 'Authorization: Bearer <token>' \

Basic Auth

Basic Auth works by passing a username and password in an Authorization header. These credentials should be Base64 encoded, which can typically be accomplished using a function or method available in your language of choice. For example, JavaScript provides the btoa() and atob() functions to Base64 encode and decode respectively.

A username of "" and password of "examplepassword1234" are concatenated to "". This concatenated string becomes "ZXhhbXBsZUBleGFtcGxlLmNvbTpleGFtcGxlcGFzc3dvcmQxMjM0" once it is Base64 encoded.

To authenticate with the Courier REST API, use the email associated with your account as the username and the "Courier Auth Token" as your password.

curl --request POST \
  --url \
  --header 'Authorization: Basic <Base64 encoded string>' \


Simplify your notifications code. Courier automatically upgrades your outbound user notifications to use the best channel for each user.