Topics
A topic is an opt-in/opt-out category a broadcast can target, so contacts unsubscribe from one topic without losing every other subscription. /topics reference.
POST
/topicsCreate a topicdefault_subscription (opt_in or opt_out) can't change after creation — a contact's own subscription override takes precedence when one exists.
Request
curl -X POST https://api.irisend.com/topics \
-H "Authorization: Bearer $IRISEND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Product updates",
"default_subscription": "opt_in",
"description": "Release notes and roadmap."
}'ResponseJSON
{ "object": "topic", "id": "2e5e8840-4584-4387-a45f-ee1189e52053" }GET
/topicsList topicsRequest
curl https://api.irisend.com/topics \
-H "Authorization: Bearer $IRISEND_API_KEY"ResponseJSON
{
"object": "list",
"has_more": false,
"data": [
{ "object": "topic", "id": "2e5e8840-4584-4387-a45f-ee1189e52053", "name": "Product updates", "default_subscription": "opt_in", "description": "Release notes and roadmap.", "created_at": "2026-09-25T09:00:12.481Z" }
]
}GET
/topics/:idRetrieve a topicRequest
curl https://api.irisend.com/topics/2e5e8840-4584-4387-a45f-ee1189e52053 \
-H "Authorization: Bearer $IRISEND_API_KEY"PATCH
/topics/:idUpdate a topicname and description only.
Request
curl -X PATCH https://api.irisend.com/topics/2e5e8840-4584-4387-a45f-ee1189e52053 \
-H "Authorization: Bearer $IRISEND_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "description": "Release notes, roadmap, and incident history." }'ResponseJSON
{ "object": "topic", "id": "2e5e8840-4584-4387-a45f-ee1189e52053", "name": "Product updates", "default_subscription": "opt_in", "description": "Release notes, roadmap, and incident history.", "created_at": "2026-09-25T09:00:12.481Z" }DELETE
/topics/:idDelete a topicRequest
curl -X DELETE https://api.irisend.com/topics/2e5e8840-4584-4387-a45f-ee1189e52053 \
-H "Authorization: Bearer $IRISEND_API_KEY"ResponseJSON
{ "object": "topic", "id": "2e5e8840-4584-4387-a45f-ee1189e52053", "deleted": true }