Kafka Connection
Connection Type
UI Documentation
📖 For detailed information: [UI Documentation Link - Link will be added here]
Description
Kafka connection for sending messages to Kafka topics. Used by policies and other components that need to publish messages to Kafka brokers.
Endpoints
List Connections
GET /apiops/projects/{projectName}/connections/?type=kafka
Get Connection
GET /apiops/projects/{projectName}/connections/{connectionName}/
Create Connection
POST /apiops/projects/{projectName}/connections/{connectionName}/
Update Connection
PUT /apiops/projects/{projectName}/connections/{connectionName}/
Delete Connection
DELETE /apiops/projects/{projectName}/connections/{connectionName}/
List Connections
Endpoint
GET /apiops/projects/{projectName}/connections/?type=kafka
Request
| Header |
Value |
| Authorization |
Bearer {token} |
Path Parameters
| Parameter |
Type |
Required |
Description |
| projectName |
string |
Yes |
Project name |
Note: The type query parameter is required to filter connections by type.
cURL Example
curl -X GET \
"https://demo.apinizer.com/apiops/projects/MyProject/connections/" \
-H "Authorization: Bearer YOUR_TOKEN"
Get Connection
Endpoint
GET /apiops/projects/{projectName}/connections/{connectionName}/
Request
| Header |
Value |
| Authorization |
Bearer {token} |
Path Parameters
| Parameter |
Type |
Required |
Description |
| projectName |
string |
Yes |
Project name |
| connectionName |
string |
Yes |
Connection name |
Response
Success Response (200 OK)
{
"success": true,
"resultList": [
{
"type": "kafka",
"name": "my-kafka-connection",
"description": "Kafka connection for event streaming",
"deployToWorker": true,
"enabled": true,
"topicName": "events",
"propertiesMap": {
"bootstrap.servers": {
"value": "localhost:9092",
"valueType": "STRING"
},
"key.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"value.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"max.block.ms": {
"value": "3000",
"valueType": "INTEGER"
}
},
"enableSecure": false,
"protocolTypes": [],
"keyStoreId": null,
"trustStoreId": null
}
],
"resultCount": 1
}
cURL Example
curl -X GET \
"https://demo.apinizer.com/apiops/projects/MyProject/connections/my-kafka-connection/" \
-H "Authorization: Bearer YOUR_TOKEN"
Create Connection
Endpoint
POST /apiops/projects/{projectName}/connections/{connectionName}/
Request
| Header |
Value |
| Authorization |
Bearer {token} |
| Content-Type |
application/json |
Path Parameters
| Parameter |
Type |
Required |
Description |
| projectName |
string |
Yes |
Project name |
| connectionName |
string |
Yes |
Connection name (must match name in body) |
Request Body
Full JSON Body Example
{
"type": "kafka",
"name": "my-kafka-connection",
"description": "Kafka connection for event streaming",
"deployToWorker": true,
"enabled": true,
"topicName": "events",
"propertiesMap": {
"bootstrap.servers": {
"value": "localhost:9092",
"valueType": "STRING"
},
"key.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"value.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"max.block.ms": {
"value": "3000",
"valueType": "INTEGER"
},
"acks": {
"value": "all",
"valueType": "STRING"
},
"retries": {
"value": "3",
"valueType": "INTEGER"
}
},
"enableSecure": false,
"protocolTypes": [],
"keyStoreName": null,
"trustStoreName": null
}
Request Body Fields
Common Fields
| Field |
Type |
Required |
Default |
Description |
| type |
string |
Yes |
- |
Connection type discriminator field. Identifies the connection type in API requests/responses. |
| name |
string |
Yes |
- |
Connection name (must match path parameter) |
| description |
string |
No |
- |
Connection description |
| deployToWorker |
boolean |
No |
true |
Whether to deploy to worker |
| enabled |
boolean |
No |
true |
Whether connection is enabled |
Kafka-Specific Fields
| Field |
Type |
Required |
Default |
Description |
| topicName |
string |
Yes |
- |
Kafka topic name |
| propertiesMap |
object |
Yes |
- |
Kafka producer properties map |
| enableSecure |
boolean |
No |
false |
Enable SSL/TLS encryption |
| protocolTypes |
array |
No* |
[] |
SSL/TLS protocol types (required if enableSecure=true) |
| keyStoreName |
string |
No* |
- |
KeyStore name (required if enableSecure=true) |
| trustStoreName |
string |
No |
- |
TrustStore name (optional, for server certificate validation) |
propertiesMap Structure
Each property in propertiesMap is a MapValue object with:
value (string) - Property value
valueType (string) - Value type
MapValueType
STRING - String value
BOOLEAN - Boolean value
INTEGER - Integer value
LONG - Long value
DOUBLE - Double value
FLOAT - Float value
STRING_LIST - Comma-separated string list
URI - URI value
Common Kafka Properties
bootstrap.servers (STRING) - Kafka broker addresses (e.g., “localhost:9092” or “broker1:9092,broker2:9092”)
key.serializer (STRING) - Key serializer class (e.g., “org.apache.kafka.common.serialization.StringSerializer”)
value.serializer (STRING) - Value serializer class (e.g., “org.apache.kafka.common.serialization.StringSerializer”)
max.block.ms (INTEGER) - Maximum time to block when sending (default: 3000)
acks (STRING) - Acknowledgment mode: “0”, “1”, or “all”
retries (INTEGER) - Number of retries on failure
batch.size (INTEGER) - Batch size in bytes
linger.ms (INTEGER) - Time to wait before sending batch
EnumSSLContextProtocolType
TLS_1_3 - TLS 1.3
TLS_1_2 - TLS 1.2
TLS_1_1 - TLS 1.1
TLS_1_0 - TLS 1.0
SSL_3_0 - SSL 3.0 (deprecated)
Note
propertiesMap must contain at least bootstrap.servers, key.serializer, and value.serializer
- If
enableSecure: true, protocolTypes and keyStoreName are required
keyStoreName and trustStoreName refer to KeyStore names (not IDs) - they are converted to IDs internally
Response
Success Response (200 OK)
{
"success": true,
"deploymentResult": {
"success": true,
"deploymentResults": [
{
"environmentName": "production",
"success": true,
"message": "Deployment successful"
}
]
}
}
cURL Example
curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/connections/my-kafka-connection/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "kafka",
"name": "my-kafka-connection",
"description": "Kafka connection for event streaming",
"deployToWorker": true,
"enabled": true,
"topicName": "events",
"propertiesMap": {
"bootstrap.servers": {
"value": "localhost:9092",
"valueType": "STRING"
},
"key.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"value.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"max.block.ms": {
"value": "3000",
"valueType": "INTEGER"
}
},
"enableSecure": false
}'
Update Connection
Endpoint
PUT /apiops/projects/{projectName}/connections/{connectionName}/
Request
| Header |
Value |
| Authorization |
Bearer {token} |
| Content-Type |
application/json |
Path Parameters
| Parameter |
Type |
Required |
Description |
| projectName |
string |
Yes |
Project name |
| connectionName |
string |
Yes |
Connection name (must match name in body) |
Request Body
Full JSON Body Example
{
"type": "kafka",
"name": "my-kafka-connection",
"description": "Updated Kafka connection description",
"deployToWorker": true,
"enabled": true,
"topicName": "updated-events",
"propertiesMap": {
"bootstrap.servers": {
"value": "broker1:9092,broker2:9092",
"valueType": "STRING"
},
"key.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"value.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"max.block.ms": {
"value": "5000",
"valueType": "INTEGER"
}
},
"enableSecure": true,
"protocolTypes": ["TLS_1_2", "TLS_1_3"],
"keyStoreName": "kafka-client-keystore",
"trustStoreName": "kafka-truststore"
}
Note: Request body structure is the same as Create Connection.
Response
Success Response (200 OK)
{
"success": true,
"deploymentResult": {
"success": true,
"deploymentResults": [...]
}
}
cURL Example
curl -X PUT \
"https://demo.apinizer.com/apiops/projects/MyProject/connections/my-kafka-connection/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "kafka",
"name": "my-kafka-connection",
"description": "Updated Kafka connection description",
"deployToWorker": true,
"enabled": true,
"topicName": "updated-events",
"propertiesMap": {
"bootstrap.servers": {
"value": "broker1:9092,broker2:9092",
"valueType": "STRING"
},
"key.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
},
"value.serializer": {
"value": "org.apache.kafka.common.serialization.StringSerializer",
"valueType": "STRING"
}
},
"enableSecure": true,
"protocolTypes": ["TLS_1_2"],
"keyStoreName": "kafka-client-keystore"
}'
Delete Connection
Endpoint
DELETE /apiops/projects/{projectName}/connections/{connectionName}/
Request
| Header |
Value |
| Authorization |
Bearer {token} |
Path Parameters
| Parameter |
Type |
Required |
Description |
| projectName |
string |
Yes |
Project name |
| connectionName |
string |
Yes |
Connection name |
Response
Success Response (200 OK)
{
"success": true,
"deploymentResult": {
"success": true,
"deploymentResults": [...]
}
}
cURL Example
curl -X DELETE \
"https://demo.apinizer.com/apiops/projects/MyProject/connections/my-kafka-connection/" \
-H "Authorization: Bearer YOUR_TOKEN"
Notes and Warnings
- Required Properties:
propertiesMap must contain at least:
bootstrap.servers - Kafka broker addresses
key.serializer - Key serializer class
value.serializer - Value serializer class
- SSL/TLS: When
enableSecure: true:
protocolTypes must be provided (at least one protocol)
keyStoreName is required (KeyStore must exist)
trustStoreName is optional (for server certificate validation)
- KeyStore/TrustStore: Use KeyStore names (not IDs). They are converted to IDs internally.
- Property Types: Use correct
valueType for each property:
- Numbers:
INTEGER, LONG, DOUBLE, FLOAT
- Booleans:
BOOLEAN
- Strings:
STRING
- Lists:
STRING_LIST (comma-separated)
- Bootstrap Servers: Can be a single broker or comma-separated list (e.g., “broker1:9092,broker2:9092”)
- Serializers: Common serializers:
org.apache.kafka.common.serialization.StringSerializer - String
org.apache.kafka.common.serialization.ByteArraySerializer - Byte array
org.apache.kafka.common.serialization.IntegerSerializer - Integer
- Deployment: If
deployToWorker: true, connection is automatically deployed to workers
- Name Matching: Path parameter
connectionName must match the name field in the request body