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 accessRequest parameters
| Parameter | Type | Description |
|---|---|---|
idpath · required | string | Opaque resource id. |
namebody · optional | string | null | Topic name, up to 50 characters. |
descriptionbody · optional | string | null | Topic description, up to 200 characters. |
visibilitybody · optional | "public" | "private" | null | The visibility of the topic. |
default_subscriptionbody · optional | value | See 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.