API · Topics
List Topics
List topics for your team (requires full access).
/topicsFull accessRequest parameters
| Parameter | Type | Description |
|---|---|---|
limitquery · optional | integer1–100 Default: 20 | Number of results to return. See Pagination. |
afterquery · optional | string | Resource ID for the next page. Cannot be combined with before. See Pagination. |
beforequery · optional | string | Resource ID for the previous page. Cannot be combined with after. See Pagination. |
Request example
Set OPENSEND_BASE_URL=https://api.example.com and OPENSEND_API_KEY=os_replace_me on your server.
curl -X GET "$OPENSEND_BASE_URL/topics" \
-H "Authorization: Bearer $OPENSEND_API_KEY"Response
200 · application/json. Example IDs stand for IDs returned by your installation.
{
"object": "list",
"has_more": false,
"data": [
{
"id": "YOUR_ID",
"name": "example",
"description": "example",
"default_subscription": "opt_in",
"visibility": "public",
"created_at": "example"
}
]
}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. List responses are newest first; use has_more and cursor IDs to continue. Resource IDs belong to your team; an unknown or foreign resource returns 404. See authentication, errors, rate limits, and compatibility for the shared contract.
The SDK’s topics.list() method does not expose pagination options. The Node example uses the SDK’s generic GET method so you can follow Opensend’s paginated topic list.