K2K Apps
Kafka 2 Kafka application management
Retrieves a single K2KApp by name.
The bearer token can be obtained by creating a ServiceAccount.
Includes metrics in the response, if available.
Happy response.
Error object.
GET /api/v0/apps/k2k/{name} HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"apiVersion": "text",
"kind": "text",
"metadata": {
"name": "text",
"displayName": "text",
"description": "text",
"id": "text",
"lrn": "text",
"creationTimestamp": "2025-11-15T15:26:28.720Z",
"generation": 1
},
"spec": {
"sourceKafkaLRN": "environments:kafka-connection/my-source-environment/plaintext",
"targetKafkaLRN": "environments:kafka-connection/my-target-environment/plaintext",
"topics": [
"text"
],
"deploymentNamespaceLRN": "kubernetes:namespace/my-environment/incluster/my-namespace",
"kubernetes": {
"commonMetadata": {
"labels": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"annotations": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"securityContext": {
"runAsUser": 1,
"runAsGroup": 1,
"runAsNonRoot": true
},
"imagePullSecrets": [
{
"name": "text"
}
],
"serviceAccount": "text",
"image": "text",
"resources": {
"requests": {
"cpu": "text",
"memory": "text"
},
"limits": {
"cpu": "text",
"memory": "text"
}
}
},
"replicator": {
"schemaMapping": true,
"exactlyOnce": true,
"autoCreateTopics": true,
"autoCreateControlTopics": true,
"keepRecordCreationTimestamp": true
},
"paused": true,
"configOverrides": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"status": {
"updatedAt": "2025-11-15T15:26:28.720Z",
"state": "deploying",
"statusLastTransitionAt": "2025-11-15T15:26:28.720Z",
"statusMessage": "text",
"observedGeneration": 1,
"deployment": {
"inSync": true,
"managedResources": [
{
"name": "text",
"namespace": "text",
"kind": "text",
"status": "text",
"reason": "text"
}
],
"pods": [
{
"name": "text",
"namespace": "text",
"state": "text",
"reason": "text",
"lastTermination": {
"message": "text",
"time": "2025-11-15T15:26:28.720Z"
}
}
]
},
"kafka": {
"consumerGroup": "text"
}
},
"metrics": {
"state": "unknown",
"updated_at": "2025-11-15T15:26:28.720Z",
"error_message": "text",
"source_topics": [
{
"lrn": "text",
"name": "text",
"throughput": {
"updated_at": "2025-11-15T15:26:28.720Z",
"bytes_per_second": 1,
"records_per_second": 1
},
"offsets": {
"updated_at": "2025-11-15T15:26:28.720Z",
"partitions": [
{
"partition": 0,
"log_end_offset": 1
}
]
}
}
],
"destination_topics": [
{
"lrn": "text",
"name": "text",
"throughput": {
"updated_at": "2025-11-15T15:26:28.720Z",
"bytes_per_second": 1,
"records_per_second": 1
},
"offsets": {
"updated_at": "2025-11-15T15:26:28.720Z",
"partitions": [
{
"partition": 0,
"log_end_offset": 1,
"lag": 1
}
]
}
}
],
"errors": [
"text"
]
}
}Creates a new K2KApp or updates an existing one.
The bearer token can be obtained by creating a ServiceAccount.
Defines a K2KApp (Kafka-to-Kafka application).
Happy response.
Defines a K2KApp (Kafka-to-Kafka application).
Error object.
PUT /api/v0/apps/k2k/{name} HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/yaml
Accept: */*
Content-Length: 1050
"apiVersion: text
kind: text
metadata:
name: text
displayName: text
description: text
id: text
lrn: text
creationTimestamp: '2025-11-15T15:26:28.720Z'
generation: 1
spec:
sourceKafkaLRN: environments:kafka-connection/my-source-environment/plaintext
targetKafkaLRN: environments:kafka-connection/my-target-environment/plaintext
topics:
- text
deploymentNamespaceLRN: kubernetes:namespace/my-environment/incluster/my-namespace
kubernetes:
commonMetadata:
labels:
ANY_ADDITIONAL_PROPERTY: text
annotations:
ANY_ADDITIONAL_PROPERTY: text
securityContext:
runAsUser: 1
runAsGroup: 1
runAsNonRoot: true
imagePullSecrets:
- name: text
serviceAccount: text
image: text
resources:
requests:
cpu: text
memory: text
limits:
cpu: text
memory: text
replicator:
schemaMapping: true
exactlyOnce: true
autoCreateTopics: true
autoCreateControlTopics: true
keepRecordCreationTimestamp: true
paused: true
configOverrides:
ANY_ADDITIONAL_PROPERTY: anything
"{
"apiVersion": "text",
"kind": "text",
"metadata": {
"name": "text",
"displayName": "text",
"description": "text",
"id": "text",
"lrn": "text",
"creationTimestamp": "2025-11-15T15:26:28.720Z",
"generation": 1
},
"spec": {
"sourceKafkaLRN": "environments:kafka-connection/my-source-environment/plaintext",
"targetKafkaLRN": "environments:kafka-connection/my-target-environment/plaintext",
"topics": [
"text"
],
"deploymentNamespaceLRN": "kubernetes:namespace/my-environment/incluster/my-namespace",
"kubernetes": {
"commonMetadata": {
"labels": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"annotations": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"securityContext": {
"runAsUser": 1,
"runAsGroup": 1,
"runAsNonRoot": true
},
"imagePullSecrets": [
{
"name": "text"
}
],
"serviceAccount": "text",
"image": "text",
"resources": {
"requests": {
"cpu": "text",
"memory": "text"
},
"limits": {
"cpu": "text",
"memory": "text"
}
}
},
"replicator": {
"schemaMapping": true,
"exactlyOnce": true,
"autoCreateTopics": true,
"autoCreateControlTopics": true,
"keepRecordCreationTimestamp": true
},
"paused": true,
"configOverrides": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"status": {
"updatedAt": "2025-11-15T15:26:28.720Z",
"state": "deploying",
"statusLastTransitionAt": "2025-11-15T15:26:28.720Z",
"statusMessage": "text",
"observedGeneration": 1,
"deployment": {
"inSync": true,
"managedResources": [
{
"name": "text",
"namespace": "text",
"kind": "text",
"status": "text",
"reason": "text"
}
],
"pods": [
{
"name": "text",
"namespace": "text",
"state": "text",
"reason": "text",
"lastTermination": {
"message": "text",
"time": "2025-11-15T15:26:28.720Z"
}
}
]
},
"kafka": {
"consumerGroup": "text"
}
}
}Deletes a single K2KApp by name.
The bearer token can be obtained by creating a ServiceAccount.
Deletes the K2KApp instantly and skips waiting for deletion of any corresponding K8s resources.
Happy response.
Error object.
DELETE /api/v0/apps/k2k/{name} HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"apiVersion": "text",
"kind": "text",
"metadata": {
"name": "text",
"displayName": "text",
"description": "text",
"id": "text",
"lrn": "text",
"creationTimestamp": "2025-11-15T15:26:28.720Z",
"generation": 1
},
"spec": {
"sourceKafkaLRN": "environments:kafka-connection/my-source-environment/plaintext",
"targetKafkaLRN": "environments:kafka-connection/my-target-environment/plaintext",
"topics": [
"text"
],
"deploymentNamespaceLRN": "kubernetes:namespace/my-environment/incluster/my-namespace",
"kubernetes": {
"commonMetadata": {
"labels": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"annotations": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"securityContext": {
"runAsUser": 1,
"runAsGroup": 1,
"runAsNonRoot": true
},
"imagePullSecrets": [
{
"name": "text"
}
],
"serviceAccount": "text",
"image": "text",
"resources": {
"requests": {
"cpu": "text",
"memory": "text"
},
"limits": {
"cpu": "text",
"memory": "text"
}
}
},
"replicator": {
"schemaMapping": true,
"exactlyOnce": true,
"autoCreateTopics": true,
"autoCreateControlTopics": true,
"keepRecordCreationTimestamp": true
},
"paused": true,
"configOverrides": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"status": {
"updatedAt": "2025-11-15T15:26:28.720Z",
"state": "deploying",
"statusLastTransitionAt": "2025-11-15T15:26:28.720Z",
"statusMessage": "text",
"observedGeneration": 1,
"deployment": {
"inSync": true,
"managedResources": [
{
"name": "text",
"namespace": "text",
"kind": "text",
"status": "text",
"reason": "text"
}
],
"pods": [
{
"name": "text",
"namespace": "text",
"state": "text",
"reason": "text",
"lastTermination": {
"message": "text",
"time": "2025-11-15T15:26:28.720Z"
}
}
]
},
"kafka": {
"consumerGroup": "text"
}
}
}Updates an existing K2KApp.
The bearer token can be obtained by creating a ServiceAccount.
Defines a K2KApp (Kafka-to-Kafka application).
Happy response.
Error object.
PATCH /api/v0/apps/k2k/{name} HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/yaml
Accept: */*
Content-Length: 1050
"apiVersion: text
kind: text
metadata:
name: text
displayName: text
description: text
id: text
lrn: text
creationTimestamp: '2025-11-15T15:26:28.720Z'
generation: 1
spec:
sourceKafkaLRN: environments:kafka-connection/my-source-environment/plaintext
targetKafkaLRN: environments:kafka-connection/my-target-environment/plaintext
topics:
- text
deploymentNamespaceLRN: kubernetes:namespace/my-environment/incluster/my-namespace
kubernetes:
commonMetadata:
labels:
ANY_ADDITIONAL_PROPERTY: text
annotations:
ANY_ADDITIONAL_PROPERTY: text
securityContext:
runAsUser: 1
runAsGroup: 1
runAsNonRoot: true
imagePullSecrets:
- name: text
serviceAccount: text
image: text
resources:
requests:
cpu: text
memory: text
limits:
cpu: text
memory: text
replicator:
schemaMapping: true
exactlyOnce: true
autoCreateTopics: true
autoCreateControlTopics: true
keepRecordCreationTimestamp: true
paused: true
configOverrides:
ANY_ADDITIONAL_PROPERTY: anything
"{
"apiVersion": "text",
"kind": "text",
"metadata": {
"name": "text",
"displayName": "text",
"description": "text",
"id": "text",
"lrn": "text",
"creationTimestamp": "2025-11-15T15:26:28.720Z",
"generation": 1
},
"spec": {
"sourceKafkaLRN": "environments:kafka-connection/my-source-environment/plaintext",
"targetKafkaLRN": "environments:kafka-connection/my-target-environment/plaintext",
"topics": [
"text"
],
"deploymentNamespaceLRN": "kubernetes:namespace/my-environment/incluster/my-namespace",
"kubernetes": {
"commonMetadata": {
"labels": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"annotations": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"securityContext": {
"runAsUser": 1,
"runAsGroup": 1,
"runAsNonRoot": true
},
"imagePullSecrets": [
{
"name": "text"
}
],
"serviceAccount": "text",
"image": "text",
"resources": {
"requests": {
"cpu": "text",
"memory": "text"
},
"limits": {
"cpu": "text",
"memory": "text"
}
}
},
"replicator": {
"schemaMapping": true,
"exactlyOnce": true,
"autoCreateTopics": true,
"autoCreateControlTopics": true,
"keepRecordCreationTimestamp": true
},
"paused": true,
"configOverrides": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"status": {
"updatedAt": "2025-11-15T15:26:28.720Z",
"state": "deploying",
"statusLastTransitionAt": "2025-11-15T15:26:28.720Z",
"statusMessage": "text",
"observedGeneration": 1,
"deployment": {
"inSync": true,
"managedResources": [
{
"name": "text",
"namespace": "text",
"kind": "text",
"status": "text",
"reason": "text"
}
],
"pods": [
{
"name": "text",
"namespace": "text",
"state": "text",
"reason": "text",
"lastTermination": {
"message": "text",
"time": "2025-11-15T15:26:28.720Z"
}
}
]
},
"kafka": {
"consumerGroup": "text"
}
}
}Lists all K2KApps.
The bearer token can be obtained by creating a ServiceAccount.
Includes metrics summaries in the response, if available.
Happy response.
Error object.
GET /api/v0/apps/k2k HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"apiVersion": "text",
"kind": "text",
"metadata": {
"name": "text",
"displayName": "text",
"description": "text",
"id": "text",
"lrn": "text",
"creationTimestamp": "2025-11-15T15:26:28.720Z",
"generation": 1
},
"spec": {
"sourceKafkaLRN": "environments:kafka-connection/my-source-environment/plaintext",
"targetKafkaLRN": "environments:kafka-connection/my-target-environment/plaintext",
"topics": [
"text"
],
"deploymentNamespaceLRN": "kubernetes:namespace/my-environment/incluster/my-namespace",
"kubernetes": {
"commonMetadata": {
"labels": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"annotations": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"securityContext": {
"runAsUser": 1,
"runAsGroup": 1,
"runAsNonRoot": true
},
"imagePullSecrets": [
{
"name": "text"
}
],
"serviceAccount": "text",
"image": "text",
"resources": {
"requests": {
"cpu": "text",
"memory": "text"
},
"limits": {
"cpu": "text",
"memory": "text"
}
}
},
"replicator": {
"schemaMapping": true,
"exactlyOnce": true,
"autoCreateTopics": true,
"autoCreateControlTopics": true,
"keepRecordCreationTimestamp": true
},
"paused": true,
"configOverrides": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"status": {
"updatedAt": "2025-11-15T15:26:28.720Z",
"state": "deploying",
"statusLastTransitionAt": "2025-11-15T15:26:28.720Z",
"statusMessage": "text",
"observedGeneration": 1,
"deployment": {
"inSync": true,
"managedResources": [
{
"name": "text",
"namespace": "text",
"kind": "text",
"status": "text",
"reason": "text"
}
],
"pods": [
{
"name": "text",
"namespace": "text",
"state": "text",
"reason": "text",
"lastTermination": {
"message": "text",
"time": "2025-11-15T15:26:28.720Z"
}
}
]
},
"kafka": {
"consumerGroup": "text"
}
}
},
{
"metrics_summary": {
"topics_count": 1,
"partitions_count": 1,
"total_bytes_per_second_read": 1,
"total_bytes_per_second_written": 1,
"total_records_per_second_read": 1,
"total_records_per_second_written": 1,
"state": "unknown",
"updated_at": "2025-11-15T15:26:28.720Z",
"error_message": "text"
}
}
]
}Creates a new K2KApp.
The bearer token can be obtained by creating a ServiceAccount.
Defines a K2KApp (Kafka-to-Kafka application).
Happy response.
Defines a K2KApp (Kafka-to-Kafka application).
Error object.
POST /api/v0/apps/k2k HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/yaml
Accept: */*
Content-Length: 1050
"apiVersion: text
kind: text
metadata:
name: text
displayName: text
description: text
id: text
lrn: text
creationTimestamp: '2025-11-15T15:26:28.720Z'
generation: 1
spec:
sourceKafkaLRN: environments:kafka-connection/my-source-environment/plaintext
targetKafkaLRN: environments:kafka-connection/my-target-environment/plaintext
topics:
- text
deploymentNamespaceLRN: kubernetes:namespace/my-environment/incluster/my-namespace
kubernetes:
commonMetadata:
labels:
ANY_ADDITIONAL_PROPERTY: text
annotations:
ANY_ADDITIONAL_PROPERTY: text
securityContext:
runAsUser: 1
runAsGroup: 1
runAsNonRoot: true
imagePullSecrets:
- name: text
serviceAccount: text
image: text
resources:
requests:
cpu: text
memory: text
limits:
cpu: text
memory: text
replicator:
schemaMapping: true
exactlyOnce: true
autoCreateTopics: true
autoCreateControlTopics: true
keepRecordCreationTimestamp: true
paused: true
configOverrides:
ANY_ADDITIONAL_PROPERTY: anything
"{
"apiVersion": "text",
"kind": "text",
"metadata": {
"name": "text",
"displayName": "text",
"description": "text",
"id": "text",
"lrn": "text",
"creationTimestamp": "2025-11-15T15:26:28.720Z",
"generation": 1
},
"spec": {
"sourceKafkaLRN": "environments:kafka-connection/my-source-environment/plaintext",
"targetKafkaLRN": "environments:kafka-connection/my-target-environment/plaintext",
"topics": [
"text"
],
"deploymentNamespaceLRN": "kubernetes:namespace/my-environment/incluster/my-namespace",
"kubernetes": {
"commonMetadata": {
"labels": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"annotations": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"securityContext": {
"runAsUser": 1,
"runAsGroup": 1,
"runAsNonRoot": true
},
"imagePullSecrets": [
{
"name": "text"
}
],
"serviceAccount": "text",
"image": "text",
"resources": {
"requests": {
"cpu": "text",
"memory": "text"
},
"limits": {
"cpu": "text",
"memory": "text"
}
}
},
"replicator": {
"schemaMapping": true,
"exactlyOnce": true,
"autoCreateTopics": true,
"autoCreateControlTopics": true,
"keepRecordCreationTimestamp": true
},
"paused": true,
"configOverrides": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"status": {
"updatedAt": "2025-11-15T15:26:28.720Z",
"state": "deploying",
"statusLastTransitionAt": "2025-11-15T15:26:28.720Z",
"statusMessage": "text",
"observedGeneration": 1,
"deployment": {
"inSync": true,
"managedResources": [
{
"name": "text",
"namespace": "text",
"kind": "text",
"status": "text",
"reason": "text"
}
],
"pods": [
{
"name": "text",
"namespace": "text",
"state": "text",
"reason": "text",
"lastTermination": {
"message": "text",
"time": "2025-11-15T15:26:28.720Z"
}
}
]
},
"kafka": {
"consumerGroup": "text"
}
}
}Update the committed offsets for multiple topic partitions for a given K2K application.
The bearer token can be obtained by creating a ServiceAccount.
The unique name for the K2K application.
my-app-prodThe name of the Kafka topic.
user-login-eventsDefines the request body for updating K2K offsets, containing a list of partition-offset pairs.
Offsets successfully updated.
Error object.
PATCH /api/v0/apps/k2k/{name}/offsets/{topic_name} HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 40
{
"offsets": [
{
"partition": 1,
"offset": 1
}
]
}{
"application_name": "my-app-prod",
"updated_partitions": [
{
"topic_name": "my-topic-name",
"partition": 2,
"offset": 1234567
}
],
"status": "updated"
}Provides Server-Sent Events (SSE) for K2KApp updates. TODO.
The bearer token can be obtained by creating a ServiceAccount.
Error object.
GET /api/v1/apps/k2k/live/sse HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Error object.
{
"type": "not_found",
"title": "text",
"status": 1,
"invalid_fields": [
{
"name": "text",
"error": "reference_not_found",
"title": "text"
}
],
"sso_url": "text",
"request_id": "text"
}Last updated
Was this helpful?

