Skip to main content
POST
JavaScript

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

A unique key that makes this request idempotent. If Courier receives another request with the same Idempotency-Key, it returns the stored response from the first request without performing the operation again (including the original status code and any error). Use it to safely retry POST requests after network failures without risking duplicate sends. The key is scoped to this endpoint.

x-idempotency-expiration
string

How long the idempotency key remains valid, as a Unix epoch timestamp in seconds or an ISO 8601 date string. Only applies when Idempotency-Key is provided. If omitted, the key is retained for 25 hours; the maximum is 1 year.

Path Parameters

section_id
string
required

Id of the workspace preference to create the topic in.

Body

application/json

Request body for creating a preference topic.

name
string
required

Human-readable name for the preference topic.

default_status
enum<string>
required

The default subscription status applied when a recipient has not set their own.

Available options:
OPTED_OUT,
OPTED_IN,
REQUIRED
description
string | null

Optional description shown under the topic on the hosted preferences page.

routing_options
enum<string>[] | null

Default channels delivered for this topic. Defaults to empty if omitted.

Available options:
direct_message,
email,
push,
sms,
webhook,
inbox
allowed_preferences
enum<string>[] | null

Preference controls a recipient may customize for this topic. Defaults to empty if omitted.

A preference control a recipient may customize for a topic.

Available options:
snooze,
channel_preferences
include_unsubscribe_header
boolean | null

Whether to include a list-unsubscribe header on emails for this topic.

topic_data
object | null

Arbitrary metadata associated with the topic.

Response

Created

A subscription preference topic in your workspace.

id
string
required

The preference topic id.

name
string
required

Human-readable name.

default_status
enum<string>
required

The default subscription status applied when a recipient has not set their own.

Available options:
OPTED_OUT,
OPTED_IN,
REQUIRED
routing_options
enum<string>[]
required

Default channels delivered for this topic. May be empty.

Available options:
direct_message,
email,
push,
sms,
webhook,
inbox
allowed_preferences
enum<string>[]
required

Preference controls a recipient may customize. May be empty.

A preference control a recipient may customize for a topic.

Available options:
snooze,
channel_preferences
include_unsubscribe_header
boolean
required

Whether a list-unsubscribe header is included on emails for this topic.

topic_data
object
required

Arbitrary metadata associated with the topic.

created
string
required

ISO-8601 timestamp of when the topic was created.

updated
string
required

ISO-8601 timestamp of the last update.

description
string | null

Optional description shown under the topic on the hosted preferences page.

creator
string | null

Id of the creator.

updater
string | null

Id of the last updater.