Skip to main content
POST
/
v1
/
organizations
/
{organizationId}
/
services
/
{serviceId}
/
clickpipes
Create ClickPipe
curl --request POST \
  --url https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "source": {
    "kafka": {
      "brokers": "<string>",
      "topics": "<string>",
      "consumerGroup": "my-clickpipe-consumer-group",
      "iamRole": "arn:aws:iam::123456789012:role/MyRole",
      "offset": {
        "timestamp": "2021-01-01T00:00"
      },
      "schemaRegistry": {
        "url": "https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004",
        "authentication": "PLAIN",
        "caCertificate": "<string>",
        "credentials": {
          "username": "<string>",
          "password": "<string>"
        }
      },
      "caCertificate": "<string>",
      "reversePrivateEndpointIds": [
        "<string>"
      ],
      "credentials": {
        "username": "<string>",
        "password": "<string>"
      }
    },
    "objectStorage": {
      "url": "https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz",
      "delimiter": ",",
      "compression": "auto",
      "isContinuous": true,
      "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
      "iamRole": "arn:aws:iam::123456789012:role/MyRole",
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net",
      "path": "data/logs/*.json",
      "azureContainerName": "mycontainer",
      "accessKey": {
        "accessKeyId": "<string>",
        "secretKey": "<string>"
      }
    },
    "kinesis": {
      "streamName": "my-stream",
      "region": "us-east-1",
      "useEnhancedFanOut": true,
      "timestamp": 1615766400,
      "iamRole": "arn:aws:iam::123456789012:role/MyRole",
      "accessKey": {
        "accessKeyId": "<string>",
        "secretKey": "<string>"
      }
    },
    "postgres": {
      "host": "<string>",
      "port": 123,
      "database": "<string>",
      "settings": {
        "syncIntervalSeconds": 123,
        "pullBatchSize": 123,
        "publicationName": "<string>",
        "replicationSlotName": "<string>",
        "allowNullableColumns": true,
        "initialLoadParallelism": 123,
        "snapshotNumRowsPerPartition": 123,
        "snapshotNumberOfParallelTables": 123,
        "enableFailoverSlots": true
      },
      "tableMappings": [
        {
          "sourceSchemaName": "<string>",
          "sourceTable": "<string>",
          "targetTable": "<string>",
          "excludedColumns": [
            "<string>"
          ],
          "useCustomSortingKey": true,
          "sortingKeys": [
            "<string>"
          ]
        }
      ],
      "credentials": {
        "username": "<string>",
        "password": "<string>"
      }
    },
    "validateSamples": true
  },
  "destination": {
    "database": "<string>",
    "table": "<string>",
    "managedTable": true,
    "tableDefinition": {
      "engine": {
        "versionColumnId": "<string>",
        "columnIds": [
          "<string>"
        ]
      },
      "sortingKey": [
        "<string>"
      ],
      "partitionBy": "<string>",
      "primaryKey": "<string>"
    },
    "columns": [
      {
        "name": "<string>",
        "type": "<string>"
      }
    ],
    "roles": [
      "<string>"
    ]
  },
  "fieldMappings": [
    {
      "sourceField": "<string>",
      "destinationField": "<string>"
    }
  ],
  "scaling": {
    "replicas": 123,
    "concurrency": 123,
    "replicaCpuMillicores": 1062,
    "replicaMemoryGb": 4.25
  },
  "settings": {
    "streaming_max_insert_wait_ms": 5000,
    "object_storage_concurrency": 1,
    "object_storage_polling_interval_ms": 30000,
    "object_storage_max_insert_bytes": 10737418240,
    "object_storage_max_file_count": 100,
    "clickhouse_max_threads": 8,
    "clickhouse_max_insert_threads": 1,
    "clickhouse_min_insert_block_size_bytes": 1073741824,
    "clickhouse_max_download_threads": 4,
    "clickhouse_parallel_distributed_insert_select": 2,
    "object_storage_use_cluster_function": true,
    "clickhouse_parallel_view_processing": false
  }
}
'
import requests

url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes"

