Courier website screenshot

Courier

Courier is a multi-channel notification API offering routing across email, SMS, push, chat, and in-app, with templates, preferences, and a no-code studio.

7 APIs 0 Features
NotificationsEmailSMSPushAPI

APIs

Courier Send API

Send notifications across channels with templates and routing.

Courier User Profiles API

Manage recipient profile data and channel addresses.

Courier Lists API

Manage subscription lists for broadcast notifications.

Courier Events API

Trigger notifications via mapped event types.

Courier Brands API

Configure brand themes used across templates.

Courier Authentication API

Issue JWTs for client-side and inbox authentication.

Courier Inbox Real-Time API

WebSocket service that delivers Inbox messages and message-state events (read, unread, opened, archived, clicked, mark-all-read, archive-all, archive-read) to authenticated user...

Collections

Courier

OPEN

GraphQL

Courier GraphQL API

Courier provides a native GraphQL API in addition to its REST API. The GraphQL endpoint is available at `https://api.courier.com/graphql` and supports querying and mutating noti...

GRAPHQL

Pricing Plans

Courier Plans Pricing

1 plans

PLANS

Rate Limits

Courier Rate Limits

1 limits

RATE LIMITS

FinOps

Event Specifications

Courier Inbox Real-Time API

AsyncAPI definition for Courier's Inbox WebSocket service used by the Courier client SDKs (JS, React, React Native, iOS, Android, Flutter, Web Components) to receive real-time, ...

