Skip to main content

Send your first notification

Send a notification in under two minutes. All you need is an API key.
1

Get your API key

Sign up or log in to Courier, then copy your API key from Settings > API Keys.
2

Send a message

One API call sends an email. Use cURL directly or any of our server SDKs. Replace YOUR_API_KEY with your key and you@example.com with your email address.
curl -X POST https://api.courier.com/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "message": {
      "to": { "email": "you@example.com" },
      "content": {
        "title": "Hello from Courier!",
        "body": "You just sent your first notification. Nice work, {{name}}."
      },
      "data": { "name": "Developer" },
      "routing": {
        "method": "single",
        "channels": ["email"]
      }
    }
  }'
The response includes a requestId you can use to track delivery:
{ "requestId": "1-67890abc-d1e2f3a4b5c6" }
3

Verify delivery

Open Message Logs in your dashboard. You should see your message with a timeline showing each stage: accepted, routed, rendered, sent, and delivered.If the message doesn’t appear, double-check that your API key is correct and that you’re viewing the right environment (Test vs Production).
That’s it. One API call, one notification delivered.

FAQ

Not necessarily. Courier includes a built-in email provider, so email works out of the box in Test mode. For production email, SMS, push, or chat you’ll need to connect a provider in Integrations. The Inbox and Toast channels also work without any external provider.
Yes. Courier’s Template Designer lets you build notifications visually with drag-and-drop blocks, then reference them by ID in your send call. See the Design Your First Notification tutorial for a walkthrough.
Add a provider for the channel you want in Integrations, then update the routing object in your send call. To send to multiple channels, set method to "all" and list the channels you want. See How Sending Works for details on routing and fallback behavior.
We have official SDKs for Node.js, Python, Ruby, Go, Java, PHP, and C#, plus mobile SDKs for iOS, Android, React Native, and Flutter. See the full list on the SDKs overview. You can also call the REST API directly from any language.

What to do next

You just sent a notification with inline content. From here, go deeper on how sending works or start building something more robust.