Create Topic in Section
Creates a subscription topic inside a workspace preference. The default status sets whether users start opted in, opted out, or required.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
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.
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
Id of the workspace preference to create the topic in.
Body
Request body for creating a preference topic.
Human-readable name for the preference topic.
The default subscription status applied when a recipient has not set their own.
OPTED_OUT, OPTED_IN, REQUIRED Optional description shown under the topic on the hosted preferences page.
Default channels delivered for this topic. Defaults to empty if omitted.
direct_message, email, push, sms, webhook, inbox Preference controls a recipient may customize for this topic. Defaults to empty if omitted.
A preference control a recipient may customize for a topic.
snooze, channel_preferences Whether to include a list-unsubscribe header on emails for this topic.
Arbitrary metadata associated with the topic.
Batch this topic's notifications instead of delivering each one. Omit, or send null, to create the topic without one.
Response
Created
A subscription preference topic in your workspace.
The preference topic id.
Human-readable name.
The default subscription status applied when a recipient has not set their own.
OPTED_OUT, OPTED_IN, REQUIRED Default channels delivered for this topic. May be empty.
direct_message, email, push, sms, webhook, inbox Preference controls a recipient may customize. May be empty.
A preference control a recipient may customize for a topic.
snooze, channel_preferences Whether a list-unsubscribe header is included on emails for this topic.
Arbitrary metadata associated with the topic.
ISO-8601 timestamp of when the topic was created.
ISO-8601 timestamp of the last update.
Optional description shown under the topic on the hosted preferences page.
The topic's digest configuration, when one is set, and the only place a schedule's schedule_id is returned — the value the /digests/schedules/{schedule_id} endpoints are keyed by. Every read of a topic carries it, including the section and topic listings, so a digest can be located without a request per topic.
Absent rather than null on a topic with no digest, so "never configured" and "cleared" read the same way.
On a listing, absent can also mean the digest could not be read: those endpoints return the topics without their digests rather than failing outright, since listing preferences must not depend on the digest store being healthy. Read the single topic when the answer has to distinguish the two.
Id of the creator.
Id of the last updater.