ASYNCAPI

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Courier
items:
- info:
    name: Send
    type: folder
  items:
  - info:
      name: Send a message
      type: http
    http:
      method: POST
      url: https://api.courier.com/send
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Send a message to one or more recipients.
- info:
    name: User Profiles
    type: folder
  items:
  - info:
      name: Get a profile
      type: http
    http:
      method: GET
      url: https://api.courier.com/profiles/:user_id
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested profile.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns the specified user profile.
  - info:
      name: Create a profile
      type: http
    http:
      method: POST
      url: https://api.courier.com/profiles/:user_id
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested profile.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Merge the supplied values with an existing profile or create a new profile if one doesn't already exist.
  - info:
      name: Replace a profile
      type: http
    http:
      method: PUT
      url: https://api.courier.com/profiles/:user_id
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested user profile.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: "When using `PUT`, be sure to include all the key-value pairs required by the recipient's profile. \nAny key-value\
      \ pairs that exist in the profile but fail to be included in the `PUT` request will be \nremoved from the profile. Remember,\
      \ a `PUT` update is a full replacement of the data. For partial updates, \nuse the [Patch](https://www.courier.com/docs/reference/profiles/patch/)\
      \ request."
  - info:
      name: Update a profile
      type: http
    http:
      method: PATCH
      url: https://api.courier.com/profiles/:user_id
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested user profile.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update a profile
  - info:
      name: Delete a profile
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/profiles/:user_id
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested user profile.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes the specified user profile.
  - info:
      name: Get list subscriptions
      type: http
    http:
      method: GET
      url: https://api.courier.com/profiles/:user_id/lists
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested user profile.
      - name: cursor
        value: ''
        type: query
        description: A unique identifier that allows for fetching the next set of message statuses.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns the subscribed lists for a specified user.
  - info:
      name: Subscribe to one or more lists
      type: http
    http:
      method: POST
      url: https://api.courier.com/profiles/:user_id/lists
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested user profile.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Subscribes the given user to one or more lists. If the list does not exist, it will be created.
  - info:
      name: Delete list subscriptions
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/profiles/:user_id/lists
      params:
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the user associated with the requested profile.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Removes all list subscriptions for given user.
- info:
    name: Lists
    type: folder
  items:
  - info:
      name: Get all lists
      type: http
    http:
      method: GET
      url: https://api.courier.com/lists
      params:
      - name: cursor
        value: ''
        type: query
        description: A unique identifier that allows for fetching the next page of lists.
      - name: pattern
        value: ''
        type: query
        description: '"A pattern used to filter the list items returned. Pattern types supported: exact match on `list_id`
          or a pattern of one or more pattern parts. you may replace a part with either: `*` to match all parts in that position,
          or `**` to signify a wildcard `endsWith` pattern match."'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns all of the lists, with the ability to filter based on a pattern.
  - info:
      name: Get a list
      type: http
    http:
      method: GET
      url: https://api.courier.com/lists/:list_id
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list based on the list ID provided.
  - info:
      name: Update a list
      type: http
    http:
      method: PUT
      url: https://api.courier.com/lists/:list_id
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create or replace an existing list with the supplied values.
  - info:
      name: Delete a list
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/lists/:list_id
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete a list by list ID.
  - info:
      name: Restore a list
      type: http
    http:
      method: PUT
      url: https://api.courier.com/lists/:list_id/restore
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Restore a previously deleted list.
  - info:
      name: Get the subscriptions for a list
      type: http
    http:
      method: GET
      url: https://api.courier.com/lists/:list_id/subscriptions
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      - name: cursor
        value: ''
        type: query
        description: A unique identifier that allows for fetching the next set of list subscriptions
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get the list's subscriptions.
  - info:
      name: Add subscribers to a list
      type: http
    http:
      method: POST
      url: https://api.courier.com/lists/:list_id/subscriptions
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Subscribes additional users to the list, without modifying existing subscriptions. If the list does not exist, it
      will be automatically created.
  - info:
      name: Subscribe users to a list
      type: http
    http:
      method: PUT
      url: https://api.courier.com/lists/:list_id/subscriptions
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Subscribes the users to the list, overwriting existing subscriptions. If the list does not exist, it will be automatically
      created.
  - info:
      name: Subscribe a single user profile to a list
      type: http
    http:
      method: PUT
      url: https://api.courier.com/lists/:list_id/subscriptions/:user_id
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the recipient associated with the list
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Subscribe a user to an existing list (note: if the List does not exist, it will be automatically created).'
  - info:
      name: Unsubscribe a user profile from a list
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/lists/:list_id/subscriptions/:user_id
      params:
      - name: list_id
        value: ''
        type: path
        description: A unique identifier representing the list you wish to retrieve.
      - name: user_id
        value: ''
        type: path
        description: A unique identifier representing the recipient associated with the list
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete a subscription to a list by list ID and user ID.
- info:
    name: Audiences
    type: folder
  items:
  - info:
      name: Get an audience
      type: http
    http:
      method: GET
      url: https://api.courier.com/audiences/:audience_id
      params:
      - name: audience_id
        value: ''
        type: path
        description: A unique identifier representing the audience_id
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns the specified audience by id.
  - info:
      name: Update an audience
      type: http
    http:
      method: PUT
      url: https://api.courier.com/audiences/:audience_id
      params:
      - name: audience_id
        value: ''
        type: path
        description: A unique identifier representing the audience id
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Creates or updates audience.
  - info:
      name: Delete an audience
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/audiences/:audience_id
      params:
      - name: audience_id
        value: ''
        type: path
        description: A unique identifier representing the audience id
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes the specified audience.
  - info:
      name: List audience members
      type: http
    http:
      method: GET
      url: https://api.courier.com/audiences/:audience_id/members
      params:
      - name: audience_id
        value: ''
        type: path
        description: A unique identifier representing the audience id
      - name: cursor
        value: ''
        type: query
        description: A unique identifier that allows for fetching the next set of members
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get list of members of an audience.
  - info:
      name: List all audiences
      type: http
    http:
      method: GET
      url: https://api.courier.com/audiences
      params:
      - name: cursor
        value: ''
        type: query
        description: A unique identifier that allows for fetching the next set of audiences
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get the audiences associated with the authorization token.
- info:
    name: Sent Messages
    type: folder
  items:
  - info:
      name: List messages
      type: http
    http:
      method: GET
      url: https://api.courier.com/messages
      params:
      - name: archived
        value: ''
        type: query
        description: A boolean value that indicates whether archived messages should be included in the response.
      - name: cursor
        value: ''
        type: query
        description: A unique identifier that allows for fetching the next set of messages.
      - name: event
        value: ''
        type: query
        description: A unique identifier representing the event that was used to send the event.
      - name: list
        value: ''
        type: query
        description: A unique identifier representing the list the message was sent to.
      - name: messageId
        value: ''
        type: query
        description: A unique identifier representing the message_id returned from either /send or /send/list.
      - name: notification
        value: ''
        type: query
        description: A unique identifier representing the notification that was used to send the event.
      - name: provider
        value: ''
        type: query
        description: The key assocated to the provider you want to filter on. E.g., sendgrid, inbox, twilio, slack, msteams,
          etc. Allows multiple values to be set in query parameters.
      - name: recipient
        value: ''
        type: query
        description: A unique identifier representing the recipient associated with the requested profile.
      - name: status
        value: ''
        type: query
        description: An indicator of the current status of the message. Allows multiple values to be set in query parameters.
      - name: tag
        value: ''
        type: query
        description: A tag placed in the metadata.tags during a notification send. Allows multiple values to be set in query
          parameters.
      - name: tags
        value: ''
        type: query
        description: A comma delimited list of 'tags'. Messages will be returned if they match any of the tags passed in.
      - name: tenant_id
        value: ''
        type: query
        description: Messages sent with the context of a Tenant
      - name: enqueued_after
        value: ''
        type: query
        description: The enqueued datetime of a message to filter out messages received before.
      - name: traceId
        value: ''
        type: query
        description: The unique identifier used to trace the requests
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Fetch the statuses of messages you've previously sent.
  - info:
      name: Get message
      type: http
    http:
      method: GET
      url: https://api.courier.com/messages/:message_id
      params:
      - name: message_id
        value: ''
        type: path
        description: A unique identifier associated with the message you wish to retrieve (results from a send).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Fetch the status of a message you've previously sent.
  - info:
      name: Cancel message
      type: http
    http:
      method: POST
      url: https://api.courier.com/messages/:message_id/cancel
      params:
      - name: message_id
        value: ''
        type: path
        description: A unique identifier representing the message ID
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Cancel a message that is currently in the process of being delivered. A well-formatted API call to the cancel message
      API will return either `200` status code for a successful cancellation or `409` status code for an unsuccessful cancellation.
      Both cases will include the actual message record in the response body (see details below).
  - info:
      name: Get message history
      type: http
    http:
      method: GET
      url: https://api.courier.com/messages/:message_id/history
      params:
      - name: message_id
        value: ''
        type: path
        description: A unique identifier representing the message ID
      - name: type
        value: ''
        type: query
        description: A supported Message History type that will filter the events returned.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Fetch the array of events of a message you've previously sent.
  - info:
      name: Get message content
      type: http
    http:
      method: GET
      url: https://api.courier.com/messages/:message_id/output
      params:
      - name: message_id
        value: ''
        type: path
        description: A unique identifier associated with the message you wish to retrieve (results from a send).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get message content
  - info:
      name: Archive message
      type: http
    http:
      method: PUT
      url: https://api.courier.com/requests/:request_id/archive
      params:
      - name: request_id
        value: ''
        type: path
        description: A unique identifier representing the request ID
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Archive message
- info:
    name: Notification Templates
    type: folder
  items:
  - info:
      name: List Notification Templates
      type: http
    http:
      method: GET
      url: https://api.courier.com/notifications
      params:
      - name: cursor
        value: ''
        type: query
        description: Opaque pagination cursor from a previous response. Omit for the first page.
      - name: notes
        value: ''
        type: query
        description: Include template notes in the response. Only applies to legacy templates.
      - name: event_id
        value: ''
        type: query
        description: Filter to templates linked to this event map ID.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: List notification templates in your workspace.
  - info:
      name: Create Notification Template
      type: http
    http:
      method: POST
      url: https://api.courier.com/notifications
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a notification template. Requires all fields in the notification object. Templates are created in draft state
      by default.
  - info:
      name: Get Notification Template
      type: http
    http:
      method: GET
      url: https://api.courier.com/notifications/:id
      params:
      - name: id
        value: ''
        type: path
        description: Template ID (nt_ prefix).
      - name: version
        value: ''
        type: query
        description: Version to retrieve. One of "draft", "published", or a version string like "v001". Defaults to "published".
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Retrieve a notification template by ID. Returns the published version by default. Pass version=draft to retrieve
      an unpublished template.
  - info:
      name: Replace Notification Template
      type: http
    http:
      method: PUT
      url: https://api.courier.com/notifications/:id
      params:
      - name: id
        value: ''
        type: path
        description: Template ID (nt_ prefix).
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Replace a notification template. All fields are required.
  - info:
      name: Archive Notification Template
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/notifications/:id
      params:
      - name: id
        value: ''
        type: path
        description: Template ID (nt_ prefix).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Archive a notification template.
  - info:
      name: List Notification Template Versions
      type: http
    http:
      method: GET
      url: https://api.courier.com/notifications/:id/versions
      params:
      - name: id
        value: ''
        type: path
        description: Template ID (nt_ prefix).
      - name: cursor
        value: ''
        type: query
        description: Opaque pagination cursor from a previous response. Omit for the first page.
      - name: limit
        value: ''
        type: query
        description: Maximum number of versions to return per page. Default 10, max 10.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: List versions of a notification template.
  - info:
      name: Publish Notification Template
      type: http
    http:
      method: POST
      url: https://api.courier.com/notifications/:id/publish
      params:
      - name: id
        value: ''
        type: path
        description: Template ID (nt_ prefix).
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Publish a notification template. Publishes the current draft by default. Pass a version in the request body to publish
      a specific historical version.
  - info:
      name: Get Notification Content
      type: http
    http:
      method: GET
      url: https://api.courier.com/notifications/:id/content
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID (`nt_` prefix).
      - name: version
        value: ''
        type: query
        description: Accepts `draft`, `published`, or a version string (e.g., `v001`). Defaults to `published`.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Retrieve the content of a notification template. The response shape depends on whether the template uses V1 (blocks/channels)
      or V2 (elemental) content. Use the `version` query parameter to select draft, published, or a specific historical version.
  - info:
      name: Put Notification Content
      type: http
    http:
      method: PUT
      url: https://api.courier.com/notifications/:id/content
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID (`nt_` prefix).
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Replace the elemental content of a notification template. Overwrites all elements in the template with the provided
      content. Only supported for V2 (elemental) templates.
  - info:
      name: Put Notification Element
      type: http
    http:
      method: PUT
      url: https://api.courier.com/notifications/:id/elements/:elementId
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID (`nt_` prefix).
      - name: elementId
        value: ''
        type: path
        description: Element ID within the template.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update a single element within a notification template. Only supported for V2 (elemental) templates.
  - info:
      name: Put Notification Locale
      type: http
    http:
      method: PUT
      url: https://api.courier.com/notifications/:id/locales/:localeId
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID (`nt_` prefix).
      - name: localeId
        value: ''
        type: path
        description: Locale code (e.g., `es`, `fr`, `pt-BR`).
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Set locale-specific content overrides for a notification template. Each element override must reference an existing
      element by ID. Only supported for V2 (elemental) templates.
  - info:
      name: Get Submission Checks
      type: http
    http:
      method: GET
      url: https://api.courier.com/notifications/:id/:submissionId/checks
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID.
      - name: submissionId
        value: ''
        type: path
        description: Submission ID.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Retrieve the checks for a notification template submission.
  - info:
      name: Replace Submission Checks
      type: http
    http:
      method: PUT
      url: https://api.courier.com/notifications/:id/:submissionId/checks
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID.
      - name: submissionId
        value: ''
        type: path
        description: Submission ID.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Replace the checks for a notification template submission.
  - info:
      name: Cancel Submission
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/notifications/:id/:submissionId/checks
      params:
      - name: id
        value: ''
        type: path
        description: Notification template ID.
      - name: submissionId
        value: ''
        type: path
        description: Submission ID.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Cancel a notification template submission.
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Create a JWT
      type: http
    http:
      method: POST
      url: https://api.courier.com/auth/issue-token
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a new access token.
- info:
    name: Tenants
    type: folder
  items:
  - info:
      name: Get a Tenant
      type: http
    http:
      method: GET
      url: https://api.courier.com/tenants/:tenant_id
      params:
      - name: tenant_id
        value: ''
        type: path
        description: A unique identifier representing the tenant to be returned.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get a Tenant
  - info:
      name: Create or Replace a Tenant
      type: http
    http:
      method: PUT
      url: https://api.courier.com/tenants/:tenant_id
      params:
      - name: tenant_id
        value: ''
        type: path
        description: A unique identifier representing the tenant to be returned.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create or Replace a Tenant
  - info:
      name: Delete a Tenant
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/tenants/:tenant_id
      params:
      - name: tenant_id
        value: ''
        type: path
        description: Id of the tenant to be deleted.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete a Tenant
  - info:
      name: Get a List of Tenants
      type: http
    http:
      method: GET
      url: https://api.courier.com/tenants
      params:
      - name: parent_tenant_id
        value: ''
        type: query
        description: Filter the list of tenants by parent_id
      - name: limit
        value: ''
        type: query
        description: "The number of tenants to return \n(defaults to 20, maximum value of 100)"
      - name: cursor
        value: ''
        type: query
        description: Continue the pagination with the next cursor
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get a List of Tenants
  - info:
      name: Get Users in Tenant
      type: http
    http:
      method: GET
      url: https://api.courier.com/tenants/:tenant_id/users
      params:
      - name: tenant_id
        value: ''
        type: path
        description: Id of the tenant for user membership.
      - name: limit
        value: ''
        type: query
        description: "The number of accounts to return \n(defaults to 20, maximum value of 100)"
      - name: cursor
        value: ''
        type: query
        description: Continue the pagination with the next cursor
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get Users in Tenant
  - info:
      name: Create or Replace Default Preferences For Topic
      type: http
    http:
      method: PUT
      url: https://api.courier.com/tenants/:tenant_id/default_preferences/items/:topic_id
      params:
      - name: tenant_id
        value: ''
        type: path
        description: Id of the tenant to update the default preferences for.
      - name: topic_id
        value: ''
        type: path
        description: Id of the subscription topic you want to have a default preference for.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create or Replace Default Preferences For Topic
  - info:
      name: Remove Default Preferences For Topic
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/tenants/:tenant_id/default_preferences/items/:topic_id
      params:
      - name: tenant_id
        value: ''
        type: path
        description: Id of the tenant to update the default preferences for.
      - name: topic_id
        value: ''
        type: path
        description: Id of the subscription topic you want to have a default preference for.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Remove Default Preferences For Topic
