Skip to documentation

API · Topics

List Topics

List topics for your team (requires full access).

GET/topicsFull access

Request parameters

ParameterTypeDescription
limit
query · optional
integer
1–100
Default: 20
Number of results to return. See Pagination.
after
query · optional
stringResource ID for the next page. Cannot be combined with before. See Pagination.
before
query · optional
stringResource 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.

bash
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.

json
{
  "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.