Get started free
All integrations

Courier integration

Multi-channel notification API for email, SMS, push, Slack, and more. Design notifications with a visual editor, manage preferences, and deliver across 50+ channels from one API. Features include templates, user preferences, delivery tracking, intelligent routing, audiences, tenants, automations, and bulk operations.

58 toolsTokenAPI docs

Common Courier use cases

  • admin tools
  • compliance
  • subscription management
  • list cleanup
  • list management
  • settings display
  • audience management
  • unsubscribe handling
  • delivery verification
  • subscriber management

What you can do with Courier

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

List, 10 operations

  • POSTadd_subscribers_to_list

    Adds subscribers to a list without removing existing ones (POST appends).

  • DELETEdelete_list

    Deletes a list. Can be restored later via PUT /lists/{list_id}/restore.

  • GETget_list

    Gets a specific list by ID. Returns list name, created, and updated timestamps.

  • GETget_list_subscriptions

    Gets all subscribers of a list. Returns recipient IDs, preferences, and timestamps.

  • GETlist_lists

    Gets all recipient lists with optional pattern filtering. Returns list IDs, names, and timestamps.

  • PUTrestore_list

    Restores a previously deleted list. Returns 204 on success.

  • PUTsubscribe_to_list

    Subscribes users to a list (PUT overwrites existing subscriptions). Creates the list if it does not exist.

  • PUTsubscribe_user_to_list

    Subscribes a single user to a list with optional per-subscription preferences.

  • DELETEunsubscribe_from_list

    Removes a user from a list subscription.

  • PUTupdate_list

    Creates or updates a list. Set name and optional notification preferences.

Message, 6 operations

  • PUTarchive_message

    Archives a message by request ID. Archived messages can be filtered when listing messages.

  • POSTcancel_message

    Cancels a previously enqueued message before delivery. Returns 200 on success, 409 if cancellation fails.

  • GETget_message

    Gets message details and delivery status. Returns sent/delivered/opened events per channel. Track notification lifecycle and troubleshoot delivery issues.

  • GETget_message_content

    Gets the rendered content of a sent message. Returns HTML, title, body, subject, and text per channel.

  • GETget_message_history

    Gets the full event history of a sent message. Returns timestamped lifecycle events showing routing, rendering, and delivery progression.

  • GETlist_messages

    Lists sent messages with optional filters. Query by recipient, status, event, provider, tenant, or tags. Returns paginated message history.

Profile, 6 operations

  • DELETEdelete_profile

    Permanently deletes a user profile. Returns 204 on success.

  • GETget_profile

    Gets a user's stored profile. Returns all contact info, preferences, and custom data.

  • GETget_profile_lists

    Gets all list subscriptions for a user. Returns list IDs, names, and timestamps.

  • POSTmerge_profile

    Merges data into a user profile without replacing existing fields. Creates the profile if it does not exist.

  • PUTreplace_profile

    Replaces a user profile entirely. Store contact info, push tokens, chat handles, and custom properties. Omitted fields are removed.

  • PATCHupdate_profile

    Applies JSON patch operations to a user profile. Supports add, remove, replace, move, copy, and test operations.

Audience, 5 operations

  • DELETEdelete_audience

    Deletes an audience. Returns 204 on success.

  • GETget_audience

    Gets a specific audience by ID. Returns name, description, operator, filter rules, and timestamps.

  • GETlist_audience_members

    Lists all members of an audience. Returns member IDs, added timestamps, and match reasons.

  • GETlist_audiences

    Lists all audiences with their filter configurations. Returns ID, name, description, operator, and filter rules.

  • PUTupdate_audience

    Creates or updates an audience with filter rules for dynamic user grouping based on profile attributes.

