---
title: "List topics"
method: GET
path: "/v2/topics"
tags: ["Topics (group chats/channels/conversations)"]
---

# List topics

`GET /v2/topics`

## Request

- Base URL: `https://api.zenzap.co`
- URL: `https://api.zenzap.co/v2/topics`
- Auth: one of:
  - HTTP bearer and API key in header `X-Signature`
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.zenzap.co/oauth/token` scopes: `channel:list`
- TypeScript: <https://skmtc.dev/zenzap/apis/zenzap-external-integration-api/docs/v2/topics/get.ts> (a function with typed inputs; its response is checked against the schema)

Get a paginated list of all topics and direct messages where your API key bot is a member.
Results are sorted by creation date (newest first).

Pagination:
- `limit`: default `50`, max `100`
- `cursor`: opaque cursor from the previous response (`nextCursor`)

## Query parameters

- `limit` integer
- `cursor` string

## Headers

- `X-Signature` string
- `X-Timestamp` integer

## Response `200`

Topics list retrieved successfully

- TopicsListResponse
  - `topics` TopicListItem[]: Array of topic objects
    - `id` string, uuid: The topic ID
    - `name` string: The topic name (for DMs, this is the other participant's name)
    - `description` string: The topic description (empty for DMs)
    - `type` 'topic' | 'dm': The type of conversation: - `topic`: A group chat/channel with multiple members - `dm`: A direct message conversation between two members
    - `properties` string[]: Topic properties/flags: - `announcement`: An announcement channel (read-only for non-admins)
    - `members` string[]: Array of member IDs in the topic
    - `labels` string[]: Array of label IDs on the topic
    - `createdAt` integer: Unix timestamp in milliseconds when the topic was created
    - `updatedAt` integer: Unix timestamp in milliseconds when the topic was last updated
    - `externalId` string: Optional external identifier if set when creating the topic
  - `nextCursor` string: Cursor for the next page. Omitted when there are no more results.
  - `hasMore` boolean: Whether there are more topics available.

## Other responses

- `401`: Unauthorized - invalid or missing API token
- `500`: Internal server error

---

[API](https://skmtc.dev/zenzap/apis/zenzap-external-integration-api.md) - [All operations](https://skmtc.dev/zenzap/apis/zenzap-external-integration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zenzap/apis/zenzap-external-integration-api/revisions/37faae2c2036?raw)
