Kafka REST Proxy API
The Kafka REST Proxy provides a RESTful interface to a Kafka cluster for producing and consuming messages, managing topics, partitions, consumer groups, and viewing cluster state without native Kafka clients.
The Kafka REST Proxy provides a RESTful interface to a Kafka cluster for producing and consuming messages, managing topics, partitions, consumer groups, and viewing cluster state without native Kafka clients.
openapi: 3.1.0
info:
title: Confluent Kafka REST Proxy API
description: >-
The Kafka REST Proxy provides a RESTful interface to an Apache Kafka cluster,
making it easy to produce and consume messages, view the state of the cluster,
and perform administrative actions without using the native Kafka protocol or clients.
version: 3.0.0
contact:
name: Apache Kafka
url: https://kafka.apache.org/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8082
description: Default Kafka REST Proxy
paths:
/clusters:
get:
summary: Apache kafka List Clusters
operationId: listClusters
tags:
- Cluster
responses:
'200':
description: List of Kafka clusters
content:
application/json:
schema:
type: object
properties:
kind:
type: string
metadata:
type: object
data:
type: array
items:
$ref: '#/components/schemas/Cluster'
examples:
listClusters200Example:
summary: Default listClusters 200 response
x-microcks-default: true
value:
kind: example-value
metadata: {}
data: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}:
get:
summary: Apache kafka Get Cluster
operationId: getCluster
tags:
- Cluster
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-6938
responses:
'200':
description: Cluster details
content:
application/json:
schema:
$ref: '#/components/schemas/Cluster'
examples:
getCluster200Example:
summary: Default getCluster 200 response
x-microcks-default: true
value:
kind: example-value
metadata: {}
cluster_id: item-9562
controller: {}
brokers: {}
topics: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/topics:
get:
summary: Apache kafka List Topics
operationId: listTopics
tags:
- Topic
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-8966
responses:
'200':
description: List of topics
content:
application/json:
schema:
type: object
properties:
kind:
type: string
metadata:
type: object
data:
type: array
items:
$ref: '#/components/schemas/Topic'
examples:
listTopics200Example:
summary: Default listTopics 200 response
x-microcks-default: true
value:
kind: example-value
metadata: {}
data: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Apache kafka Create Topic
operationId: createTopic
tags:
- Topic
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-1233
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTopicRequest'
examples:
createTopicRequestExample:
summary: Default createTopic request
x-microcks-default: true
value:
topic_name: example-name
partitions_count: 41
replication_factor: 98
configs: []
responses:
'201':
description: Topic created
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
examples:
createTopic201Example:
summary: Default createTopic 201 response
x-microcks-default: true
value:
kind: example-value
metadata: {}
cluster_id: item-7996
topic_name: example-name
is_internal: true
replication_factor: 37
partitions_count: 24
partitions: {}
configs: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/topics/{topic_name}:
get:
summary: Apache kafka Get Topic
operationId: getTopic
tags:
- Topic
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-8264
- name: topic_name
in: path
required: true
schema:
type: string
example: example-name
responses:
'200':
description: Topic details
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
examples:
getTopic200Example:
summary: Default getTopic 200 response
x-microcks-default: true
value:
kind: example-value
metadata: {}
cluster_id: item-5190
topic_name: example-name
is_internal: true
replication_factor: 52
partitions_count: 28
partitions: {}
configs: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: Apache kafka Delete Topic
operationId: deleteTopic
tags:
- Topic
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-9796
- name: topic_name
in: path
required: true
schema:
type: string
example: example-name
responses:
'204':
description: Topic deleted
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/topics/{topic_name}/partitions:
get:
summary: Apache kafka List Partitions
operationId: listPartitions
tags:
- Partition
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-7679
- name: topic_name
in: path
required: true
schema:
type: string
example: example-name
responses:
'200':
description: List of partitions
content:
application/json:
schema:
type: object
properties:
kind:
type: string
data:
type: array
items:
$ref: '#/components/schemas/Partition'
examples:
listPartitions200Example:
summary: Default listPartitions 200 response
x-microcks-default: true
value:
kind: example-value
data: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/consumer-groups:
get:
summary: Apache kafka List Consumer Groups
operationId: listConsumerGroups
tags:
- Consumer Group
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-6701
responses:
'200':
description: List of consumer groups
content:
application/json:
schema:
type: object
properties:
kind:
type: string
data:
type: array
items:
$ref: '#/components/schemas/ConsumerGroup'
examples:
listConsumerGroups200Example:
summary: Default listConsumerGroups 200 response
x-microcks-default: true
value:
kind: example-value
data: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/consumer-groups/{consumer_group_id}:
get:
summary: Apache kafka Get Consumer Group
operationId: getConsumerGroup
tags:
- Consumer Group
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-8506
- name: consumer_group_id
in: path
required: true
schema:
type: string
example: item-4788
responses:
'200':
description: Consumer group details
content:
application/json:
schema:
$ref: '#/components/schemas/ConsumerGroup'
examples:
getConsumerGroup200Example:
summary: Default getConsumerGroup 200 response
x-microcks-default: true
value:
kind: example-value
metadata: {}
cluster_id: item-8575
consumer_group_id: item-7715
is_simple: true
partition_assignor: example-value
state: UNKNOWN
coordinator: {}
consumers: {}
lag_summary: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/brokers:
get:
summary: Apache kafka List Brokers
operationId: listBrokers
tags:
- Broker
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-2365
responses:
'200':
description: List of brokers
content:
application/json:
schema:
type: object
properties:
kind:
type: string
data:
type: array
items:
$ref: '#/components/schemas/Broker'
examples:
listBrokers200Example:
summary: Default listBrokers 200 response
x-microcks-default: true
value:
kind: example-value
data: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/clusters/{cluster_id}/acls:
get:
summary: Apache kafka Search ACLs
operationId: searchAcls
tags:
- ACL
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-5726
- name: resource_type
in: query
schema:
type: string
enum: [UNKNOWN, ANY, TOPIC, GROUP, CLUSTER, TRANSACTIONAL_ID, DELEGATION_TOKEN]
example: UNKNOWN
- name: pattern_type
in: query
schema:
type: string
enum: [UNKNOWN, ANY, MATCH, LITERAL, PREFIXED]
example: UNKNOWN
responses:
'200':
description: List of ACLs
content:
application/json:
schema:
type: object
properties:
kind:
type: string
data:
type: array
items:
$ref: '#/components/schemas/Acl'
examples:
searchAcls200Example:
summary: Default searchAcls 200 response
x-microcks-default: true
value:
kind: example-value
data: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Apache kafka Create ACLs
operationId: createAcls
tags:
- ACL
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-7456
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAclRequest'
examples:
createAclsRequestExample:
summary: Default createAcls request
x-microcks-default: true
value:
resource_type: example-value
resource_name: example-name
pattern_type: example-value
principal: example-value
host: example-value
operation: example-value
permission: example-value
responses:
'201':
description: ACL created
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: Apache kafka Delete ACLs
operationId: deleteAcls
tags:
- ACL
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
example: item-2190
responses:
'200':
description: ACLs deleted
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/topics/{topic_name}/records:
post:
summary: Apache kafka Produce Records to a Topic
operationId: produceRecords
tags:
- Records
parameters:
- name: topic_name
in: path
required: true
schema:
type: string
example: example-name
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProduceRequest'
examples:
produceRecordsRequestExample:
summary: Default produceRecords request
x-microcks-default: true
value:
partition_id: 46
headers: []
key: {}
value: {}
responses:
'200':
description: Records produced
content:
application/json:
schema:
$ref: '#/components/schemas/ProduceResponse'
examples:
produceRecords200Example:
summary: Default produceRecords 200 response
x-microcks-default: true
value:
error_code: 17
cluster_id: item-5744
topic_name: example-name
partition_id: 25
offset: 62
timestamp: '2025-03-15T14:30:00Z'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
Cluster:
type: object
properties:
kind:
type: string
metadata:
type: object
properties:
self:
type: string
resource_name:
type: string
cluster_id:
type: string
controller:
type: object
properties:
related:
type: string
brokers:
type: object
properties:
related:
type: string
topics:
type: object
properties:
related:
type: string
Topic:
type: object
properties:
kind:
type: string
metadata:
type: object
cluster_id:
type: string
topic_name:
type: string
is_internal:
type: boolean
replication_factor:
type: integer
partitions_count:
type: integer
partitions:
type: object
properties:
related:
type: string
configs:
type: object
properties:
related:
type: string
CreateTopicRequest:
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:
kind:
type: string
metadata:
type: object
cluster_id:
type: string
topic_name:
type: string
partition_id:
type: integer
leader:
type: object
replicas:
type: array
items:
type: object
ConsumerGroup:
type: object
properties:
kind:
type: string
metadata:
type: object
cluster_id:
type: string
consumer_group_id:
type: string
is_simple:
type: boolean
partition_assignor:
type: string
state:
type: string
enum: [UNKNOWN, PREPARING_REBALANCE, COMPLETING_REBALANCE, STABLE, DEAD, EMPTY]
coordinator:
type: object
consumers:
type: object
lag_summary:
type: object
Broker:
type: object
properties:
kind:
type: string
metadata:
type: object
cluster_id:
type: string
broker_id:
type: integer
host:
type: string
port:
type: integer
Acl:
type: object
properties:
kind:
type: string
metadata:
type: object
cluster_id:
type: string
resource_type:
type: string
resource_name:
type: string
pattern_type:
type: string
principal:
type: string
host:
type: string
operation:
type: string
permission:
type: string
CreateAclRequest:
type: object
required:
- resource_type
- resource_name
- pattern_type
- principal
- host
- operation
- permission
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
ProduceRequest:
type: object
properties:
partition_id:
type: integer
headers:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
key:
type: object
properties:
type:
type: string
enum: [BINARY, JSON, AVRO, PROTOBUF, JSONSCHEMA]
data: {}
value:
type: object
properties:
type:
type: string
enum: [BINARY, JSON, AVRO, PROTOBUF, JSONSCHEMA]
data: {}
ProduceResponse:
type: object
properties:
error_code:
type: integer
cluster_id:
type: string
topic_name:
type: string
partition_id:
type: integer
offset:
type: integer
timestamp:
type: string
format: date-time