> ## Documentation Index
> Fetch the complete documentation index at: https://upstash-fix-issues-on-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Kafka Cluster

> This endpoint creates a new kafka cluster.

## Request Parameters

<ParamField body="name" type="string" required>
  Name of the new Kafka cluster
</ParamField>

<ParamField body="region" type="string" required>
  The region the cluster will be deployed in
  <br /> **Options:** `eu-west-1` or `us-east-1`
</ParamField>

<ParamField body="multizone" type="boolean" required>
  Set true to enable multi-zone replication
</ParamField>

## Response Parameters

<ResponseField name="cluster_id" type="string">
  ID of the created kafka cluster
</ResponseField>

<ResponseField name="name" type="string">
  Name of the kafka cluster
</ResponseField>

<ResponseField name="region" type="string">
  The region the kafka cluster is deployed in
</ResponseField>

<ResponseField name="type" type="string">
  Shows whether the cluster is free or paid
</ResponseField>

<ResponseField name="multizone" type="boolean">
  Whether the multizone replication is enabled for the cluster or not
</ResponseField>

<ResponseField name="tcp_endpoint" type="string">
  TCP endpoint to connect to the kafka cluster
</ResponseField>

<ResponseField name="rest_endpoint" type="string">
  REST endpoint to connect to the kafka cluster
</ResponseField>

<ResponseField name="state" type="string">
  Current state of the cluster(active, deleted)
</ResponseField>

<ResponseField name="username" type="string">
  Username to be used in authenticating to the cluster
</ResponseField>

<ResponseField name="password" type="string">
  Password to be used in authenticating to the cluster
</ResponseField>

<ResponseField name="max_retention_size" type="int">
  Max retention size will be allowed to topics in the cluster
</ResponseField>

<ResponseField name="max_retention_time" type="int">
  Max retention time will be allowed to topics in the cluster
</ResponseField>

<ResponseField name="max_messages_per_second" type="int">
  Max messages allowed to be produced per second
</ResponseField>

<ResponseField name="creation_time" type="int">
  Cluster creation timestamp
</ResponseField>

<ResponseField name="max_message_size" type="int">
  Max message size will be allowed in topics in the cluster
</ResponseField>

<ResponseField name="max_partitions" type="int">
  Max total number of partitions allowed in the cluster
</ResponseField>

<RequestExample>
  ```shell curl
  curl -X POST \
    https://api.upstash.com/v2/kafka/cluster \
    -u 'EMAIL:API_KEY' \
    -d '{"name":"mykafkacluster","region":"eu-west-1","multizone":true}'
  ```

  ```python Python
  import requests

  data = '{"name":"mykafkacluster","region":"eu-west-1","multizone":true}'

  response = requests.post('https://api.upstash.com/v2/kafka/cluster', data=data, auth=('EMAIL', 'API_KEY'))
  response.content
  ```

  ```go Go
  client := &http.Client{}
  var data = strings.NewReader(`{
      "name": "test_kafka_cluster_4",
      "region": "eu-west-1",
      "multizone": true
  }`)
  req, err := http.NewRequest("POST", "https://api.upstash.com/v2/kafka/cluster", data)
  if err != nil {
      log.Fatal(err)
  }
  req.SetBasicAuth("email", "api_key")
  resp, err := client.Do(req)
  if err != nil {
      log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
      log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText);
  }
  req.SetBasicAuth("email", "api_key")
  resp, err := client.Do(req)
  if err != nil {
      log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
      log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK
  {
      "cluster_id": "9bc0e897-cbd3-4997-895a-fd77ad00aec9",
      "name": "mykafkacluster",
      "region": "eu-west-1",
      "type": "paid",
      "multizone": true,
      "tcp_endpoint": "sharing-mastodon-12819-eu1-kafka.upstashdev.com",
      "rest_endpoint": "sharing-mastodon-12819-eu1-rest-kafka.upstashdev.com",
      "state": "active",
      "username": "c2hhcmluZy1tYXN0b2Rvbi0xMjgxOSRV1ipriSBOwd0PHzw2KAs_cDrTXzvUKIs",
      "password": "zlQgc0nbgcqF6MxOqnh7tKjJsGnSgLFS89uS-FXzMVqhL2dgFbmHwB-IXAAsOYXzUYj40g==",
      "max_retention_size": 1073741824000,
      "max_retention_time": 2592000000,
      "max_messages_per_second": 1000,
      "creation_time": 1643978975,
      "max_message_size": 1048576,
      "max_partitions": 100
  }
  ```
</ResponseExample>
