Skip to main content

Node.js Quickstart

This quickstart demonstrates how to send messages from a Node.js application.

  1. Make sure you have the latest version of Node installed.
  2. Sign up for Courier to get access to your API key.
  3. Add the channel(s) you wish t o send your message to.
  4. Run npm install @trycourier/courier to install the Node.js SDK.
  5. In the Courier app, get your API key for either Test or Prod environments
  6. Add the following code to initialize your SDK:
const courier = new CourierClient({ authorizationToken: "<AUTH_TOKEN>" });
  1. Add the following code to send the message:
const { requestId } = await courier.send({
message: {
to: {
email: "",
content: {
title: "Welcome!",
body: "Thanks for signing up, {{name}}",
data: {
name: "Peter Parker",
routing: {
method: "single",
channels: ["email"],
  1. Replace the JSON within the body to match the type and content of notification you want to send. There are 4 main properties within this example notification:

    • to: provide information used by Courier to identify the recipient of the notification. Here you can include details such as the recipient’s email address for email, phone number for SMS.
    • content: add your notification’s title and body.
    • data: include any data you want to pass to a message template. The data will populate the corresponding template variables.
    • routing: customize which channel(s) Courier will potentially deliver the message. If no routing key is specified, Courier will use the default routing configured in the Courier Studio UI.

    Explore how to customize your notification with more properties >

  2. Run your code. Upon running this API call, only a requestId will be returned.

    { "requestId": "87e7c05b-4f46-fda24e356e23" }
  3. Monitor the status of your notification (once sent) in the logs:


  1. How to add a channel?

    How to: Integrate a New Notification Channel - SMS, Email, Chat, or Push

  2. What's the difference between production and test API keys?

    Every Courier tenant has two notification development environments: “Live” and “Test”. The two environments are isolated from one another, and all the assets within them (templates, brands, tags, categories integrations, API keys, log data, etc.) belong only to that environment.

    Any changes made to a template and its associated assets are only applied within the current environment until you migrate the template and overwrite any changes to the corresponding Notification ID and assets in the other environment.

  3. How can I send to multiple users or contacts?

    You will need to create a list of users in Courier and

  4. How can I access user profiles from Courier?

    If you have your users saved in Courier's user database, you can replace the JSON "email" field in the "to" object with:

    • individual profiles with "user_id": "ADD_USER_ID"
    • list of multiple users: "list_id": "ADD_LIST_ID"


Join our developer community on Discord and ask questions in the #ask-support channel.