topics
Create a subscription topic
POST /v1/topics
Auth required
api.topics.manage
Creates a new managed subscription-topic definition and writes it
through to the org's SES contact list. name is the stable, immutable
org-unique handle other calls reference the topic by. A name already in
use returns 409 conflict — including a name owned by a git-backed
topic (the repo owns that name). Definition-only: subscriber
preferences are set on the contacts surface.
Request body
Content type: application/json
{
"name": "string",
"display_name": "string",
"description": "string",
"default_subscription_status": "OPT_IN"
} Responses
201 The created topic application/json
401 Missing, malformed, or unknown API key application/problem+json
403 Key lacks the required scope or plan limit violated application/problem+json
409 The mutation is rejected by a state rule rather than a bad request — e.g.
editing a git-backed (read-only) definition. The
code is conflict.
application/problem+json 422 Query parameter or path value failed validation application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The
code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json