Skip to main content
PUT
/
preferences
/
sections
/
{section_id}
/
topics
/
{topic_id}
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.replace('topic_id', {
  section_id: 'section_id',
  default_status: 'OPTED_OUT',
  name: 'name',
});

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.

topic_id
string
required

Id of the subscription preference topic.

Body

application/json

Request body for replacing a preference topic. Full document replacement; missing optional fields are cleared.

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. Omit to clear.

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

Preference controls a recipient may customize. Omit to clear.

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. Omit to clear.

Response

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.