Skip to documentation

API · Topics

Update Topic

Update a topic name, description, or visibility (requires full access). Supplying default_subscription returns 422 because the default cannot be changed.

PATCH/topics/{id}Full access

Request parameters

ParameterTypeDescription
id
path · required
stringOpaque resource id.
name
body · optional
string | nullTopic name, up to 50 characters.
description
body · optional
string | nullTopic description, up to 200 characters.
visibility
body · optional
"public" | "private" | nullThe visibility of the topic.
default_subscription
body · optional
valueSee operation behavior.

Request example

Set OPENSEND_BASE_URL=https://api.example.com and OPENSEND_API_KEY=os_replace_me on your server.

bash
curl -X PATCH "$OPENSEND_BASE_URL/topics/YOUR_id" \
  -H "Authorization: Bearer $OPENSEND_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"name":"Product updates"}'

Response

200 · application/json. Example IDs stand for IDs returned by your installation.

json
{
  "object": "topic",
  "id": "YOUR_ID"
}

Behavior and errors

At most 100 topics per team. Explicit contact preferences override defaults. The dashboard names the consent mode inversely to the API subscription value.

Use a full-access credential. Resource IDs belong to your team; an unknown or foreign resource returns 404. See authentication, errors, rate limits, and compatibility for the shared contract.