Chapter 4. AMQ Streams Kafka Bridge API Reference 4.1. Overview The AMQ Streams Kafka Bridge provides a REST API for integrating HTTP based client applications with a Kafka cluster. You can use the API to create and manage consumers and send and receive records over HTTP rather than the native Kafka protocol. 4.1.1. Version information Version : 0.1.0 4.1.2. Tags Consumers : Consumer operations to create consumers in your Kafka cluster and perform common actions, such as subscribing to topics, retrieving processed records, and committing offsets. Producer : Producer operations to send records to a specified topic or topic partition. Seek : Seek operations that enable a consumer to begin receiving messages from a given offset position. Topics : Topic operations to send messages to a specified topic or topic partition, optionally including message keys in requests. You can also retrieve topics and topic metadata. 4.1.3. Consumes application/json 4.1.4. Produces application/json 4.2. Definitions 4.2.1. AssignedTopicPartitions Type : < string, < integer (int32) > array > map 4.2.2. BridgeInfo Information about Kafka Bridge instance. Name Schema bridge_version optional string 4.2.3. Consumer Name Description Schema auto.offset.reset optional Resets the offset position for the consumer. If set to latest (default), messages are read from the latest offset. If set to earliest , messages are read from the first offset. string consumer.request.timeout.ms optional Sets the maximum amount of time, in milliseconds, for the consumer to wait for messages for a request. If the timeout period is reached without a response, an error is returned. Default is 30000 (30 seconds). integer enable.auto.commit optional If set to true (default), message offsets are committed automatically for the consumer. If set to false , message offsets must be committed manually. boolean fetch.min.bytes optional Sets the minimum amount of data, in bytes, for the consumer to receive. The broker waits until the data to send exceeds this amount. Default is 1 byte. integer format optional The allowable message format for the consumer, which can be binary (default) or json . The messages are converted into a JSON format. string isolation.level optional If set to read_uncommitted (default), all transaction records are retrieved, indpendent of any transaction outcome. If set to read_committed , the records from committed transactions are retrieved. string name optional The unique name for the consumer instance. The name is unique within the scope of the consumer group. The name is used in URLs. If a name is not specified, a randomly generated name is assigned. string 4.2.4. ConsumerRecord Name Schema headers optional KafkaHeaderList offset optional integer (int64) partition optional integer (int32) topic optional string 4.2.5. ConsumerRecordList Type : < ConsumerRecord > array 4.2.6. CreatedConsumer Name Description Schema base_uri optional Base URI used to construct URIs for subsequent requests against this consumer instance. string instance_id optional Unique ID for the consumer instance in the group. string 4.2.7. Error Name Schema error_code optional integer (int32) message optional string 4.2.8. KafkaHeader Name Description Schema key required string value required The header value in binary format, base64-encoded Pattern : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?USD" string (byte) 4.2.9. KafkaHeaderList Type : < KafkaHeader > array 4.2.10. OffsetCommitSeek Name Schema offset required integer (int64) partition required integer (int32) topic required string 4.2.11. OffsetCommitSeekList Name Schema offsets optional < OffsetCommitSeek > array 4.2.12. OffsetRecordSent Name Schema offset optional integer (int64) partition optional integer (int32) 4.2.13. OffsetRecordSentList Name Schema offsets optional < OffsetRecordSent > array 4.2.14. OffsetsSummary Name Schema beginning_offset optional integer (int64) end_offset optional integer (int64) 4.2.15. Partition Name Schema partition optional integer (int32) topic optional string 4.2.16. PartitionMetadata Name Schema leader optional integer (int32) partition optional integer (int32) replicas optional < Replica > array 4.2.17. Partitions Name Schema partitions optional < Partition > array 4.2.18. ProducerRecord Name Schema headers optional KafkaHeaderList partition optional integer (int32) 4.2.19. ProducerRecordList Name Schema records optional < ProducerRecord > array 4.2.20. ProducerRecordToPartition Name Schema headers optional KafkaHeaderList 4.2.21. ProducerRecordToPartitionList Name Schema records optional < ProducerRecordToPartition > array 4.2.22. Replica Name Schema broker optional integer (int32) in_sync optional boolean leader optional boolean 4.2.23. SubscribedTopicList Name Schema partitions optional < AssignedTopicPartitions > array topics optional Topics 4.2.24. TopicMetadata Name Description Schema configs optional Per-topic configuration overrides < string, string > map name optional Name of the topic string partitions optional < PartitionMetadata > array 4.2.25. Topics Name Description Schema topic_pattern optional A regex topic pattern for matching multiple topics string topics optional < string > array 4.3. Paths 4.3.1. GET / 4.3.1.1. Description Retrieves information about the Kafka Bridge instance, in JSON format. 4.3.1.2. Responses HTTP Code Description Schema 200 Information about Kafka Bridge instance. BridgeInfo 4.3.1.3. Produces application/json 4.3.1.4. Example HTTP response 4.3.1.4.1. Response 200 { "bridge_version" : "0.16.0" } 4.3.2. POST /consumers/{groupid} 4.3.2.1. Description Creates a consumer instance in the given consumer group. You can optionally specify a consumer name and supported configuration options. It returns a base URI which must be used to construct URLs for subsequent requests against this consumer instance. 4.3.2.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group in which to create the consumer. string Body body required Name and configuration of the consumer. The name is unique within the scope of the consumer group. If a name is not specified, a randomly generated name is assigned. All parameters are optional. The supported configuration options are shown in the following example. Consumer 4.3.2.3. Responses HTTP Code Description Schema 200 Consumer created successfully. CreatedConsumer 409 A consumer instance with the specified name already exists in the Kafka Bridge. Error 422 One or more consumer configuration options have invalid values. Error 4.3.2.4. Consumes application/vnd.kafka.v2+json 4.3.2.5. Produces application/vnd.kafka.v2+json 4.3.2.6. Tags Consumers 4.3.2.7. Example HTTP request 4.3.2.7.1. Request body { "name" : "consumer1", "format" : "binary", "auto.offset.reset" : "earliest", "enable.auto.commit" : false, "fetch.min.bytes" : 512, "consumer.request.timeout.ms" : 30000, "isolation.level" : "read_committed" } 4.3.2.8. Example HTTP response 4.3.2.8.1. Response 200 { "instance_id" : "consumer1", "base_uri" : "http://localhost:8080/consumers/my-group/instances/consumer1" } 4.3.2.8.2. Response 409 { "error_code" : 409, "message" : "A consumer instance with the specified name already exists in the Kafka Bridge." } 4.3.2.8.3. Response 422 { "error_code" : 422, "message" : "One or more consumer configuration options have invalid values." } 4.3.3. DELETE /consumers/{groupid}/instances/{name} 4.3.3.1. Description Deletes a specified consumer instance. The request for this operation MUST use the base URL (including the host and port) returned in the response from the POST request to /consumers/{groupid} that was used to create this consumer. 4.3.3.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the consumer belongs. string Path name required Name of the consumer to delete. string 4.3.3.3. Responses HTTP Code Description Schema 204 Consumer removed successfully. No Content 404 The specified consumer instance was not found. Error 4.3.3.4. Consumes application/vnd.kafka.v2+json 4.3.3.5. Produces application/vnd.kafka.v2+json 4.3.3.6. Tags Consumers 4.3.3.7. Example HTTP response 4.3.3.7.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.4. POST /consumers/{groupid}/instances/{name}/assignments 4.3.4.1. Description Assigns one or more topic partitions to a consumer. 4.3.4.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the consumer belongs. string Path name required Name of the consumer to assign topic partitions to. string Body body required List of topic partitions to assign to the consumer. Partitions 4.3.4.3. Responses HTTP Code Description Schema 204 Partitions assigned successfully. No Content 404 The specified consumer instance was not found. Error 409 Subscriptions to topics, partitions, and patterns are mutually exclusive. Error 4.3.4.4. Consumes application/vnd.kafka.v2+json 4.3.4.5. Produces application/vnd.kafka.v2+json 4.3.4.6. Tags Consumers 4.3.4.7. Example HTTP request 4.3.4.7.1. Request body { "partitions" : [ { "topic" : "topic", "partition" : 0 }, { "topic" : "topic", "partition" : 1 } ] } 4.3.4.8. Example HTTP response 4.3.4.8.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.4.8.2. Response 409 { "error_code" : 409, "message" : "Subscriptions to topics, partitions, and patterns are mutually exclusive." } 4.3.5. POST /consumers/{groupid}/instances/{name}/offsets 4.3.5.1. Description Commits a list of consumer offsets. To commit offsets for all records fetched by the consumer, leave the request body empty. 4.3.5.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the consumer belongs. string Path name required Name of the consumer. string Body body optional List of consumer offsets to commit to the consumer offsets commit log. You can specify one or more topic partitions to commit offsets for. OffsetCommitSeekList 4.3.5.3. Responses HTTP Code Description Schema 204 Commit made successfully. No Content 404 The specified consumer instance was not found. Error 4.3.5.4. Consumes application/vnd.kafka.v2+json 4.3.5.5. Produces application/vnd.kafka.v2+json 4.3.5.6. Tags Consumers 4.3.5.7. Example HTTP request 4.3.5.7.1. Request body { "offsets" : [ { "topic" : "topic", "partition" : 0, "offset" : 15 }, { "topic" : "topic", "partition" : 1, "offset" : 42 } ] } 4.3.5.8. Example HTTP response 4.3.5.8.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.6. POST /consumers/{groupid}/instances/{name}/positions 4.3.6.1. Description Configures a subscribed consumer to fetch offsets from a particular offset the time it fetches a set of records from a given topic partition. This overrides the default fetch behavior for consumers. You can specify one or more topic partitions. 4.3.6.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the consumer belongs. string Path name required Name of the subscribed consumer. string Body body required List of partition offsets from which the subscribed consumer will fetch records. OffsetCommitSeekList 4.3.6.3. Responses HTTP Code Description Schema 204 Seek performed successfully. No Content 404 The specified consumer instance was not found, or the specified consumer instance did not have one of the specified partitions assigned. Error 4.3.6.4. Consumes application/vnd.kafka.v2+json 4.3.6.5. Produces application/vnd.kafka.v2+json 4.3.6.6. Tags Consumers Seek 4.3.6.7. Example HTTP request 4.3.6.7.1. Request body { "offsets" : [ { "topic" : "topic", "partition" : 0, "offset" : 15 }, { "topic" : "topic", "partition" : 1, "offset" : 42 } ] } 4.3.6.8. Example HTTP response 4.3.6.8.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.7. POST /consumers/{groupid}/instances/{name}/positions/beginning 4.3.7.1. Description Configures a subscribed consumer to seek (and subsequently read from) the first offset in one or more given topic partitions. 4.3.7.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the subscribed consumer belongs. string Path name required Name of the subscribed consumer. string Body body required List of topic partitions to which the consumer is subscribed. The consumer will seek the first offset in the specified partitions. Partitions 4.3.7.3. Responses HTTP Code Description Schema 204 Seek to the beginning performed successfully. No Content 404 The specified consumer instance was not found, or the specified consumer instance did not have one of the specified partitions assigned. Error 4.3.7.4. Consumes application/vnd.kafka.v2+json 4.3.7.5. Produces application/vnd.kafka.v2+json 4.3.7.6. Tags Consumers Seek 4.3.7.7. Example HTTP request 4.3.7.7.1. Request body { "partitions" : [ { "topic" : "topic", "partition" : 0 }, { "topic" : "topic", "partition" : 1 } ] } 4.3.7.8. Example HTTP response 4.3.7.8.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.8. POST /consumers/{groupid}/instances/{name}/positions/end 4.3.8.1. Description Configures a subscribed consumer to seek (and subsequently read from) the offset at the end of one or more of the given topic partitions. 4.3.8.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the subscribed consumer belongs. string Path name required Name of the subscribed consumer. string Body body optional List of topic partitions to which the consumer is subscribed. The consumer will seek the last offset in the specified partitions. Partitions 4.3.8.3. Responses HTTP Code Description Schema 204 Seek to the end performed successfully. No Content 404 The specified consumer instance was not found, or the specified consumer instance did not have one of the specified partitions assigned. Error 4.3.8.4. Consumes application/vnd.kafka.v2+json 4.3.8.5. Produces application/vnd.kafka.v2+json 4.3.8.6. Tags Consumers Seek 4.3.8.7. Example HTTP request 4.3.8.7.1. Request body { "partitions" : [ { "topic" : "topic", "partition" : 0 }, { "topic" : "topic", "partition" : 1 } ] } 4.3.8.8. Example HTTP response 4.3.8.8.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.9. GET /consumers/{groupid}/instances/{name}/records 4.3.9.1. Description Retrieves records for a subscribed consumer, including message values, topics, and partitions. The request for this operation MUST use the base URL (including the host and port) returned in the response from the POST request to /consumers/{groupid} that was used to create this consumer. 4.3.9.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the subscribed consumer belongs. string Path name required Name of the subscribed consumer to retrieve records from. string Query max_bytes optional The maximum size, in bytes, of unencoded keys and values that can be included in the response. Otherwise, an error response with code 422 is returned. integer Query timeout optional The maximum amount of time, in milliseconds, that the HTTP Bridge spends retrieving records before timing out the request. integer 4.3.9.3. Responses HTTP Code Description Schema 200 Poll request executed successfully. ConsumerRecordList 404 The specified consumer instance was not found. Error 406 The format used in the consumer creation request does not match the embedded format in the Accept header of this request or the bridge got a message from the topic which is not JSON encoded. Error 422 Response exceeds the maximum number of bytes the consumer can receive Error 4.3.9.4. Produces application/vnd.kafka.json.v2+json application/vnd.kafka.binary.v2+json application/vnd.kafka.v2+json 4.3.9.5. Tags Consumers 4.3.9.6. Example HTTP response 4.3.9.6.1. Response 200 [ { "topic" : "topic", "key" : "key1", "value" : { "foo" : "bar" }, "partition" : 0, "offset" : 2 }, { "topic" : "topic", "key" : "key2", "value" : [ "foo2", "bar2" ], "partition" : 1, "offset" : 3 } ] [ { "topic": "test", "key": "a2V5", "value": "Y29uZmx1ZW50", "partition": 1, "offset": 100, }, { "topic": "test", "key": "a2V5", "value": "a2Fma2E=", "partition": 2, "offset": 101, } ] 4.3.9.6.2. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.9.6.3. Response 406 { "error_code" : 406, "message" : "The `format` used in the consumer creation request does not match the embedded format in the Accept header of this request." } 4.3.9.6.4. Response 422 { "error_code" : 422, "message" : "Response exceeds the maximum number of bytes the consumer can receive" } 4.3.10. POST /consumers/{groupid}/instances/{name}/subscription 4.3.10.1. Description Subscribes a consumer to one or more topics. You can describe the topics to which the consumer will subscribe in a list (of Topics type) or as a topic_pattern field. Each call replaces the subscriptions for the subscriber. 4.3.10.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the subscribed consumer belongs. string Path name required Name of the consumer to subscribe to topics. string Body body required List of topics to which the consumer will subscribe. Topics 4.3.10.3. Responses HTTP Code Description Schema 204 Consumer subscribed successfully. No Content 404 The specified consumer instance was not found. Error 409 Subscriptions to topics, partitions, and patterns are mutually exclusive. Error 422 A list (of Topics type) or a topic_pattern must be specified. Error 4.3.10.4. Consumes application/vnd.kafka.v2+json 4.3.10.5. Produces application/vnd.kafka.v2+json 4.3.10.6. Tags Consumers 4.3.10.7. Example HTTP request 4.3.10.7.1. Request body { "topics" : [ "topic1", "topic2" ] } 4.3.10.8. Example HTTP response 4.3.10.8.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.10.8.2. Response 409 { "error_code" : 409, "message" : "Subscriptions to topics, partitions, and patterns are mutually exclusive." } 4.3.10.8.3. Response 422 { "error_code" : 422, "message" : "A list (of Topics type) or a topic_pattern must be specified." } 4.3.11. GET /consumers/{groupid}/instances/{name}/subscription 4.3.11.1. Description Retrieves a list of the topics to which the consumer is subscribed. 4.3.11.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the subscribed consumer belongs. string Path name required Name of the subscribed consumer. string 4.3.11.3. Responses HTTP Code Description Schema 200 List of subscribed topics and partitions. SubscribedTopicList 404 The specified consumer instance was not found. Error 4.3.11.4. Produces application/vnd.kafka.v2+json 4.3.11.5. Tags Consumers 4.3.11.6. Example HTTP response 4.3.11.6.1. Response 200 { "topics" : [ "my-topic1", "my-topic2" ], "partitions" : [ { "my-topic1" : [ 1, 2, 3 ] }, { "my-topic2" : [ 1 ] } ] } 4.3.11.6.2. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.12. DELETE /consumers/{groupid}/instances/{name}/subscription 4.3.12.1. Description Unsubscribes a consumer from all topics. 4.3.12.2. Parameters Type Name Description Schema Path groupid required ID of the consumer group to which the subscribed consumer belongs. string Path name required Name of the consumer to unsubscribe from topics. string 4.3.12.3. Responses HTTP Code Description Schema 204 Consumer unsubscribed successfully. No Content 404 The specified consumer instance was not found. Error 4.3.12.4. Tags Consumers 4.3.12.5. Example HTTP response 4.3.12.5.1. Response 404 { "error_code" : 404, "message" : "The specified consumer instance was not found." } 4.3.13. GET /healthy 4.3.13.1. Description Check if the bridge is running. This does not necessarily imply that it is ready to accept requests. 4.3.13.2. Responses HTTP Code Description Schema 204 The bridge is healthy No Content 500 The bridge is not healthy No Content 4.3.14. GET /metrics 4.3.14.1. Description Retrieves the bridge metrics in Prometheus format. 4.3.14.2. Responses HTTP Code Description Schema 200 Metrics in Prometheus format retrieved successfully. string 4.3.14.3. Produces text/plain 4.3.15. GET /openapi 4.3.15.1. Description Retrieves the OpenAPI v2 specification in JSON format. 4.3.15.2. Responses HTTP Code Description Schema 204 OpenAPI v2 specification in JSON format retrieved successfully. string 4.3.15.3. Produces application/json 4.3.16. GET /ready 4.3.16.1. Description Check if the bridge is ready and can accept requests. 4.3.16.2. Responses HTTP Code Description Schema 204 The bridge is ready No Content 500 The bridge is not ready No Content 4.3.17. GET /topics 4.3.17.1. Description Retrieves a list of all topics. 4.3.17.2. Responses HTTP Code Description Schema 200 List of topics. < string > array 4.3.17.3. Produces application/vnd.kafka.v2+json 4.3.17.4. Tags Topics 4.3.17.5. Example HTTP response 4.3.17.5.1. Response 200 [ "topic1", "topic2" ] 4.3.18. POST /topics/{topicname} 4.3.18.1. Description Sends one or more records to a given topic, optionally specifying a partition, key, or both. 4.3.18.2. Parameters Type Name Description Schema Path topicname required Name of the topic to send records to or retrieve metadata from. string Query async optional Whether to return immediately upon sending records, instead of waiting for metadata. No offsets will be returned if specified. Defaults to false. boolean Body body required ProducerRecordList 4.3.18.3. Responses HTTP Code Description Schema 200 Records sent successfully. OffsetRecordSentList 404 The specified topic was not found. Error 422 The record list is not valid. Error 4.3.18.4. Consumes application/vnd.kafka.json.v2+json application/vnd.kafka.binary.v2+json 4.3.18.5. Produces application/vnd.kafka.v2+json 4.3.18.6. Tags Producer Topics 4.3.18.7. Example HTTP request 4.3.18.7.1. Request body { "records" : [ { "key" : "key1", "value" : "value1" }, { "value" : "value2", "partition" : 1 }, { "value" : "value3" } ] } 4.3.18.8. Example HTTP response 4.3.18.8.1. Response 200 { "offsets" : [ { "partition" : 2, "offset" : 0 }, { "partition" : 1, "offset" : 1 }, { "partition" : 2, "offset" : 2 } ] } 4.3.18.8.2. Response 404 { "error_code" : 404, "message" : "The specified topic was not found." } 4.3.18.8.3. Response 422 { "error_code" : 422, "message" : "The record list contains invalid records." } 4.3.19. GET /topics/{topicname} 4.3.19.1. Description Retrieves the metadata about a given topic. 4.3.19.2. Parameters Type Name Description Schema Path topicname required Name of the topic to send records to or retrieve metadata from. string 4.3.19.3. Responses HTTP Code Description Schema 200 Topic metadata TopicMetadata 4.3.19.4. Produces application/vnd.kafka.v2+json 4.3.19.5. Tags Topics 4.3.19.6. Example HTTP response 4.3.19.6.1. Response 200 { "name" : "topic", "offset" : 2, "configs" : { "cleanup.policy" : "compact" }, "partitions" : [ { "partition" : 1, "leader" : 1, "replicas" : [ { "broker" : 1, "leader" : true, "in_sync" : true }, { "broker" : 2, "leader" : false, "in_sync" : true } ] }, { "partition" : 2, "leader" : 2, "replicas" : [ { "broker" : 1, "leader" : false, "in_sync" : true }, { "broker" : 2, "leader" : true, "in_sync" : true } ] } ] } 4.3.20. GET /topics/{topicname}/partitions 4.3.20.1. Description Retrieves a list of partitions for the topic. 4.3.20.2. Parameters Type Name Description Schema Path topicname required Name of the topic to send records to or retrieve metadata from. string 4.3.20.3. Responses HTTP Code Description Schema 200 List of partitions < PartitionMetadata > array 404 The specified topic was not found. Error 4.3.20.4. Produces application/vnd.kafka.v2+json 4.3.20.5. Tags Topics 4.3.20.6. Example HTTP response 4.3.20.6.1. Response 200 [ { "partition" : 1, "leader" : 1, "replicas" : [ { "broker" : 1, "leader" : true, "in_sync" : true }, { "broker" : 2, "leader" : false, "in_sync" : true } ] }, { "partition" : 2, "leader" : 2, "replicas" : [ { "broker" : 1, "leader" : false, "in_sync" : true }, { "broker" : 2, "leader" : true, "in_sync" : true } ] } ] 4.3.20.6.2. Response 404 { "error_code" : 404, "message" : "The specified topic was not found." } 4.3.21. POST /topics/{topicname}/partitions/{partitionid} 4.3.21.1. Description Sends one or more records to a given topic partition, optionally specifying a key. 4.3.21.2. Parameters Type Name Description Schema Path partitionid required ID of the partition to send records to or retrieve metadata from. integer Path topicname required Name of the topic to send records to or retrieve metadata from. string Query async optional Whether to return immediately upon sending records, instead of waiting for metadata. No offsets will be returned if specified. Defaults to false. boolean Body body required List of records to send to a given topic partition, including a value (required) and a key (optional). ProducerRecordToPartitionList 4.3.21.3. Responses HTTP Code Description Schema 200 Records sent successfully. OffsetRecordSentList 404 The specified topic partition was not found. Error 422 The record is not valid. Error 4.3.21.4. Consumes application/vnd.kafka.json.v2+json application/vnd.kafka.binary.v2+json 4.3.21.5. Produces application/vnd.kafka.v2+json 4.3.21.6. Tags Producer Topics 4.3.21.7. Example HTTP request 4.3.21.7.1. Request body { "records" : [ { "key" : "key1", "value" : "value1" }, { "value" : "value2" } ] } 4.3.21.8. Example HTTP response 4.3.21.8.1. Response 200 { "offsets" : [ { "partition" : 2, "offset" : 0 }, { "partition" : 1, "offset" : 1 }, { "partition" : 2, "offset" : 2 } ] } 4.3.21.8.2. Response 404 { "error_code" : 404, "message" : "The specified topic partition was not found." } 4.3.21.8.3. Response 422 { "error_code" : 422, "message" : "The record is not valid." } 4.3.22. GET /topics/{topicname}/partitions/{partitionid} 4.3.22.1. Description Retrieves partition metadata for the topic partition. 4.3.22.2. Parameters Type Name Description Schema Path partitionid required ID of the partition to send records to or retrieve metadata from. integer Path topicname required Name of the topic to send records to or retrieve metadata from. string 4.3.22.3. Responses HTTP Code Description Schema 200 Partition metadata PartitionMetadata 404 The specified topic partition was not found. Error 4.3.22.4. Produces application/vnd.kafka.v2+json 4.3.22.5. Tags Topics 4.3.22.6. Example HTTP response 4.3.22.6.1. Response 200 { "partition" : 1, "leader" : 1, "replicas" : [ { "broker" : 1, "leader" : true, "in_sync" : true }, { "broker" : 2, "leader" : false, "in_sync" : true } ] } 4.3.22.6.2. Response 404 { "error_code" : 404, "message" : "The specified topic partition was not found." } 4.3.23. GET /topics/{topicname}/partitions/{partitionid}/offsets 4.3.23.1. Description Retrieves a summary of the offsets for the topic partition. 4.3.23.2. Parameters Type Name Description Schema Path partitionid required ID of the partition. integer Path topicname required Name of the topic containing the partition. string 4.3.23.3. Responses HTTP Code Description Schema 200 A summary of the offsets for the topic partition. OffsetsSummary 404 The specified topic partition was not found. Error 4.3.23.4. Produces application/vnd.kafka.v2+json 4.3.23.5. Tags Topics 4.3.23.6. Example HTTP response 4.3.23.6.1. Response 200 { "beginning_offset" : 10, "end_offset" : 50 } 4.3.23.6.2. Response 404 { "error_code" : 404, "message" : "The specified topic partition was not found." }

