# Courier: API Reference

> Courier's developer documentation and API reference.

## API Reference

###  

- [Courier API Reference](https://www.courier.com/docs/reference/api-overview.md): Courier's REST API for sending notifications and managing profiles, preferences, templates, and brands across email, SMS, push, chat, and in-app.

### Send

- [Send a message](https://www.courier.com/docs/api-reference/send/send-a-message.md): Sends a message to one or more recipients and returns a requestId. Courier routes it to email, SMS, push, chat, or in-app based on your rules. Use the returned requestId to look up delivery status via the Messages API.

### Templates

- [List Notification Templates](https://www.courier.com/docs/api-reference/templates/list-notification-templates.md): Lists the workspace's notification templates. Each carries a name, tags, brand, routing, and its draft or published state.
- [Create Notification Template](https://www.courier.com/docs/api-reference/templates/create-notification-template.md): Create a notification template. Requires all fields in the notification object. Templates are created in draft state by default.
- [Get Notification Template](https://www.courier.com/docs/api-reference/templates/get-notification-template.md): Retrieve a notification template by ID. Returns the published version by default. Pass version=draft to retrieve an unpublished template.
- [Replace Notification Template](https://www.courier.com/docs/api-reference/templates/replace-notification-template.md): Replaces a notification template in full, so send every field rather than only the ones you want changed. Publish separately to make it live.
- [Archive Notification Template](https://www.courier.com/docs/api-reference/templates/archive-notification-template.md): Archives a notification template, preventing new sends from referencing it. The template stays retrievable for its version history.
- [List Notification Template Versions](https://www.courier.com/docs/api-reference/templates/list-notification-template-versions.md): Returns a notification template's published versions, most recent first, for comparison or rollback. Paged.
- [Publish Notification Template](https://www.courier.com/docs/api-reference/templates/publish-notification-template.md): Publish a notification template. Publishes the current draft by default. Pass a version in the request body to publish a specific historical version.
- [Get Notification Content](https://www.courier.com/docs/api-reference/templates/get-notification-content.md): Returns a template's content and checksum. V2 templates return Elemental elements, while V1 templates return blocks and channels instead.
- [Replace Notification Content](https://www.courier.com/docs/api-reference/templates/replace-notification-content.md): Replaces all Elemental content in a template, overwriting every existing element. Supported for V2 templates only, not V1 blocks and channels.
- [Replace Notification Element](https://www.courier.com/docs/api-reference/templates/replace-notification-element.md): Replaces one Elemental element in a template, addressed by its element id. Supported for V2 templates only, not V1 blocks and channels.
- [Replace Notification Locale](https://www.courier.com/docs/api-reference/templates/replace-notification-locale.md): Sets locale-specific content overrides for a template. Each override must reference an element that already exists in the default content.
- [Get submission checks](https://www.courier.com/docs/api-reference/templates/get-submission-checks.md): Returns the approval checks recorded for a template submission, each with its pass or fail result.
- [Replace submission checks](https://www.courier.com/docs/api-reference/templates/replace-submission-checks.md): Replaces the approval checks on a template submission with the complete set supplied in the request body.
- [Cancel submission](https://www.courier.com/docs/api-reference/templates/cancel-submission.md): Cancels a pending template submission, withdrawing it from the approval workflow. The template stays in draft and can be resubmitted later.
- [Get Notification Template Metrics](https://www.courier.com/docs/api-reference/templates/get-notification-template-metrics.md): Fetch the delivery funnel for one Notification Template as a time series — sent, delivered, opened, clicked, errors, and undeliverable — broken out per provider and channel inside each bucket. Sum the entries in a bucket for its totals; there is no bucket-level total.

### Brands

- [List Brands](https://www.courier.com/docs/api-reference/brands/list-brands.md): Lists the workspace's brands. Every entry carries its name, styling settings, snippets, and published version.
- [Create a new Brand](https://www.courier.com/docs/api-reference/brands/create-a-new-brand.md): Creates a brand from a name and settings, including primary and secondary colors. Brands supply the logo, colors, and styling that templates render with.
- [Get a Brand](https://www.courier.com/docs/api-reference/brands/get-a-brand.md): Returns one brand by id, including its colors, logo and styling settings, Handlebars snippets, and published version.
- [Replace a Brand](https://www.courier.com/docs/api-reference/brands/replace-a-brand.md): Replaces a brand with the values you supply, so send the complete settings and snippets rather than only the fields you want changed.
- [Delete a Brand](https://www.courier.com/docs/api-reference/brands/delete-a-brand.md): Deletes a brand by id. Reassign any template or tenant that references it before deleting to keep their styling intact.

### Routing Strategies

- [List Routing Strategies](https://www.courier.com/docs/api-reference/routing-strategies/list-routing-strategies.md): List routing strategies in your workspace. Returns metadata only (no routing/channels/providers content). Use GET /routing-strategies/{id} for full details.
- [Create Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/create-routing-strategy.md): Create a routing strategy. Requires a name and routing configuration at minimum. Channels and providers default to empty if omitted.
- [Get Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/get-routing-strategy.md): Returns one routing strategy by id with its name, tags, channels, and the routing rules that decide provider order and fallback.
- [Replace Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/replace-routing-strategy.md): Replace a routing strategy. Full document replacement; the caller must send the complete desired state. Missing optional fields are cleared.
- [Archive Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/archive-routing-strategy.md): Archive a routing strategy. The strategy must not have associated notification templates. Unlink all templates before archiving.
- [List notifications for a Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/list-notifications-for-a-routing-strategy.md): Returns the notification templates using a routing strategy, with paging. Check this before changing a strategy that templates depend on.

### Journeys

- [List Journeys](https://www.courier.com/docs/api-reference/journeys/list-journeys.md): Lists the workspace's journeys, each carrying a name, state, and enabled flag. Paged by cursor.
- [Create a Journey](https://www.courier.com/docs/api-reference/journeys/create-a-journey.md): Creates a journey from a set of nodes, in draft state unless you pass a published state. Send nodes cannot be included until their templates exist.
- [Cancel Journey runs](https://www.courier.com/docs/api-reference/journeys/cancel-journey-runs.md): Cancels in-flight journey runs, either every run sharing a cancelation token or one run by id. Use it to stop a sequence when the event resolves.
- [List Journey runs](https://www.courier.com/docs/api-reference/journeys/list-journey-runs.md): List runs of the workspace's Journeys, newest first, filtered by status, Journey, or date range and paged by cursor. Runs of v2 Automations are listed by `GET /automations/runs` instead — the two surfaces never return each other's runs. Runs are retained for 95 days.
- [Fetch a Journey run](https://www.courier.com/docs/api-reference/journeys/fetch-a-journey-run.md): Fetch one Journey run by id. Returns `404` for an unknown run, a run belonging to another workspace, a run past the 95-day retention window, or an Automation run id — the same body in every case, so the response never reveals whether a run exists elsewhere.
- [List steps for a Journey run](https://www.courier.com/docs/api-reference/journeys/list-steps-for-a-journey-run.md): List the per-node state of one Journey run, in full — this endpoint is not paginated. Each step's `node_id` is the id of the node in the published Journey, so a step maps directly onto the Journey graph. `message_id` is present on send steps that produced a message; follow it to `GET /messages/{mess…
- [Invoke a Journey](https://www.courier.com/docs/api-reference/journeys/invoke-a-journey.md): Starts a journey run for one user and returns a runId. Runs execute asynchronously, so the response arrives before any message is sent.
- [Fetch a Journey by id](https://www.courier.com/docs/api-reference/journeys/fetch-a-journey-by-id.md): Fetch a journey by id. Pass `?version=draft` (default `published`) to retrieve the working draft, or `?version=vN` to retrieve a historical version.
- [Replace a Journey](https://www.courier.com/docs/api-reference/journeys/replace-a-journey.md): Replaces a journey's working draft, leaving the published version live until you publish. Reach for this when editing a journey already running.
- [Archive a Journey](https://www.courier.com/docs/api-reference/journeys/archive-a-journey.md): Archives a journey so it can no longer be invoked. Runs already in flight continue to completion, so archiving never strands a user mid-sequence.
- [List versions of a Journey](https://www.courier.com/docs/api-reference/journeys/list-versions-of-a-journey.md): Lists a journey's published versions, most recent first, so you have a version id to roll back to. Paged by cursor.
- [Publish a Journey](https://www.courier.com/docs/api-reference/journeys/publish-a-journey.md): Publishes a journey's current draft as a new version, making it live for new runs. Pass a version instead to roll back to an earlier one.
- [List Notification Templates scoped to a Journey](https://www.courier.com/docs/api-reference/journeys/list-notification-templates-scoped-to-a-journey.md): List notification templates scoped to this journey. Journey-scoped notification templates can only be referenced from `send` nodes within the same journey.
- [Create a Notification Template scoped to a Journey](https://www.courier.com/docs/api-reference/journeys/create-a-notification-template-scoped-to-a-journey.md): Create a notification template scoped to this journey. Defaults to `DRAFT` state; pass `state: "PUBLISHED"` to publish on create.
- [Fetch a Journey-scoped Notification Template by id](https://www.courier.com/docs/api-reference/journeys/fetch-a-journey-scoped-notification-template-by-id.md): Returns a journey's own notification template with its name, brand, subscription topic, and content. Defaults to the published version.
- [Replace a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/replace-a-journey-scoped-notification-template.md): Replaces the draft content of one journey's notification template. Publish it before send nodes referencing it render the change.
- [Archive a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/archive-a-journey-scoped-notification-template.md): Archives one journey's notification template, preventing further sends. Detach any send node referencing it beforehand.
- [Publish a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/publish-a-journey-scoped-notification-template.md): Publishes a journey-scoped template's draft as a new version. Pass a version instead to roll back the template to an earlier publish.
- [List versions of a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/list-versions-of-a-journey-scoped-notification-template.md): Lists the published versions of a template that belongs to a journey, most recent first. Paged by cursor.
- [Fetch the content of a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/fetch-the-content-of-a-journey-scoped-notification-template.md): Returns the Elemental elements and version of a journey-scoped template's content. Compare versions to see what changed between publishes.
- [Replace the content of a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/replace-the-content-of-a-journey-scoped-notification-template.md): Replace the elemental content of a journey-scoped notification template. Overwrites all elements in the template draft with the provided content.
- [Replace a locale of a Journey-scoped Notification Template](https://www.courier.com/docs/api-reference/journeys/replace-a-locale-of-a-journey-scoped-notification-template.md): Set locale-specific content overrides for a journey-scoped notification template. Each element override must reference an existing element by ID.

### Broadcasts

- [List Broadcasts](https://www.courier.com/docs/api-reference/broadcasts/list-broadcasts.md): List broadcasts in your workspace. Cursor-paginated; returns broadcasts newest-first.
- [Create Broadcast](https://www.courier.com/docs/api-reference/broadcasts/create-broadcast.md): Create a broadcast. Provisions a private notification template for the broadcast and returns the new broadcast in the draft state. Exactly one channel is required.
- [Get Broadcast](https://www.courier.com/docs/api-reference/broadcasts/get-broadcast.md): Retrieve a broadcast by ID. Archived broadcasts return 404.
- [Update Broadcast](https://www.courier.com/docs/api-reference/broadcasts/update-broadcast.md): Update a broadcast's name. Content is edited via the broadcast's notification template, not this endpoint.
- [Archive Broadcast](https://www.courier.com/docs/api-reference/broadcasts/archive-broadcast.md): Archive a broadcast. This is a soft delete — the archived broadcast is returned and no longer appears in list results.
- [Duplicate Broadcast](https://www.courier.com/docs/api-reference/broadcasts/duplicate-broadcast.md): Duplicate a broadcast (and its template) into a new draft named "{source name} (copy)".
- [Send Broadcast](https://www.courier.com/docs/api-reference/broadcasts/send-broadcast.md): Send a broadcast immediately to a list or audience. Publishes the broadcast template first. Not allowed once the broadcast is sending or sent.
- [Schedule Broadcast](https://www.courier.com/docs/api-reference/broadcasts/schedule-broadcast.md): Schedule a broadcast for a future send to a list or audience. Publishes the broadcast template first. Not allowed once the broadcast is sending or sent. For an immediate send use POST /broadcasts/{broadcastId}/send.
- [Cancel Broadcast schedule](https://www.courier.com/docs/api-reference/broadcasts/cancel-broadcast-schedule.md): Cancel a broadcast's pending schedule, returning it to the draft state. Only valid for a scheduled broadcast.
- [Get Broadcast content](https://www.courier.com/docs/api-reference/broadcasts/get-broadcast-content.md): Retrieve the broadcast's content — the elemental content of its private notification template. Defaults to the working draft, since broadcast content is authored as a draft until the broadcast is sent.
- [Update Broadcast content](https://www.courier.com/docs/api-reference/broadcasts/update-broadcast-content.md): Author the broadcast's content by replacing the draft elemental content of its private notification template. The draft is published automatically when the broadcast is sent or scheduled.

### User Profiles

- [Get a Profile](https://www.courier.com/docs/api-reference/user-profiles/get-a-profile.md): Returns a user's stored profile and preferences, including the email address, phone number, and push tokens Courier can reach them on.
- [Replace a Profile](https://www.courier.com/docs/api-reference/user-profiles/replace-a-profile.md): Overwrites a user profile in full, removing any key absent from the request body. Use the patch endpoint when changing a single field.
- [Create a Profile](https://www.courier.com/docs/api-reference/user-profiles/create-a-profile.md): Merges the supplied values into a user's profile, creating it if absent and leaving any key you omit untouched. Prefer this for everyday writes.
- [Delete a Profile](https://www.courier.com/docs/api-reference/user-profiles/delete-a-profile.md): Deletes a user's profile and stored contact details. List subscriptions and preferences are separate resources, so remove those too if required.
- [Update a Profile](https://www.courier.com/docs/api-reference/user-profiles/update-a-profile.md): Applies a JSON Patch to a user profile, adding, removing, or replacing individual fields without sending the whole object.
- [Get List subscriptions](https://www.courier.com/docs/api-reference/user-profiles/get-list-subscriptions.md): Returns the lists a user is subscribed to, with paging. Use it to check what a recipient will receive before sending to a list.
- [Subscribe to one or more Lists](https://www.courier.com/docs/api-reference/user-profiles/subscribe-to-one-or-more-lists.md): Subscribes a user to one or more lists, creating any list that does not yet exist. Optional preferences apply to each subscription.
- [Delete List subscriptions](https://www.courier.com/docs/api-reference/user-profiles/delete-list-subscriptions.md): Removes every list subscription for a user at once. Their profile and preferences are untouched, so this only affects list-targeted sends.

### Tenants

- [Get a Tenant](https://www.courier.com/docs/api-reference/tenants/get-a-tenant.md): Returns one tenant with its name, parent tenant id, default preferences, properties, and the user profile applied to its members.
- [Create or replace a Tenant](https://www.courier.com/docs/api-reference/tenants/create-or-replace-a-tenant.md): Creates or replaces a tenant from a name, parent, brand, properties, and default preferences supplied in the request body.
- [Delete a Tenant](https://www.courier.com/docs/api-reference/tenants/delete-a-tenant.md): Deletes a tenant. Its members' workspace-level profiles and preferences live outside the tenant and are managed separately.
- [List Tenants](https://www.courier.com/docs/api-reference/tenants/list-tenants.md): Lists the workspace's tenants, each carrying a name, parent tenant, properties, and default preferences. Paged.
- [Get users in Tenant](https://www.courier.com/docs/api-reference/tenants/get-users-in-tenant.md): Returns the users belonging to a tenant with cursor paging. Use it to see who a tenant-scoped send will reach.
- [Create or replace default Preferences for Topic](https://www.courier.com/docs/api-reference/tenants/create-or-replace-default-preferences-for-topic.md): Sets a tenant's default opt-in status for one subscription topic, which applies to every member unless a user sets their own override.
- [Remove default Preferences for Topic](https://www.courier.com/docs/api-reference/tenants/remove-default-preferences-for-topic.md): Removes a tenant's default preference for one subscription topic, addressed by tenant id and topic id.

### Audiences

- [Get an Audience](https://www.courier.com/docs/api-reference/audiences/get-an-audience.md): Returns one audience with its name, description, and the filter and AND or OR operator that decide which users belong to it.
- [Update an Audience](https://www.courier.com/docs/api-reference/audiences/update-an-audience.md): Creates or replaces an audience from a filter and an AND or OR operator. Membership recalculates automatically as profiles change.
- [Delete an Audience](https://www.courier.com/docs/api-reference/audiences/delete-an-audience.md): Deletes an audience permanently, so update any caller sending to it by audience id first. Those sends fail once the audience is gone.
- [List Audience members](https://www.courier.com/docs/api-reference/audiences/list-audience-members.md): Returns the users currently matching an audience filter, with paging. Membership is recalculated, so results shift as profiles change.
- [List all Audiences](https://www.courier.com/docs/api-reference/audiences/list-all-audiences.md): Returns the audiences in the workspace with paging. Audiences are filter-based groups that recalculate as user profiles change.

### Lists

- [List Lists](https://www.courier.com/docs/api-reference/lists/list-lists.md): Returns the workspace's lists, filterable by a pattern to fetch a subset such as every regional list. Paged by cursor.
- [Get a List](https://www.courier.com/docs/api-reference/lists/get-a-list.md): Returns one list by id with its name and created and updated timestamps. Fetch its subscribers separately with the subscriptions endpoint.
- [Update a List](https://www.courier.com/docs/api-reference/lists/update-a-list.md): Creates or replaces a list from a name and preferences. Subscribers are managed through the separate subscriptions endpoints.
- [Delete a List](https://www.courier.com/docs/api-reference/lists/delete-a-list.md): Deletes a list, halting sends that target it. A previously deleted list can be brought back with the companion restore endpoint.
- [Restore a List](https://www.courier.com/docs/api-reference/lists/restore-a-list.md): Restores a previously deleted list along with its subscribers, so a list removed by mistake can be brought back rather than rebuilt.
- [List subscriptions for a List](https://www.courier.com/docs/api-reference/lists/list-subscriptions-for-a-list.md): Returns the users subscribed to a list with paging, each with the preferences recorded for that subscription.
- [Subscribe users to a List](https://www.courier.com/docs/api-reference/lists/subscribe-users-to-a-list.md): Subscribes the users to the list, overwriting existing subscriptions. If the list does not exist, it will be automatically created.
- [Add subscribers to a List](https://www.courier.com/docs/api-reference/lists/add-subscribers-to-a-list.md): Subscribes additional users to the list, without modifying existing subscriptions. If the list does not exist, it will be automatically created.
- [Subscribe a user Profile to a List](https://www.courier.com/docs/api-reference/lists/subscribe-a-user-profile-to-a-list.md): Subscribes one user to a list, creating the list if it does not yet exist. Optional preferences apply to this subscription only.
- [Unsubscribe a user Profile from a List](https://www.courier.com/docs/api-reference/lists/unsubscribe-a-user-profile-from-a-list.md): Removes one user's subscription to a list, addressed by list id and user id. The user's profile and other subscriptions are separate resources.

### Providers

- [List Providers](https://www.courier.com/docs/api-reference/providers/list-providers.md): Lists the provider integrations configured in the workspace, one entry per channel and provider key with its alias and settings.
- [Create a Provider](https://www.courier.com/docs/api-reference/providers/create-a-provider.md): Configures a provider integration from a Courier provider key and its settings. Check the catalog endpoint for the schema each provider expects.
- [List available Provider types](https://www.courier.com/docs/api-reference/providers/list-available-provider-types.md): Returns the provider types Courier supports, each with a display name, description, and the configuration fields it requires.
- [Get a Provider](https://www.courier.com/docs/api-reference/providers/get-a-provider.md): Returns one configured provider by id, including its channel, provider key, alias, title, and current settings.
- [Update a Provider](https://www.courier.com/docs/api-reference/providers/update-a-provider.md): Replaces a provider's configuration in full, clearing any field you omit rather than merging it. Send the complete settings object.
- [Delete a Provider](https://www.courier.com/docs/api-reference/providers/delete-a-provider.md): Deletes a provider configuration, which fails while routing strategies or templates still reference it. Update those references first.

### Preference Topics

- [Publish Preferences page](https://www.courier.com/docs/api-reference/preference-topics/publish-preferences-page.md): Publishes the workspace preference page, snapshotting every preference and topic, and returns the page id and a preview URL.
- [List Preference Sections](https://www.courier.com/docs/api-reference/preference-topics/list-preference-sections.md): Returns the workspace's preferences, each embedding its subscription topics, routing options, and whether custom routing is allowed.
- [Create a Preference Section](https://www.courier.com/docs/api-reference/preference-topics/create-a-preference-section.md): Creates a workspace preference and returns its generated id. Add subscription topics to it afterwards with the topics endpoint.
- [Get a Preference Section](https://www.courier.com/docs/api-reference/preference-topics/get-a-preference-section.md): Returns one workspace preference by id, including its subscription topics, routing options, and custom routing flag.
- [Replace a Preference Section](https://www.courier.com/docs/api-reference/preference-topics/replace-a-preference-section.md): Replace a workspace preference. Full document replacement; missing optional fields are cleared. Topics attached to the workspace preference are unaffected.
- [Archive a Preference Section](https://www.courier.com/docs/api-reference/preference-topics/archive-a-preference-section.md): Archive a workspace preference. The workspace preference must be empty: delete its topics first, otherwise the request fails with 409.
- [List Topics in Section](https://www.courier.com/docs/api-reference/preference-topics/list-topics-in-section.md): Returns the subscription topics inside a workspace preference, each with its default status and routing options.
- [Create Topic in Section](https://www.courier.com/docs/api-reference/preference-topics/create-topic-in-section.md): Creates a subscription topic inside a workspace preference. The default status sets whether users start opted in, opted out, or required.
- [Get Topic in Section](https://www.courier.com/docs/api-reference/preference-topics/get-topic-in-section.md): Returns one subscription topic with its default status, routing options, allowed preferences, and unsubscribe header setting.
- [Replace Topic in Section](https://www.courier.com/docs/api-reference/preference-topics/replace-topic-in-section.md): Replace a topic within a workspace preference. Full document replacement; missing optional fields are cleared. Same 404 rules as GET.
- [Archive Topic in Section](https://www.courier.com/docs/api-reference/preference-topics/archive-topic-in-section.md): Archives a subscription topic and removes it from its workspace preference, addressed by section id and topic id.

### User Preferences

- [Get user's Preferences](https://www.courier.com/docs/api-reference/user-preferences/get-users-preferences.md): Returns a user's preference overrides with paging, one entry per subscription topic they have set a choice for.
- [Replace user Preferences in bulk](https://www.courier.com/docs/api-reference/user-preferences/replace-user-preferences-in-bulk.md): Replaces a user's entire set of preference overrides. Any topic you leave out is reset to its default, so send the full set rather than a subset.
- [Update user Preferences in bulk](https://www.courier.com/docs/api-reference/user-preferences/update-user-preferences-in-bulk.md): Adds or updates a user's preferences for several subscription topics at once. Topics you leave out keep whatever they were set to before.
- [Get user Subscription Topic](https://www.courier.com/docs/api-reference/user-preferences/get-user-subscription-topic.md): Returns a user's opt-in status and channel choices for one subscription topic, or the effective default if they have set no override.
- [Update or create user Preferences for a Subscription Topic](https://www.courier.com/docs/api-reference/user-preferences/update-or-create-user-preferences-for-a-subscription-topic.md): Sets a user's opt-in status and channel choices for one subscription topic, overriding the tenant default for that topic only.
- [Delete user Subscription Topic](https://www.courier.com/docs/api-reference/user-preferences/delete-user-subscription-topic.md): Removes a user's override for one subscription topic, resetting it to the effective default from the tenant or workspace.

### Messages

- [List messages](https://www.courier.com/docs/api-reference/messages/list-messages.md): Returns previously sent messages, most recent first, each carrying its status, recipient, channel, and provider. Paged by cursor.
- [Get message](https://www.courier.com/docs/api-reference/messages/get-message.md): Returns a sent message's status, recipient, event, and per-provider delivery detail, with timestamps for enqueued, sent, delivered, opened, and clicked.
- [Cancel message](https://www.courier.com/docs/api-reference/messages/cancel-message.md): Cancels a message that is still in the delivery pipeline and returns the message record with its resulting canceled or failed status.
- [Resend message](https://www.courier.com/docs/api-reference/messages/resend-message.md): Resends a previously sent message to the same recipient and content, returning a new messageId. The original send request is not modified.
- [Get message history](https://www.courier.com/docs/api-reference/messages/get-message-history.md): Returns the ordered event history for a sent message, one entry per status transition with its timestamp.
- [Get message content](https://www.courier.com/docs/api-reference/messages/get-message-content.md): Returns the rendered content Courier delivered for a message, broken out per channel, to confirm what the recipient received.
- [Archive message](https://www.courier.com/docs/api-reference/messages/archive-message.md): Archives a send request by its request id. Use it to remove test sends or superseded requests from the message list without deleting them.

### Device Tokens

- [List tokens](https://www.courier.com/docs/api-reference/device-tokens/list-tokens.md): Returns every device token registered for a user, each with its provider key, status, and expiry date.
- [Add multiple tokens to user](https://www.courier.com/docs/api-reference/device-tokens/add-multiple-tokens-to-user.md): Registers several device tokens for a user in one call, overwriting any stored token with a matching value.
- [Get a token](https://www.courier.com/docs/api-reference/device-tokens/get-a-token.md): Returns one device token with its provider key, status and status reason, expiry date, and any properties stored alongside it.
- [Add a token to a user](https://www.courier.com/docs/api-reference/device-tokens/add-a-token-to-a-user.md): Registers one device token for a user against a provider key, overwriting the token if it already exists. Push sends resolve tokens per user.
- [Delete user token](https://www.courier.com/docs/api-reference/device-tokens/delete-user-token.md): Deletes one device token for a user, addressed by the token value, so push sends no longer target that device.
- [Update a token](https://www.courier.com/docs/api-reference/device-tokens/update-a-token.md): Applies a JSON Patch to a device token, changing its status, expiry, or properties without re-registering it.

### Tenant Memberships

- [List a user's Tenants](https://www.courier.com/docs/api-reference/tenant-memberships/list-a-users-tenants.md): Returns the tenants a user belongs to, with cursor paging. A user can belong to many tenants, each with its own profile and preferences.
- [Add a user to multiple Tenants](https://www.courier.com/docs/api-reference/tenant-memberships/add-a-user-to-multiple-tenants.md): Adds a user to several tenants in one call, each optionally with a per-tenant profile that overrides their workspace profile.
- [Remove a user from all Tenants](https://www.courier.com/docs/api-reference/tenant-memberships/remove-a-user-from-all-tenants.md): Removes a user from every tenant they belong to in one call. Their workspace-level profile is a separate resource.
- [Add a user to a Tenant](https://www.courier.com/docs/api-reference/tenant-memberships/add-a-user-to-a-tenant.md): Adds a user to one tenant, optionally with a tenant-specific profile that overrides their workspace profile for sends in that tenant.
- [Remove user from a Tenant](https://www.courier.com/docs/api-reference/tenant-memberships/remove-user-from-a-tenant.md): Removes a user from one tenant. Their other tenant memberships and workspace profile are managed through separate endpoints.

### Tenant Templates

- [Get a Template in Tenant](https://www.courier.com/docs/api-reference/tenant-templates/get-a-template-in-tenant.md): Returns a tenant's notification template with its content, version, and created, updated, and published timestamps.
- [Create or update a Tenant Template](https://www.courier.com/docs/api-reference/tenant-templates/create-or-update-a-tenant-template.md): Creates or updates a notification template scoped to one tenant, letting a tenant override the content the workspace template would send.
- [Delete a Tenant Template](https://www.courier.com/docs/api-reference/tenant-templates/delete-a-tenant-template.md): Deletes a tenant's notification template by id. Sends for that tenant then use the workspace template registered under the same id.
- [Publish a Tenant Template](https://www.courier.com/docs/api-reference/tenant-templates/publish-a-tenant-template.md): Publishes a version of a tenant's notification template, making it the content that tenant's sends render from until you publish another.
- [Get a Template version](https://www.courier.com/docs/api-reference/tenant-templates/get-a-template-version.md): Returns one version of a tenant template, addressed by version number or by latest, with its content and publish timestamp.
- [List Templates in Tenant](https://www.courier.com/docs/api-reference/tenant-templates/list-templates-in-tenant.md): Lists a tenant's notification templates, each carrying its version and published timestamp. Paged.

### Bulk

- [Create a bulk job](https://www.courier.com/docs/api-reference/bulk/create-a-bulk-job.md): Creates a new bulk job for sending messages to multiple recipients.
- [Get a job](https://www.courier.com/docs/api-reference/bulk/get-a-job.md): Returns a bulk job's message definition, its status — CREATED, PROCESSING, COMPLETED, or ERROR — and running counts of users received, messages enqueued, and failures. Poll it to follow a job through to completion.
- [Add users](https://www.courier.com/docs/api-reference/bulk/add-users.md): Ingest user data into a Bulk Job.
- [Run a job](https://www.courier.com/docs/api-reference/bulk/run-a-job.md): Starts processing a bulk job, sending to every user ingested into it. Returns 204 immediately; the job runs asynchronously, so poll the job to watch its status and counts.
- [Get users](https://www.courier.com/docs/api-reference/bulk/get-users.md): Returns the users ingested into a bulk job with paging, each carrying the status Courier recorded for it and the id of the message it produced.

### Automations

- [List Automations](https://www.courier.com/docs/api-reference/automations/list-automations.md): Lists the workspace's saved automation templates, each with its id and a cursor for paging to the next page of results.
- [Invoke an Automation](https://www.courier.com/docs/api-reference/automations/invoke-an-automation.md): Starts an automation run from a saved template for one recipient, with optional data and profile, and returns a runId.
- [Invoke an ad hoc Automation](https://www.courier.com/docs/api-reference/automations/invoke-an-ad-hoc-automation.md): Runs a series of automation steps supplied inline, without a saved template, and returns a runId.
- [List Automation runs](https://www.courier.com/docs/api-reference/automations/list-automation-runs.md): List runs of the workspace's v2 Automations, newest first, filtered by status, Template, or date range and paged by cursor. Journey (v3) runs are listed by `GET /journeys/runs` instead — the two surfaces never return each other's runs. Runs are retained for 95 days.
- [List steps for an Automation run](https://www.courier.com/docs/api-reference/automations/list-steps-for-an-automation-run.md): List the per-step state of one Automation run, in full — this endpoint is not paginated. `message_id` is present on send steps that produced a message; follow it to `GET /messages/{message_id}` for delivery status. A send to a List or an Audience yields one `message_id` for the request, not one per…

### Digests

- [Release a Digest early](https://www.courier.com/docs/api-reference/digests/release-a-digest-early.md): Send a digest now instead of waiting for its scheduled time, so your users get what they have collected so far right away.
- [List Digest instances](https://www.courier.com/docs/api-reference/digests/list-digest-instances.md): Returns the digest instances for a schedule, one per user, with cursor paging. Use it to see what has accumulated before a digest releases.

### Translations

- [Get a Translation](https://www.courier.com/docs/api-reference/translations/get-a-translation.md): Returns the translation strings stored for one domain and locale, for use in localized notification content.
- [Update Translations by locale](https://www.courier.com/docs/api-reference/translations/update-translations-by-locale.md): Uploads the translation strings for one domain and locale. Courier uses them to render localized content for recipients in that locale.

### Track Events

- [Track an event](https://www.courier.com/docs/api-reference/track-events/track-an-event.md): Records an inbound event that can trigger a journey. Requires an event name, a messageId you generate, a type, and a properties object.

### Audit Events

- [List Audit Events](https://www.courier.com/docs/api-reference/audit-events/list-audit-events.md): Returns the workspace's audit event log with cursor paging. Each event records the actor, target, source, type, and timestamp of a change.
- [Get an Audit Event](https://www.courier.com/docs/api-reference/audit-events/get-an-audit-event.md): Returns one audit event by id, including the actor who performed it, the target they changed, the source, the event type, and a timestamp.

### Authentication

- [Create a JWT](https://www.courier.com/docs/api-reference/authentication/create-a-jwt.md): Returns a JWT for authenticating client-side SDKs such as the Inbox. You supply the scope and an expires_in duration, both required.

## OpenAPI Specs

- [openapi.documented](/docs/openapi-specs/openapi.documented.yml)
