POST /v2/databases/{database_cluster_uuid}/topics

To create a topic attached to a Kafka cluster, send a POST request to /v2/databases/$DATABASE_ID/topics.

The result will be a JSON object with a topic key.

Servers

Path parameters

Name Type Required Description
database_cluster_uuid String Yes

A unique identifier for a database cluster.

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
name String Yes

The name of the Kafka topic.

replication_factor Integer No

The number of nodes to replicate data across the cluster.

partition_count Integer No

The number of partitions available for the topic. On update, this value can only be increased.

config Object No
config.cleanup_policy String No

The cleanup_policy sets the retention policy to use on log segments. 'delete' will discard old segments when retention time/size limits are reached. 'compact' will enable log compaction, resulting in retention of the latest value for each key.

Possible values:

  • "delete"
  • "compact"
  • "compact_delete"

Default value: "delete"

config.message_down_conversion_enable Boolean No

The message_down_conversion_enable specifies whether down-conversion of message formats is enabled to satisfy consumer requests. When 'false', the broker will not perform conversion for consumers expecting older message formats. The broker will respond with an UNSUPPORTED_VERSION error for consume requests from these older clients.

Default value: true

config.max_compaction_lag_ms Integer No

The max_compaction_lag_ms specifies the maximum amount of time (in ms) that a message will remain uncompacted. This is only applicable if the logs are have compaction enabled.

config.retention_bytes Integer No

The retention_bytes specifies the maximum size of the log (in bytes) before deleting messages. -1 indicates that there is no limit.

Default value: -1

config.min_insync_replicas Integer No

The min_insync_replicas specifies the number of replicas that must ACK a write for the write to be considered successful.

Default value: 1

config.file_delete_delay_ms Integer No

The file_delete_delay_ms specifies the time (in ms) to wait before deleting a file from the filesystem.

Default value: 60000

config.min_cleanable_dirty_ratio Number No

The min_cleanable_dirty_ratio specifies the frequency of log compaction (if enabled) in relation to duplicates present in the logs. For example, at 0.5, at most 50% of the log could be duplicates before compaction would begin.

Default value: 0.5

config.retention_ms Integer No

The retention_ms specifies the maximum amount of time (in ms) to keep a message before deleting it.

Default value: 604800000

config.message_timestamp_type String No

The message_timestamp_type specifies whether to use the message create time or log append time as the timestamp on a message.

Possible values:

  • "create_time"
  • "log_append_time"

Default value: "create_time"

config.min_compaction_lag_ms Integer No

The min_compaction_lag_ms specifies the minimum time (in ms) that a message will remain uncompacted in the log. Only relevant if log compaction is enabled.

Default value: 0

config.flush_ms Integer No

The flush_ms specifies the maximum time (in ms) that a message is kept in memory before being flushed to disk.

config.segment_jitter_ms Integer No

The segment_jitter_ms specifies the maximum random jitter subtracted from the scheduled segment roll time to avoid thundering herds of segment rolling.

Default value: 0

config.compression_type String No

The compression_type specifies the compression type of the topic.

Possible values:

  • "uncompressed"
  • "producer"
  • "Iz4"
  • "zstd"
  • "snappy"
  • "gzip"

Default value: "producer"

config.delete_retention_ms Integer No

The delete_retention_ms specifies how long (in ms) to retain delete tombstone markers for topics.

Default value: 86400000

config.segment_ms Integer No

The segment_ms specifies the period of time after which the log will be forced to roll if the segment file isn't full. This ensures that retention can delete or compact old data.

Default value: 604800000

config.index_interval_bytes Integer No

The index_interval_bytes specifies the number of bytes between entries being added into te offset index.

Default value: 4096

config.max_message_bytes Integer No

The max_messages_bytes specifies the largest record batch size (in bytes) that can be sent to the server. This is calculated after compression if compression is enabled.

Default value: 1048588

config.segment_bytes Integer No

The segment_bytes specifies the maximum size of a single log file (in bytes).

Default value: 209715200

config.flush_messages Integer No

The flush_messages specifies the number of messages to accumulate on a log partition before messages are flushed to disk.

config.message_format_version String No

The message_format_version specifies the message format version used by the broker to append messages to the logs. The value of this setting is assumed to be 3.0-IV1 if the broker protocol version is 3.0 or higher. By setting a particular message format version, all existing messages on disk must be smaller or equal to the specified version.

Possible values:

  • "3.3-IV2"
  • "3.3-IV0"
  • "2.3-IV0"
  • "2.6-IV0"
  • "0.11.0-IV0"
  • "2.2-IV1"
  • "0.10.0-IV0"
  • "0.11.0-IV2"
  • "2.8-IV1"
  • "1.0-IV0"
  • "2.0-IV0"
  • "3.0-IV0"
  • "2.1-IV1"
  • "2.7-IV1"
  • "0.8.0"
  • "3.2-IV0"
  • "0.8.2"
  • "0.10.1-IV0"
  • "2.4-IV1"
  • "0.10.1-IV2"
  • "3.3-IV1"
  • "0.10.2-IV0"
  • "2.3-IV1"
  • "3.3-IV3"
  • "2.2-IV0"
  • "2.5-IV0"
  • "0.10.0-IV1"
  • "0.11.0-IV1"
  • "2.0-IV1"
  • "2.8-IV0"
  • "3.0-IV1"
  • "1.1-IV0"
  • "2.1-IV0"
  • "3.1-IV0"
  • "2.7-IV0"
  • "2.7-IV2"
  • "0.9.0"
  • "0.8.1"
  • "2.1-IV2"
  • "2.4-IV0"
  • "0.10.1-IV1"

Default value: "3.0-IV1"

config.preallocate Boolean No

The preallocate specifies whether a file should be preallocated on disk when creating a new log segment.

Default value: false

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.