---
title: "POST /public/v1/clusters/{clusterName}/topics"
method: POST
path: "/public/v1/clusters/{clusterName}/topics"
tags: ["topic"]
---

# POST /public/v1/clusters/{clusterName}/topics

`POST /public/v1/clusters/{clusterName}/topics`

## Request

- Base URL: `https://developers.conduktor.io` (the document declares no server; this is the origin it was published from)
- URL: `https://developers.conduktor.io/public/v1/clusters/{clusterName}/topics`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/conduktor/apis/conduktor-console-api/docs/public/v1/clusters/:clusterName/topics/post.ts> (a function with typed inputs; its response is checked against the schema)

List topic on a kafka cluster

## Path parameters

- `clusterName` string, required

## Request body

- TopicListRequest
  - `page` integer, required: Page number, starting from 1
  - `itemsPerPage` integer, required
  - `filter` TopicListFilter[]
    - union
      - CleanupPolicyFilter
        - `oneOf` CleanupPolicy[]
        - `type` 'CleanupPolicyFilter', required
      - HideInternal
        - `type` 'HideInternal', required
      - HideStream
        - `type` 'HideStream', required
      - LabelsFilter
        - `key` string, required
        - `values` string[]
        - `type` 'LabelsFilter', required
      - TagsFilter
        - `atLeast` string[]
        - `type` 'TagsFilter', required
      - TopicNameFilter
        - `contains` string, required
        - `type` 'TopicNameFilter', required
  - `sort` 'ByName' | 'ByReplicationFactor' | 'ByNumPartition' | 'ByMessageCount' | 'ByTopicSizeByte' | 'ByCleanupPolicy' | 'ByRetentionTimes' | 'ByMinIsr' | 'ByLastActivityAt' | 'ByProduceRate', required
  - `descSort` boolean

## Response `200`

- PageTopicResponse
  - `data` TopicResponse[]
    - union
      - IndexedTopic
        - `name` string, required
        - `replicationFactor` integer, required: Number of replicas. When creating a topic, -1 means use the cluster's default.replication.factor.
        - `partitionCount` integer, required
        - `recordCount` integer, required
        - `topicSize` integer
        - `cleanupPolicy` 'delete' | 'compact' | 'compact,delete'
        - `retentionInSize` integer
        - `retentionInMs` integer
        - `minIsr` integer
        - `tags` TagInfo[]
          - `id` string, uuid, required
          - `name` string, required
          - `color` string, required
        - `labels` MapLabelKeyString, required
        - `lastActivityAt` string, date-time
        - `produceRate` number, double, required
        - `type` 'IndexedTopic', required
      - NotIndexedTopic
        - `name` string, required
        - `type` 'NotIndexedTopic', required
  - `page` integer, required
  - `totalPages` integer, required
  - `perPage` integer, required
  - `totalElements` integer, required

## Other responses

- `400`: The request is not valid
- `401`: The user is not authenticated
- `403`: The user doesn't have the required permission(s) "kafka.topics.read" to do this operation
- `404`: No cluster with this technical id exist
- `500`: An unexpected error occurred in the server

---

[API](https://skmtc.dev/conduktor/apis/conduktor-console-api.md) - [All operations](https://skmtc.dev/conduktor/apis/conduktor-console-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conduktor/apis/conduktor-console-api/revisions/24750c294805?raw)