payload = {
    "name": "<string>",
    "source": {
        "kafka": {
            "brokers": "<string>",
            "topics": "<string>",
            "consumerGroup": "my-clickpipe-consumer-group",
            "iamRole": "arn:aws:iam::123456789012:role/MyRole",
            "offset": { "timestamp": "2021-01-01T00:00" },
            "schemaRegistry": {
                "url": "https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004",
                "authentication": "PLAIN",
                "caCertificate": "<string>",
                "credentials": {
                    "username": "<string>",
                    "password": "<string>"
                }
            },
            "caCertificate": "<string>",
            "reversePrivateEndpointIds": ["<string>"],
            "credentials": {
                "username": "<string>",
                "password": "<string>"
            }
        },
        "objectStorage": {
            "url": "https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz",
            "delimiter": ",",
            "compression": "auto",
            "isContinuous": True,
            "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
            "iamRole": "arn:aws:iam::123456789012:role/MyRole",
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net",
            "path": "data/logs/*.json",
            "azureContainerName": "mycontainer",
            "accessKey": {
                "accessKeyId": "<string>",
                "secretKey": "<string>"
            }
        },
        "kinesis": {
            "streamName": "my-stream",
            "region": "us-east-1",
            "useEnhancedFanOut": True,
            "timestamp": 1615766400,
            "iamRole": "arn:aws:iam::123456789012:role/MyRole",
            "accessKey": {
                "accessKeyId": "<string>",
                "secretKey": "<string>"
            }
        },
        "postgres": {
            "host": "<string>",
            "port": 123,
            "database": "<string>",
            "settings": {
                "syncIntervalSeconds": 123,
                "pullBatchSize": 123,
                "publicationName": "<string>",
                "replicationSlotName": "<string>",
                "allowNullableColumns": True,
                "initialLoadParallelism": 123,
                "snapshotNumRowsPerPartition": 123,
                "snapshotNumberOfParallelTables": 123,
                "enableFailoverSlots": True
            },
            "tableMappings": [
                {
                    "sourceSchemaName": "<string>",
                    "sourceTable": "<string>",
                    "targetTable": "<string>",
                    "excludedColumns": ["<string>"],
                    "useCustomSortingKey": True,
                    "sortingKeys": ["<string>"]
                }
            ],
            "credentials": {
                "username": "<string>",
                "password": "<string>"
            }
        },
        "validateSamples": True
    },
    "destination": {
        "database": "<string>",
        "table": "<string>",
        "managedTable": True,
        "tableDefinition": {
            "engine": {
                "versionColumnId": "<string>",
                "columnIds": ["<string>"]
            },
            "sortingKey": ["<string>"],
            "partitionBy": "<string>",
            "primaryKey": "<string>"
        },
        "columns": [
            {
                "name": "<string>",
                "type": "<string>"
            }
        ],
        "roles": ["<string>"]
    },
    "fieldMappings": [
        {
            "sourceField": "<string>",
            "destinationField": "<string>"
        }
    ],
    "scaling": {
        "replicas": 123,
        "concurrency": 123,
        "replicaCpuMillicores": 1062,
        "replicaMemoryGb": 4.25
    },
    "settings": {
        "streaming_max_insert_wait_ms": 5000,
        "object_storage_concurrency": 1,
        "object_storage_polling_interval_ms": 30000,
        "object_storage_max_insert_bytes": 10737418240,
        "object_storage_max_file_count": 100,
        "clickhouse_max_threads": 8,
        "clickhouse_max_insert_threads": 1,
        "clickhouse_min_insert_block_size_bytes": 1073741824,
        "clickhouse_max_download_threads": 4,
        "clickhouse_parallel_distributed_insert_select": 2,
        "object_storage_use_cluster_function": True,
        "clickhouse_parallel_view_processing": False
    }
}
headers = {
    "Authorization": "Basic <encoded-value>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    name: '<string>',
    source: {
      kafka: {
        brokers: '<string>',
        topics: '<string>',
        consumerGroup: 'my-clickpipe-consumer-group',
        iamRole: 'arn:aws:iam::123456789012:role/MyRole',
        offset: {timestamp: '2021-01-01T00:00'},
        schemaRegistry: {
          url: 'https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004',
          authentication: 'PLAIN',
          caCertificate: '<string>',
          credentials: {username: '<string>', password: '<string>'}
        },
        caCertificate: '<string>',
        reversePrivateEndpointIds: ['<string>'],
        credentials: {username: '<string>', password: '<string>'}
      },
      objectStorage: {
        url: 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz',
        delimiter: ',',
        compression: 'auto',
        isContinuous: true,
        queueUrl: 'https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
        iamRole: 'arn:aws:iam::123456789012:role/MyRole',
        connectionString: 'DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net',
        path: 'data/logs/*.json',
        azureContainerName: 'mycontainer',
        accessKey: {accessKeyId: '<string>', secretKey: '<string>'}
      },
      kinesis: {
        streamName: 'my-stream',
        region: 'us-east-1',
        useEnhancedFanOut: true,
        timestamp: 1615766400,
        iamRole: 'arn:aws:iam::123456789012:role/MyRole',
        accessKey: {accessKeyId: '<string>', secretKey: '<string>'}
      },
      postgres: {
        host: '<string>',
        port: 123,
        database: '<string>',
        settings: {
          syncIntervalSeconds: 123,
          pullBatchSize: 123,
          publicationName: '<string>',
          replicationSlotName: '<string>',
          allowNullableColumns: true,
          initialLoadParallelism: 123,
          snapshotNumRowsPerPartition: 123,
          snapshotNumberOfParallelTables: 123,
          enableFailoverSlots: true
        },
        tableMappings: [
          {
            sourceSchemaName: '<string>',
            sourceTable: '<string>',
            targetTable: '<string>',
            excludedColumns: ['<string>'],
            useCustomSortingKey: true,
            sortingKeys: ['<string>']
          }
        ],
        credentials: {username: '<string>', password: '<string>'}
      },
      validateSamples: true
    },
    destination: {
      database: '<string>',
      table: '<string>',
      managedTable: true,
      tableDefinition: {
        engine: {versionColumnId: '<string>', columnIds: ['<string>']},
        sortingKey: ['<string>'],
        partitionBy: '<string>',
        primaryKey: '<string>'
      },
      columns: [{name: '<string>', type: '<string>'}],
      roles: ['<string>']
    },
    fieldMappings: [{sourceField: '<string>', destinationField: '<string>'}],
    scaling: {
      replicas: 123,
      concurrency: 123,
      replicaCpuMillicores: 1062,
      replicaMemoryGb: 4.25
    },
    settings: {
      streaming_max_insert_wait_ms: 5000,
      object_storage_concurrency: 1,
      object_storage_polling_interval_ms: 30000,
      object_storage_max_insert_bytes: 10737418240,
      object_storage_max_file_count: 100,
      clickhouse_max_threads: 8,
      clickhouse_max_insert_threads: 1,
      clickhouse_min_insert_block_size_bytes: 1073741824,
      clickhouse_max_download_threads: 4,
      clickhouse_parallel_distributed_insert_select: 2,
      object_storage_use_cluster_function: true,
      clickhouse_parallel_view_processing: false
    }
  })
};

fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'name' => '<string>',
    'source' => [
        'kafka' => [
                'brokers' => '<string>',
                'topics' => '<string>',
                'consumerGroup' => 'my-clickpipe-consumer-group',
                'iamRole' => 'arn:aws:iam::123456789012:role/MyRole',
                'offset' => [
                                'timestamp' => '2021-01-01T00:00'
                ],
                'schemaRegistry' => [
                                'url' => 'https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004',
                                'authentication' => 'PLAIN',
                                'caCertificate' => '<string>',
                                'credentials' => [
                                                                'username' => '<string>',
                                                                'password' => '<string>'
                                ]
                ],
                'caCertificate' => '<string>',
                'reversePrivateEndpointIds' => [
                                '<string>'
                ],
                'credentials' => [
                                'username' => '<string>',
                                'password' => '<string>'
                ]
        ],
        'objectStorage' => [
                'url' => 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz',
                'delimiter' => ',',
                'compression' => 'auto',
                'isContinuous' => true,
                'queueUrl' => 'https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
                'iamRole' => 'arn:aws:iam::123456789012:role/MyRole',
                'connectionString' => 'DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net',
                'path' => 'data/logs/*.json',
                'azureContainerName' => 'mycontainer',
                'accessKey' => [
                                'accessKeyId' => '<string>',
                                'secretKey' => '<string>'
                ]
        ],
        'kinesis' => [
                'streamName' => 'my-stream',
                'region' => 'us-east-1',
                'useEnhancedFanOut' => true,
                'timestamp' => 1615766400,
                'iamRole' => 'arn:aws:iam::123456789012:role/MyRole',
                'accessKey' => [
                                'accessKeyId' => '<string>',
                                'secretKey' => '<string>'
                ]
        ],
        'postgres' => [
                'host' => '<string>',
                'port' => 123,
                'database' => '<string>',
                'settings' => [
                                'syncIntervalSeconds' => 123,
                                'pullBatchSize' => 123,
                                'publicationName' => '<string>',
                                'replicationSlotName' => '<string>',
                                'allowNullableColumns' => true,
                                'initialLoadParallelism' => 123,
                                'snapshotNumRowsPerPartition' => 123,
                                'snapshotNumberOfParallelTables' => 123,
                                'enableFailoverSlots' => true
                ],
                'tableMappings' => [
                                [
                                                                'sourceSchemaName' => '<string>',
                                                                'sourceTable' => '<string>',
                                                                'targetTable' => '<string>',
                                                                'excludedColumns' => [
                                                                                                                                '<string>'
                                                                ],
                                                                'useCustomSortingKey' => true,
                                                                'sortingKeys' => [
                                                                                                                                '<string>'
                                                                ]
                                ]
                ],
                'credentials' => [
                                'username' => '<string>',
                                'password' => '<string>'
                ]
        ],
        'validateSamples' => true
    ],
    'destination' => [
        'database' => '<string>',
        'table' => '<string>',
        'managedTable' => true,
        'tableDefinition' => [
                'engine' => [
                                'versionColumnId' => '<string>',
                                'columnIds' => [
                                                                '<string>'
                                ]
                ],
                'sortingKey' => [
                                '<string>'
                ],
                'partitionBy' => '<string>',
                'primaryKey' => '<string>'
        ],
        'columns' => [
                [
                                'name' => '<string>',
                                'type' => '<string>'
                ]
        ],
        'roles' => [
                '<string>'
        ]
    ],
    'fieldMappings' => [
        [
                'sourceField' => '<string>',
                'destinationField' => '<string>'
        ]
    ],
    'scaling' => [
        'replicas' => 123,
        'concurrency' => 123,
        'replicaCpuMillicores' => 1062,
        'replicaMemoryGb' => 4.25
    ],
    'settings' => [
        'streaming_max_insert_wait_ms' => 5000,
        'object_storage_concurrency' => 1,
        'object_storage_polling_interval_ms' => 30000,
        'object_storage_max_insert_bytes' => 10737418240,
        'object_storage_max_file_count' => 100,
        'clickhouse_max_threads' => 8,
        'clickhouse_max_insert_threads' => 1,
        'clickhouse_min_insert_block_size_bytes' => 1073741824,
        'clickhouse_max_download_threads' => 4,
        'clickhouse_parallel_distributed_insert_select' => 2,
        'object_storage_use_cluster_function' => true,
        'clickhouse_parallel_view_processing' => false
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Basic <encoded-value>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes"

	payload := strings.NewReader("{\n  \"name\": \"<string>\",\n  \"source\": {\n    \"kafka\": {\n      \"brokers\": \"<string>\",\n      \"topics\": \"<string>\",\n      \"consumerGroup\": \"my-clickpipe-consumer-group\",\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"offset\": {\n        \"timestamp\": \"2021-01-01T00:00\"\n      },\n      \"schemaRegistry\": {\n        \"url\": \"https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004\",\n        \"authentication\": \"PLAIN\",\n        \"caCertificate\": \"<string>\",\n        \"credentials\": {\n          \"username\": \"<string>\",\n          \"password\": \"<string>\"\n        }\n      },\n      \"caCertificate\": \"<string>\",\n      \"reversePrivateEndpointIds\": [\n        \"<string>\"\n      ],\n      \"credentials\": {\n        \"username\": \"<string>\",\n        \"password\": \"<string>\"\n      }\n    },\n    \"objectStorage\": {\n      \"url\": \"https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz\",\n      \"delimiter\": \",\",\n      \"compression\": \"auto\",\n      \"isContinuous\": true,\n      \"queueUrl\": \"https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue\",\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"connectionString\": \"DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net\",\n      \"path\": \"data/logs/*.json\",\n      \"azureContainerName\": \"mycontainer\",\n      \"accessKey\": {\n        \"accessKeyId\": \"<string>\",\n        \"secretKey\": \"<string>\"\n      }\n    },\n    \"kinesis\": {\n      \"streamName\": \"my-stream\",\n      \"region\": \"us-east-1\",\n      \"useEnhancedFanOut\": true,\n      \"timestamp\": 1615766400,\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"accessKey\": {\n        \"accessKeyId\": \"<string>\",\n        \"secretKey\": \"<string>\"\n      }\n    },\n    \"postgres\": {\n      \"host\": \"<string>\",\n      \"port\": 123,\n      \"database\": \"<string>\",\n      \"settings\": {\n        \"syncIntervalSeconds\": 123,\n        \"pullBatchSize\": 123,\n        \"publicationName\": \"<string>\",\n        \"replicationSlotName\": \"<string>\",\n        \"allowNullableColumns\": true,\n        \"initialLoadParallelism\": 123,\n        \"snapshotNumRowsPerPartition\": 123,\n        \"snapshotNumberOfParallelTables\": 123,\n        \"enableFailoverSlots\": true\n      },\n      \"tableMappings\": [\n        {\n          \"sourceSchemaName\": \"<string>\",\n          \"sourceTable\": \"<string>\",\n          \"targetTable\": \"<string>\",\n          \"excludedColumns\": [\n            \"<string>\"\n          ],\n          \"useCustomSortingKey\": true,\n          \"sortingKeys\": [\n            \"<string>\"\n          ]\n        }\n      ],\n      \"credentials\": {\n        \"username\": \"<string>\",\n        \"password\": \"<string>\"\n      }\n    },\n    \"validateSamples\": true\n  },\n  \"destination\": {\n    \"database\": \"<string>\",\n    \"table\": \"<string>\",\n    \"managedTable\": true,\n    \"tableDefinition\": {\n      \"engine\": {\n        \"versionColumnId\": \"<string>\",\n        \"columnIds\": [\n          \"<string>\"\n        ]\n      },\n      \"sortingKey\": [\n        \"<string>\"\n      ],\n      \"partitionBy\": \"<string>\",\n      \"primaryKey\": \"<string>\"\n    },\n    \"columns\": [\n      {\n        \"name\": \"<string>\",\n        \"type\": \"<string>\"\n      }\n    ],\n    \"roles\": [\n      \"<string>\"\n    ]\n  },\n  \"fieldMappings\": [\n    {\n      \"sourceField\": \"<string>\",\n      \"destinationField\": \"<string>\"\n    }\n  ],\n  \"scaling\": {\n    \"replicas\": 123,\n    \"concurrency\": 123,\n    \"replicaCpuMillicores\": 1062,\n    \"replicaMemoryGb\": 4.25\n  },\n  \"settings\": {\n    \"streaming_max_insert_wait_ms\": 5000,\n    \"object_storage_concurrency\": 1,\n    \"object_storage_polling_interval_ms\": 30000,\n    \"object_storage_max_insert_bytes\": 10737418240,\n    \"object_storage_max_file_count\": 100,\n    \"clickhouse_max_threads\": 8,\n    \"clickhouse_max_insert_threads\": 1,\n    \"clickhouse_min_insert_block_size_bytes\": 1073741824,\n    \"clickhouse_max_download_threads\": 4,\n    \"clickhouse_parallel_distributed_insert_select\": 2,\n    \"object_storage_use_cluster_function\": true,\n    \"clickhouse_parallel_view_processing\": false\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Basic <encoded-value>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes")
  .header("Authorization", "Basic <encoded-value>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"<string>\",\n  \"source\": {\n    \"kafka\": {\n      \"brokers\": \"<string>\",\n      \"topics\": \"<string>\",\n      \"consumerGroup\": \"my-clickpipe-consumer-group\",\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"offset\": {\n        \"timestamp\": \"2021-01-01T00:00\"\n      },\n      \"schemaRegistry\": {\n        \"url\": \"https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004\",\n        \"authentication\": \"PLAIN\",\n        \"caCertificate\": \"<string>\",\n        \"credentials\": {\n          \"username\": \"<string>\",\n          \"password\": \"<string>\"\n        }\n      },\n      \"caCertificate\": \"<string>\",\n      \"reversePrivateEndpointIds\": [\n        \"<string>\"\n      ],\n      \"credentials\": {\n        \"username\": \"<string>\",\n        \"password\": \"<string>\"\n      }\n    },\n    \"objectStorage\": {\n      \"url\": \"https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz\",\n      \"delimiter\": \",\",\n      \"compression\": \"auto\",\n      \"isContinuous\": true,\n      \"queueUrl\": \"https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue\",\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"connectionString\": \"DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net\",\n      \"path\": \"data/logs/*.json\",\n      \"azureContainerName\": \"mycontainer\",\n      \"accessKey\": {\n        \"accessKeyId\": \"<string>\",\n        \"secretKey\": \"<string>\"\n      }\n    },\n    \"kinesis\": {\n      \"streamName\": \"my-stream\",\n      \"region\": \"us-east-1\",\n      \"useEnhancedFanOut\": true,\n      \"timestamp\": 1615766400,\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"accessKey\": {\n        \"accessKeyId\": \"<string>\",\n        \"secretKey\": \"<string>\"\n      }\n    },\n    \"postgres\": {\n      \"host\": \"<string>\",\n      \"port\": 123,\n      \"database\": \"<string>\",\n      \"settings\": {\n        \"syncIntervalSeconds\": 123,\n        \"pullBatchSize\": 123,\n        \"publicationName\": \"<string>\",\n        \"replicationSlotName\": \"<string>\",\n        \"allowNullableColumns\": true,\n        \"initialLoadParallelism\": 123,\n        \"snapshotNumRowsPerPartition\": 123,\n        \"snapshotNumberOfParallelTables\": 123,\n        \"enableFailoverSlots\": true\n      },\n      \"tableMappings\": [\n        {\n          \"sourceSchemaName\": \"<string>\",\n          \"sourceTable\": \"<string>\",\n          \"targetTable\": \"<string>\",\n          \"excludedColumns\": [\n            \"<string>\"\n          ],\n          \"useCustomSortingKey\": true,\n          \"sortingKeys\": [\n            \"<string>\"\n          ]\n        }\n      ],\n      \"credentials\": {\n        \"username\": \"<string>\",\n        \"password\": \"<string>\"\n      }\n    },\n    \"validateSamples\": true\n  },\n  \"destination\": {\n    \"database\": \"<string>\",\n    \"table\": \"<string>\",\n    \"managedTable\": true,\n    \"tableDefinition\": {\n      \"engine\": {\n        \"versionColumnId\": \"<string>\",\n        \"columnIds\": [\n          \"<string>\"\n        ]\n      },\n      \"sortingKey\": [\n        \"<string>\"\n      ],\n      \"partitionBy\": \"<string>\",\n      \"primaryKey\": \"<string>\"\n    },\n    \"columns\": [\n      {\n        \"name\": \"<string>\",\n        \"type\": \"<string>\"\n      }\n    ],\n    \"roles\": [\n      \"<string>\"\n    ]\n  },\n  \"fieldMappings\": [\n    {\n      \"sourceField\": \"<string>\",\n      \"destinationField\": \"<string>\"\n    }\n  ],\n  \"scaling\": {\n    \"replicas\": 123,\n    \"concurrency\": 123,\n    \"replicaCpuMillicores\": 1062,\n    \"replicaMemoryGb\": 4.25\n  },\n  \"settings\": {\n    \"streaming_max_insert_wait_ms\": 5000,\n    \"object_storage_concurrency\": 1,\n    \"object_storage_polling_interval_ms\": 30000,\n    \"object_storage_max_insert_bytes\": 10737418240,\n    \"object_storage_max_file_count\": 100,\n    \"clickhouse_max_threads\": 8,\n    \"clickhouse_max_insert_threads\": 1,\n    \"clickhouse_min_insert_block_size_bytes\": 1073741824,\n    \"clickhouse_max_download_threads\": 4,\n    \"clickhouse_parallel_distributed_insert_select\": 2,\n    \"object_storage_use_cluster_function\": true,\n    \"clickhouse_parallel_view_processing\": false\n  }\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"name\": \"<string>\",\n  \"source\": {\n    \"kafka\": {\n      \"brokers\": \"<string>\",\n      \"topics\": \"<string>\",\n      \"consumerGroup\": \"my-clickpipe-consumer-group\",\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"offset\": {\n        \"timestamp\": \"2021-01-01T00:00\"\n      },\n      \"schemaRegistry\": {\n        \"url\": \"https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004\",\n        \"authentication\": \"PLAIN\",\n        \"caCertificate\": \"<string>\",\n        \"credentials\": {\n          \"username\": \"<string>\",\n          \"password\": \"<string>\"\n        }\n      },\n      \"caCertificate\": \"<string>\",\n      \"reversePrivateEndpointIds\": [\n        \"<string>\"\n      ],\n      \"credentials\": {\n        \"username\": \"<string>\",\n        \"password\": \"<string>\"\n      }\n    },\n    \"objectStorage\": {\n      \"url\": \"https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz\",\n      \"delimiter\": \",\",\n      \"compression\": \"auto\",\n      \"isContinuous\": true,\n      \"queueUrl\": \"https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue\",\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"connectionString\": \"DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net\",\n      \"path\": \"data/logs/*.json\",\n      \"azureContainerName\": \"mycontainer\",\n      \"accessKey\": {\n        \"accessKeyId\": \"<string>\",\n        \"secretKey\": \"<string>\"\n      }\n    },\n    \"kinesis\": {\n      \"streamName\": \"my-stream\",\n      \"region\": \"us-east-1\",\n      \"useEnhancedFanOut\": true,\n      \"timestamp\": 1615766400,\n      \"iamRole\": \"arn:aws:iam::123456789012:role/MyRole\",\n      \"accessKey\": {\n        \"accessKeyId\": \"<string>\",\n        \"secretKey\": \"<string>\"\n      }\n    },\n    \"postgres\": {\n      \"host\": \"<string>\",\n      \"port\": 123,\n      \"database\": \"<string>\",\n      \"settings\": {\n        \"syncIntervalSeconds\": 123,\n        \"pullBatchSize\": 123,\n        \"publicationName\": \"<string>\",\n        \"replicationSlotName\": \"<string>\",\n        \"allowNullableColumns\": true,\n        \"initialLoadParallelism\": 123,\n        \"snapshotNumRowsPerPartition\": 123,\n        \"snapshotNumberOfParallelTables\": 123,\n        \"enableFailoverSlots\": true\n      },\n      \"tableMappings\": [\n        {\n          \"sourceSchemaName\": \"<string>\",\n          \"sourceTable\": \"<string>\",\n          \"targetTable\": \"<string>\",\n          \"excludedColumns\": [\n            \"<string>\"\n          ],\n          \"useCustomSortingKey\": true,\n          \"sortingKeys\": [\n            \"<string>\"\n          ]\n        }\n      ],\n      \"credentials\": {\n        \"username\": \"<string>\",\n        \"password\": \"<string>\"\n      }\n    },\n    \"validateSamples\": true\n  },\n  \"destination\": {\n    \"database\": \"<string>\",\n    \"table\": \"<string>\",\n    \"managedTable\": true,\n    \"tableDefinition\": {\n      \"engine\": {\n        \"versionColumnId\": \"<string>\",\n        \"columnIds\": [\n          \"<string>\"\n        ]\n      },\n      \"sortingKey\": [\n        \"<string>\"\n      ],\n      \"partitionBy\": \"<string>\",\n      \"primaryKey\": \"<string>\"\n    },\n    \"columns\": [\n      {\n        \"name\": \"<string>\",\n        \"type\": \"<string>\"\n      }\n    ],\n    \"roles\": [\n      \"<string>\"\n    ]\n  },\n  \"fieldMappings\": [\n    {\n      \"sourceField\": \"<string>\",\n      \"destinationField\": \"<string>\"\n    }\n  ],\n  \"scaling\": {\n    \"replicas\": 123,\n    \"concurrency\": 123,\n    \"replicaCpuMillicores\": 1062,\n    \"replicaMemoryGb\": 4.25\n  },\n  \"settings\": {\n    \"streaming_max_insert_wait_ms\": 5000,\n    \"object_storage_concurrency\": 1,\n    \"object_storage_polling_interval_ms\": 30000,\n    \"object_storage_max_insert_bytes\": 10737418240,\n    \"object_storage_max_file_count\": 100,\n    \"clickhouse_max_threads\": 8,\n    \"clickhouse_max_insert_threads\": 1,\n    \"clickhouse_min_insert_block_size_bytes\": 1073741824,\n    \"clickhouse_max_download_threads\": 4,\n    \"clickhouse_parallel_distributed_insert_select\": 2,\n    \"object_storage_use_cluster_function\": true,\n    \"clickhouse_parallel_view_processing\": false\n  }\n}"

response = http.request(request)
puts response.read_body
{
  "status": 200,
  "requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "result": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "state": "<string>",
    "scaling": {
      "replicas": 123,
      "concurrency": 123,
      "replicaCpuMillicores": 1062,
      "replicaMemoryGb": 4.25
    },
    "source": {
      "kafka": {
        "brokers": "<string>",
        "topics": "<string>",
        "consumerGroup": "my-clickpipe-consumer-group",
        "iamRole": "arn:aws:iam::123456789012:role/MyRole",
        "offset": {
          "timestamp": "2021-01-01T00:00"
        },
        "schemaRegistry": {
          "url": "https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004",
          "authentication": "PLAIN",
          "caCertificate": "<string>"
        },
        "caCertificate": "<string>",
        "reversePrivateEndpointIds": [
          "<string>"
        ]
      },
      "objectStorage": {
        "url": "https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz",
        "delimiter": ",",
        "compression": "auto",
        "isContinuous": true,
        "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue",
        "iamRole": "arn:aws:iam::123456789012:role/MyRole",
        "connectionString": "DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net",
        "path": "data/logs/*.json",
        "azureContainerName": "mycontainer"
      },
      "kinesis": {
        "streamName": "my-stream",
        "region": "us-east-1",
        "useEnhancedFanOut": true,
        "timestamp": 1615766400,
        "iamRole": "arn:aws:iam::123456789012:role/MyRole"
      },
      "postgres": {
        "host": "<string>",
        "port": 123,
        "database": "<string>",
        "settings": {
          "syncIntervalSeconds": 123,
          "pullBatchSize": 123,
          "publicationName": "<string>",
          "replicationSlotName": "<string>",
          "allowNullableColumns": true,
          "initialLoadParallelism": 123,
          "snapshotNumRowsPerPartition": 123,
          "snapshotNumberOfParallelTables": 123,
          "enableFailoverSlots": true
        },
        "tableMappings": [
          {
            "sourceSchemaName": "<string>",
            "sourceTable": "<string>",
            "targetTable": "<string>",
            "excludedColumns": [
              "<string>"
            ],
            "useCustomSortingKey": true,
            "sortingKeys": [
              "<string>"
            ]
          }
        ]
      }
    },
    "destination": {
      "database": "<string>",
      "table": "<string>",
      "managedTable": true,
      "tableDefinition": {
        "engine": {
          "versionColumnId": "<string>",
          "columnIds": [
            "<string>"
          ]
        },
        "sortingKey": [
          "<string>"
        ],
        "partitionBy": "<string>",
        "primaryKey": "<string>"
      },
      "columns": [
        {
          "name": "<string>",
          "type": "<string>"
        }
      ]
    },
    "fieldMappings": [
      {
        "sourceField": "<string>",
        "destinationField": "<string>"
      }
    ],
    "settings": {
      "streaming_max_insert_wait_ms": 5000,
      "object_storage_concurrency": 1,
      "object_storage_polling_interval_ms": 30000,
      "object_storage_max_insert_bytes": 10737418240,
      "object_storage_max_file_count": 100,
      "clickhouse_max_threads": 8,
      "clickhouse_max_insert_threads": 1,
      "clickhouse_min_insert_block_size_bytes": 1073741824,
      "clickhouse_max_download_threads": 4,
      "clickhouse_parallel_distributed_insert_select": 2,
      "object_storage_use_cluster_function": true,
      "clickhouse_parallel_view_processing": false
    },
    "createdAt": "<string>",
    "updatedAt": "<string>"
  }
}
{
  "status": 400,
  "error": "<string>"
}

Authorizations

Authorization
string
header
required

Use key ID and key secret obtained in ClickHouse Cloud console: https://clickhouse.com/docs/cloud/manage/openapi

Path Parameters

organizationId
string<uuid>
required

ID of the organization that owns the service.

serviceId
string<uuid>
required

ID of the service to create the ClickPipe for.

Body

application/json
name
string

Name of the ClickPipe.

source
object
destination
object
fieldMappings
object[]

Field mappings of the ClickPipe. Note that all destination columns must be included in the mappings.

scaling
object
settings
object

Response

Successful response

status
number

HTTP status code.

Example:

200

requestId
string<uuid>

Unique id assigned to every request. UUIDv4

result
object
Last modified on July 3, 2026