openapi: 3.1.0 info: title: Confluent Cloud Kafka REST API version: v3 description: >- Best-effort OpenAPI 3.1 description of a subset of the Confluent Cloud Kafka REST API (v3) and Cloud Management API as published at https://docs.confluent.io/. Authoritative, full reference lives in Confluent's per-resource API documentation; this spec covers commonly used cluster, topic, partition, consumer group, and ACL operations together with the documented HTTP Basic (API key) authentication scheme. contact: name: Confluent Documentation url: https://docs.confluent.io/ license: name: Confluent Community License / Apache 2.0 url: https://www.confluent.io/confluent-community-license/ servers: - url: https://api.confluent.cloud description: Confluent Cloud control plane - url: https://{kafka_cluster_host} description: Confluent Cloud Kafka REST endpoint for a specific cluster variables: kafka_cluster_host: default: pkc-xxxxx.region.provider.confluent.cloud description: Kafka cluster bootstrap host portion of the REST endpoint security: - basicAuth: [] - bearerAuth: [] tags: - name: Clusters - name: Topics - name: Partitions - name: Consumer Groups - name: ACLs - name: Environments - name: Service Accounts - name: API Keys paths: /kafka/v3/clusters: get: tags: [Clusters] summary: List Kafka clusters operationId: listKafkaClusters responses: '200': description: Cluster list content: application/json: schema: $ref: '#/components/schemas/ClusterList' /kafka/v3/clusters/{cluster_id}: parameters: - $ref: '#/components/parameters/ClusterId' get: tags: [Clusters] summary: Get a Kafka cluster operationId: getKafkaCluster responses: '200': description: Cluster content: application/json: schema: $ref: '#/components/schemas/Cluster' /kafka/v3/clusters/{cluster_id}/topics: parameters: - $ref: '#/components/parameters/ClusterId' get: tags: [Topics] summary: List topics in a cluster operationId: listTopics responses: '200': description: Topic list content: application/json: schema: $ref: '#/components/schemas/TopicList' post: tags: [Topics] summary: Create a topic operationId: createTopic requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TopicCreateRequest' responses: '201': description: Topic created content: application/json: schema: $ref: '#/components/schemas/Topic' /kafka/v3/clusters/{cluster_id}/topics/{topic_name}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' get: tags: [Topics] summary: Get topic metadata operationId: getTopic responses: '200': description: Topic content: application/json: schema: $ref: '#/components/schemas/Topic' delete: tags: [Topics] summary: Delete a topic operationId: deleteTopic responses: '204': description: Deleted /kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' get: tags: [Partitions] summary: List partitions for a topic operationId: listPartitions responses: '200': description: Partition list content: application/json: schema: $ref: '#/components/schemas/PartitionList' /kafka/v3/clusters/{cluster_id}/topics/{topic_name}/partitions/{partition_id}: parameters: - $ref: '#/components/parameters/ClusterId' - $ref: '#/components/parameters/TopicName' - $ref: '#/components/parameters/PartitionId' get: tags: [Partitions] summary: Get a single partition operationId: getPartition responses: '200': description: Partition content: application/json: schema: $ref: '#/components/schemas/Partition' /kafka/v3/clusters/{cluster_id}/consumer-groups: parameters: - $ref: '#/components/parameters/ClusterId' get: tags: [Consumer Groups] summary: List consumer groups operationId: listConsumerGroups responses: '200': description: Consumer group list content: application/json: schema: $ref: '#/components/schemas/ConsumerGroupList' /kafka/v3/clusters/{cluster_id}/consumer-groups/{consumer_group_id}: parameters: - $ref: '#/components/parameters/ClusterId' - name: consumer_group_id in: path required: true schema: type: string get: tags: [Consumer Groups] summary: Get a consumer group operationId: getConsumerGroup responses: '200': description: Consumer group content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' /kafka/v3/clusters/{cluster_id}/acls: parameters: - $ref: '#/components/parameters/ClusterId' get: tags: [ACLs] summary: List ACLs operationId: listAcls responses: '200': description: ACL list content: application/json: schema: $ref: '#/components/schemas/AclList' post: tags: [ACLs] summary: Create an ACL operationId: createAcl requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Acl' responses: '201': description: ACL created /org/v2/environments: get: tags: [Environments] summary: List Confluent Cloud environments operationId: listEnvironments responses: '200': description: Environment list content: application/json: schema: $ref: '#/components/schemas/EnvironmentList' post: tags: [Environments] summary: Create an environment operationId: createEnvironment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Environment' responses: '201': description: Environment created content: application/json: schema: $ref: '#/components/schemas/Environment' /iam/v2/service-accounts: get: tags: [Service Accounts] summary: List service accounts operationId: listServiceAccounts responses: '200': description: Service account list content: application/json: schema: $ref: '#/components/schemas/ServiceAccountList' post: tags: [Service Accounts] summary: Create a service account operationId: createServiceAccount requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ServiceAccount' responses: '201': description: Service account created /iam/v2/api-keys: get: tags: [API Keys] summary: List API keys operationId: listApiKeys responses: '200': description: API key list content: application/json: schema: $ref: '#/components/schemas/ApiKeyList' post: tags: [API Keys] summary: Create an API key operationId: createApiKey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ApiKey' responses: '201': description: API key created content: application/json: schema: $ref: '#/components/schemas/ApiKey' components: securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication using a Confluent Cloud API key (ID:secret) bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 bearer token (Confluent STS, external OAuth, or partner token) parameters: ClusterId: name: cluster_id in: path required: true schema: type: string TopicName: name: topic_name in: path required: true schema: type: string PartitionId: name: partition_id in: path required: true schema: type: integer schemas: Cluster: type: object properties: kind: type: string cluster_id: type: string display_name: type: string availability: type: string cloud: type: string region: type: string ClusterList: type: object properties: data: type: array items: $ref: '#/components/schemas/Cluster' Topic: type: object properties: topic_name: type: string partitions_count: type: integer replication_factor: type: integer is_internal: type: boolean TopicList: type: object properties: data: type: array items: $ref: '#/components/schemas/Topic' TopicCreateRequest: type: object required: [topic_name] properties: topic_name: type: string partitions_count: type: integer replication_factor: type: integer configs: type: array items: type: object properties: name: type: string value: type: string Partition: type: object properties: partition_id: type: integer leader: type: integer replicas: type: array items: type: integer PartitionList: type: object properties: data: type: array items: $ref: '#/components/schemas/Partition' ConsumerGroup: type: object properties: consumer_group_id: type: string state: type: string coordinator: type: integer is_simple: type: boolean ConsumerGroupList: type: object properties: data: type: array items: $ref: '#/components/schemas/ConsumerGroup' Acl: type: object properties: resource_type: type: string resource_name: type: string pattern_type: type: string principal: type: string host: type: string operation: type: string permission: type: string AclList: type: object properties: data: type: array items: $ref: '#/components/schemas/Acl' Environment: type: object properties: id: type: string display_name: type: string EnvironmentList: type: object properties: data: type: array items: $ref: '#/components/schemas/Environment' ServiceAccount: type: object properties: id: type: string display_name: type: string description: type: string ServiceAccountList: type: object properties: data: type: array items: $ref: '#/components/schemas/ServiceAccount' ApiKey: type: object properties: id: type: string spec: type: object properties: display_name: type: string description: type: string owner: type: object properties: id: type: string resource: type: object properties: id: type: string kind: type: string ApiKeyList: type: object properties: data: type: array items: $ref: '#/components/schemas/ApiKey'