The Public API allows programmatic access to manage your data streams. This guide covers authentication, endpoints, and common use cases.
Authentication
All API requests require authentication using a service user API key. The key should be included in the Authorization header using the Bearer token scheme:
- Authorization: Bearer kdk_srv_xxxxxxxxxxxxx
Setting Up API Access
Configure your API key as an environment variable:
- XEOTEK_KADECK_API_KEY=kdk_srv_xxxxxxxxxxxxx
Test your authentication:
A successful response (200) will return:
- Hello from Data Streamhouse's Public API!
Best Practices
API Key Security- Store API keys securely as environment variables
- Rotate keys periodically
- Never commit API keys to source control
Error Handling- Always check for error responses
- Implement proper retry logic for failed requests
The API allows you to update metadata for data streams in your catalog. You can identify streams using their connection ID and stream name.
- PUT /public/v1/datacatalog/connections/{connection_id}/streams/{stream_name}/metadata
Full Update Example
Partial Update Example
You can update specific fields without affecting others:
Field | Type | Description | Required |
tags | string[] | Labels for categorizing the stream | optional |
ownerId | string | User id of the stream owner | optional |
domainId | string (UUID) | Domain identifier | optional |
documentation | string | Rich text documentation (HTML) | optional |
|
updatedBy | string | User id of the user making the documentation update | optional |
updatedAt | long | Unix timestamp in millis | optional |
Best Practices
- Use partial updates when possible to avoid overwriting existing data
- Include meaningful documentation
- Keep tags consistent and meaningful
Common errors
Status Code | Description | Solution |
401 | Unauthorized | Check your API key |
404 | Stream not found | Verify connection ID and stream name |
400 | Invalid request | Check your request payload format |
Manage Topics
The Topic Management API allows programmatic access to create and delete topics in your data streaming platform.
Create Topic
​Creates a new topic with specified configuration.
Request Body
- {
- "name": "my.new.topic",
- "metadata": {
- "partitions": 3,
- "replicationFactor": 2
- },
- "configs": [
- {
- "name": "cleanup.policy",
- "value": "delete"
- },
- {
- "name": "retention.ms",
- "value": "604800000"
- }
- ]
- }
Example Request
- curl --location 'https://your-instance.com/public/v1/topics' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer kdk_srv_xxxxxxxxxxxxx' \
- --data-raw '{
- "name": "my.new.topic",
- "metadata": {
- "partitions": 3,
- "replicationFactor": 2
- },
- "configs": [
- {
- "name": "cleanup.policy",
- "value": "delete"
- }
- ]
- }'
Delete Topic
Deletes an existing topic.
- DELETE /public/v1/connections/{server}/streams/{topic}
Example Request
- curl --location --request DELETE 'https://your-instance.com/public/v1/connections/my-server/streams/my.topic' \
- --header 'Authorization: Bearer kdk_srv_xxxxxxxxxxxxx'
Request Models
TopicCreateRequest
Field | Type | Description | Required |
name | string | Name of the topic to create | Yes |
metadata | TopicMetadata | Topic metadata configuration | Yes |
configs | TopicConfig[] | Array of key value config pairs | optional |
Field | Type | Description | Required |
partitions | integer | Number of partitions for the topic | Yes |
replicationFactor | integer | Replication factor for the topic | Yes |
TopicConfig
Field | Type | Description | Required |
name | string | Configuration parameter name | Yes |
value | string | Configuration parameter value | Yes |
Best Practices
1. Choose appropriate partition counts based on expected throughput
2. Set reasonable replication factors for data safety
3. Configure retention policies based on data lifecycle requirements
Common Errors
Status Code | Description | Solution |
401 | Unauthorized | Check your API key |
404 | Topic not found | Verify connection ID and stream name |
400 | Invalid request | Check your request payload format |
409 | Topic already exists | Use a different topic name or delete existing topic first |
Related Articles
Data Protection Policies and Data Masking
Data protection is a crucial aspect of business operations, especially when dealing with sensitive information. Kadeck Teams Enterprise is equipped with a Data Protection Policy module that helps you define data protection policies through the ...
Topic Overview & Documentation
Kadeck’s Topic Overview, provides a consolidated glance at all topic details and documentation. This article will guide you through what information you can find in this view and how to document your topic. Overview Page When you open the Data ...
Introduction to the Quick Processor
The Quick Processor allows you to create filters and modify records using JavaScript. In this article, we show how to create a Quick Processor and how to access, filter, and modify records. A Quick Processor is always linked to a view. This means ...
Data Limit and Parallel Factor
Data Display Limit (no unit) How many records will be displayed in the UI of the Data Browser. After this limit is hit, all data coming from the backend for the same request will be ignored. Parallelism Factor (Kafka only) (no unit) How many ...
Release 6.X
This article describes the changes of the version 6.x update. Latest image tag: xeotek/kadeck:6.0.0 Release 6 Patch notes This section contains all patch notes for Kadeck 6.x. Release 6.0.0 Streamlined API & Access Management Kadeck 6 introduces a ...