Commands:
bridge_version: 0.16.0
name: consumer1
format: binary
auto.offset.reset: earliest
enable.auto.commit: no
fetch.min.bytes: 512
consumer.request.timeout.ms: 30000
isolation.level: read_committed
instance_id: consumer1
base_uri: http://localhost:8080/consumers/my-group/instances/consumer1
error_code: 409
message: A consumer instance with the specified name already exists in the Kafka Bridge.
error_code: 422
message: One or more consumer configuration options have invalid values.
error_code: 404
message: The specified consumer instance was not found.
{ "partitions" : [ { "topic" : "topic", "partition" : 0 }, { "topic" : "topic", "partition" : 1 } ] }
error_code: 404
message: The specified consumer instance was not found.
error_code: 409
message: Subscriptions to topics, partitions, and patterns are mutually exclusive.
{ "offsets" : [ { "topic" : "topic", "partition" : 0, "offset" : 15 }, { "topic" : "topic", "partition" : 1, "offset" : 42 } ] }
error_code: 404
message: The specified consumer instance was not found.
{ "offsets" : [ { "topic" : "topic", "partition" : 0, "offset" : 15 }, { "topic" : "topic", "partition" : 1, "offset" : 42 } ] }
error_code: 404
message: The specified consumer instance was not found.
{ "partitions" : [ { "topic" : "topic", "partition" : 0 }, { "topic" : "topic", "partition" : 1 } ] }
error_code: 404
message: The specified consumer instance was not found.
{ "partitions" : [ { "topic" : "topic", "partition" : 0 }, { "topic" : "topic", "partition" : 1 } ] }
error_code: 404
message: The specified consumer instance was not found.
[ { "topic" : "topic", "key" : "key1", "value" : { "foo" : "bar" }, "partition" : 0, "offset" : 2 }, { "topic" : "topic", "key" : "key2", "value" : [ "foo2", "bar2" ], "partition" : 1, "offset" : 3 } ]
topic: test
key: a2V5
value: Y29uZmx1ZW50
partition: 1
offset: 100
topic: test
key: a2V5
value: a2Fma2E=
partition: 2
offset: 101
error_code: 404
message: The specified consumer instance was not found.
error_code: 406
message: The `format` used in the consumer creation request does not match the embedded format in the Accept header of this request.
error_code: 422
message: Response exceeds the maximum number of bytes the consumer can receive
{ "topics" : [ "topic1", "topic2" ] }
error_code: 404
message: The specified consumer instance was not found.
error_code: 409
message: Subscriptions to topics, partitions, and patterns are mutually exclusive.
error_code: 422
message: A list (of Topics type) or a topic_pattern must be specified.
{ "topics" : [ "my-topic1", "my-topic2" ], "partitions" : [ { "my-topic1" : [ 1, 2, 3 ] }, { "my-topic2" : [ 1 ] } ] }
error_code: 404
message: The specified consumer instance was not found.
error_code: 404
message: The specified consumer instance was not found.
topic1, topic2
{ "records" : [ { "key" : "key1", "value" : "value1" }, { "value" : "value2", "partition" : 1 }, { "value" : "value3" } ] }
{ "offsets" : [ { "partition" : 2, "offset" : 0 }, { "partition" : 1, "offset" : 1 }, { "partition" : 2, "offset" : 2 } ] }
error_code: 404
message: The specified topic was not found.
error_code: 422
message: The record list contains invalid records.
{ "name" : "topic", "offset" : 2, "configs" : { "cleanup.policy" : "compact" }, "partitions" : [ { "partition" : 1, "leader" : 1, "replicas" : [ { "broker" : 1, "leader" : true, "in_sync" : true }, { "broker" : 2, "leader" : false, "in_sync" : true } ] }, { "partition" : 2, "leader" : 2, "replicas" : [ { "broker" : 1, "leader" : false, "in_sync" : true }, { "broker" : 2, "leader" : true, "in_sync" : true } ] } ] }
[ { "partition" : 1, "leader" : 1, "replicas" : [ { "broker" : 1, "leader" : true, "in_sync" : true }, { "broker" : 2, "leader" : false, "in_sync" : true } ] }, { "partition" : 2, "leader" : 2, "replicas" : [ { "broker" : 1, "leader" : false, "in_sync" : true }, { "broker" : 2, "leader" : true, "in_sync" : true } ] } ]
error_code: 404
message: The specified topic was not found.
{ "records" : [ { "key" : "key1", "value" : "value1" }, { "value" : "value2" } ] }
{ "offsets" : [ { "partition" : 2, "offset" : 0 }, { "partition" : 1, "offset" : 1 }, { "partition" : 2, "offset" : 2 } ] }
error_code: 404
message: The specified topic partition was not found.
error_code: 422
message: The record is not valid.
{ "partition" : 1, "leader" : 1, "replicas" : [ { "broker" : 1, "leader" : true, "in_sync" : true }, { "broker" : 2, "leader" : false, "in_sync" : true } ] }
error_code: 404
message: The specified topic partition was not found.
beginning_offset: 10
end_offset: 50
error_code: 404
message: The specified topic partition was not found.