Skip to main content
POST
/
preferences
/
sections
/
{section_id}
/
topics
JavaScript
import Courier from '@trycourier/courier';

const client = new Courier({
  apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});

const preferenceTopicGetResponse = await client.preferenceSections.topics.create('section_id', {
  default_status: 'OPTED_OUT',
  name: 'Marketing',
});

console.log(preferenceTopicGetResponse.id);
{
  "id": "<string>",
  "name": "<string>",
  "routing_options": [],
  "allowed_preferences": [],
  "include_unsubscribe_header": true,
  "topic_data": {},
  "created": "<string>",
  "updated": "<string>",
  "creator": "<string>",
  "updater": "<string>"
}

Authorizations

Authorization
string
header
required

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

Path Parameters

section_id
string
required

Id of the preference section 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
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

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.

creator
string | null

Id of the creator.

updater
string | null

Id of the last updater.