K2K Apps

Kafka 2 Kafka application management

get

Retrieves a single K2KApp by name.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Path parameters
namestringRequired
Query parameters
expand_metricsbooleanOptional

Includes metrics in the response, if available.

Responses
get
/api/v0/apps/k2k/{name}
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"
    ]
  }
}
put

Creates a new K2KApp or updates an existing one.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Path parameters
namestringRequired
Body
all ofOptional

Defines a K2KApp (Kafka-to-Kafka application).

Responses
201

Happy response.

application/json
Responseall of

Defines a K2KApp (Kafka-to-Kafka application).

put
/api/v0/apps/k2k/{name}
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"
    }
  }
}
delete

Deletes a single K2KApp by name.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Path parameters
namestringRequired
Query parameters
forcebooleanOptional

Deletes the K2KApp instantly and skips waiting for deletion of any corresponding K8s resources.

Responses
delete
/api/v0/apps/k2k/{name}
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"
    }
  }
}
patch

Updates an existing K2KApp.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Path parameters
namestringRequired
Body
all ofOptional

Defines a K2KApp (Kafka-to-Kafka application).

Responses
patch
/api/v0/apps/k2k/{name}
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"
    }
  }
}
get

Lists all K2KApps.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Query parameters
expand_metrics_summarybooleanOptional

Includes metrics summaries in the response, if available.

Responses
get
/api/v0/apps/k2k
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"
      }
    }
  ]
}
post

Creates a new K2KApp.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Body
all ofOptional

Defines a K2KApp (Kafka-to-Kafka application).

Responses
201

Happy response.

application/json
Responseall of

Defines a K2KApp (Kafka-to-Kafka application).

post
/api/v0/apps/k2k
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 Consumer Group Offsets for multiple partitions

patch

Update the committed offsets for multiple topic partitions for a given K2K application.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Path parameters
namestringRequired

The unique name for the K2K application.

Example: my-app-prod
topic_namestringRequired

The name of the Kafka topic.

Example: user-login-events
Body

Defines the request body for updating K2K offsets, containing a list of partition-offset pairs.

Responses
patch
/api/v0/apps/k2k/{name}/offsets/{topic_name}
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"
}
get

Provides Server-Sent Events (SSE) for K2KApp updates. TODO.

Authorizations
AuthorizationstringRequired

The bearer token can be obtained by creating a ServiceAccount.

Responses
get
/api/v1/apps/k2k/live/sse
GET /api/v1/apps/k2k/live/sse HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
default

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?