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.
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
OPENGraphQL
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...
GRAPHQLPricing Plans
Rate Limits
FinOps
Courier Finops
FINOPSEvent 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, ...
ASYNCAPIResources
Sources
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