- info:
    name: User Tenants
    type: folder
  items:
  - info:
      name: Get tenants associated with a given user
      type: http
    http:
      method: GET
      url: https://api.courier.com/users/:user_id/tenants
      params:
      - name: user_id
        value: ''
        type: path
        description: Id of the user to retrieve all associated tenants for.
      - name: limit
        value: ''
        type: query
        description: "The number of accounts to return \n(defaults to 20, maximum value of 100)"
      - name: cursor
        value: ''
        type: query
        description: Continue the pagination with the next cursor
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a paginated list of user tenant associations.
  - info:
      name: Add a User to Multiple Tenants
      type: http
    http:
      method: PUT
      url: https://api.courier.com/users/:user_id/tenants
      params:
      - name: user_id
        value: ''
        type: path
        description: The user's ID. This can be any uniquely identifiable string.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: "This endpoint is used to add a user to\nmultiple tenants in one call.\nA custom profile can also be supplied for\
      \ each tenant. \nThis profile will be merged with the user's main \nprofile when sending to the user with that tenant."
  - info:
      name: Remove User From All Associated Tenants
      type: http
    http:
      method: DELETE
      url: https://api.courier.com/users/:user_id/tenants
      params:
      - name: user_id
        value: ''
        type: path
        description: Id of the user to be removed from the supplied tenant.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Removes a user from any tenants they may have been associated with.
  - info:
      name: Add a User to a Single Tenant
      type: http
    http:
      method: PUT
      url: https://api.courier.com/users/:user_id/tenants/:tenant_id
      params:
      - name: user_id
        value: ''
        type: path
        description: Id of the user to be added to the supplied

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/courier/refs/heads/main/apis.yml