Brand, 5 operations

  • POSTcreate_brand

    Creates a new brand configuration. Define name, settings (colors, logo, email), and optional snippets.

  • DELETEdelete_brand

    Deletes a brand configuration. Returns 204 on success, 409 if the brand cannot be deleted.

  • GETget_brand

    Gets a specific brand configuration by ID. Returns name, settings, snippets, and version.

  • GETlist_brands

    Lists brand configurations for notification styling. Returns brand ID, name, settings, and timestamps.

  • PUTreplace_brand

    Replaces a brand configuration entirely. Provide name and updated settings.

Bulk job, 5 operations

  • POSTcreate_bulk_job

    Creates a bulk notification job with shared message configuration. Returns a jobId used to add recipients and trigger delivery.

  • GETget_bulk_job

    Gets the status and details of a bulk notification job. Returns enqueued count, received count, failures, and job definition.

  • GETget_bulk_job_users

    Lists users added to a bulk job with their processing status and optional message IDs.

  • POSTingest_bulk_users

    Adds recipients to a bulk notification job. Can be called multiple times to ingest users incrementally before triggering the job.

  • POSTrun_bulk_job

    Triggers a bulk job to start processing and delivering notifications to all ingested users. A job can only be triggered once.

Tenant, 5 operations

  • PUTcreate_or_replace_tenant

    Creates or replaces a tenant. Set name, properties, preferences, user_profile, and brand_id.

  • DELETEdelete_tenant

    Deletes a tenant. Returns 204 on success.

  • GETget_tenant

    Gets a tenant by ID. Returns name, properties, default_preferences, user_profile, and brand_id.

  • GETget_tenant_users

    Lists all users in a tenant. Returns user-tenant associations with pagination.

  • GETlist_tenants

    Lists all tenants. Supports parent_tenant_id filtering and pagination.

Automation, 3 operations

  • POSTinvoke_automation

    Invokes an ad hoc automation run with a series of steps. Supports send, delay, send-list, fetch-data, update-profile, cancel, and invoke actions.

  • POSTinvoke_automation_template

    Invokes a pre-defined automation template by ID or alias. Returns a runId.

  • GETlist_automations

    Lists all automation templates. Filter by published or draft version.

Preference, 3 operations

  • GETget_preferences

    Gets user's notification preferences. Returns subscription status by topic with optional custom routing channels.

  • GETget_preference_topic

    Gets a user's preference for a specific topic. Returns status, custom routing, and channel preferences.

  • PUTupdate_preferences

    Updates preferences for a specific topic. Set status and optional custom routing channels.

Audit event, 2 operations

  • GETget_audit_event

    Gets a specific audit event by ID. Returns actor, action, target, source, and timestamp.

  • GETlist_audit_events

    Lists audit events. Returns timestamped records of actions with actor, target, source, and type.

Translation, 2 operations

  • GETget_translation

    Gets translations for a domain and locale. Returns .po file translation content.

  • PUTupdate_translation

    Updates translations for a domain and locale. Accepts .po file content. Returns 204 on success.

User tenant, 2 operations

  • PUTadd_user_to_tenant

    Adds a user to a tenant with optional tenant-scoped profile data.

  • GETget_user_tenants

    Lists all tenants associated with a user.

Auth, 1 operation

  • POSTissue_token

    Creates a scoped JWT for client-side Courier SDK authentication. Set scope and expiration.

Notification, 1 operation

  • POSTsend_notification

    Sends a notification via configured channels. Specify recipient, template or inline content, and routing preferences. Delivers across email, SMS, push, Slack, and more.

Template, 1 operation

  • GETlist_templates

    Lists all notification templates in your workspace. Returns template ID, title, routing, tags, topic_id, and timestamps.

Track, 1 operation

  • POSTtrack_event

    Tracks a custom event for automation triggers. De-duplicated by messageId. Returns 202 on acceptance.

Use Courier from Claude Code, Cursor or Codex

Connect Courier in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Courier operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Courier

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Courier once

    Add your Courier connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Courier integration FAQ

What can you do with the Courier integration?
LiveContext exposes 58 operations on Courier, covering list, message, profile and audience. Common uses include admin tools, compliance and subscription management.

Popular integrations

Browse the whole catalog