Replace Postgres service configuration
This endpoint is in beta. API contract is stable, and no breaking changes are expected in the future.
Replace the existing Postgres service and pgBouncer configuration.
POST
/
v1
/
organizations
/
{organizationId}
/
postgres
/
{postgresId}
/
config
Replace Postgres service configuration
curl --request POST \
--url https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"pgConfig": {
"max_connections": 100
},
"pgBouncerConfig": {
"default_pool_size": "16"
}
}
'import requests
url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config"
payload = {
"pgConfig": { "max_connections": 100 },
"pgBouncerConfig": { "default_pool_size": "16" }
}
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({pgConfig: {max_connections: 100}, pgBouncerConfig: {default_pool_size: '16'}})
};
fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config', 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}/postgres/{postgresId}/config",
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([
'pgConfig' => [
'max_connections' => 100
],
'pgBouncerConfig' => [
'default_pool_size' => '16'
]
]),
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}/postgres/{postgresId}/config"
payload := strings.NewReader("{\n \"pgConfig\": {\n \"max_connections\": 100\n },\n \"pgBouncerConfig\": {\n \"default_pool_size\": \"16\"\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}/postgres/{postgresId}/config")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"pgConfig\": {\n \"max_connections\": 100\n },\n \"pgBouncerConfig\": {\n \"default_pool_size\": \"16\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config")
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 \"pgConfig\": {\n \"max_connections\": 100\n },\n \"pgBouncerConfig\": {\n \"default_pool_size\": \"16\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {
"pgConfig": {
"max_connections": 100
},
"pgBouncerConfig": {
"default_pool_size": "16"
},
"message": "<string>"
}
}{
"status": 400,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"status": 500,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Beta
This endpoint is in beta. API contract is stable, and no breaking changes are expected in the future.
Replace the existing Postgres service and pgBouncer configuration.
Replace the existing Postgres service and pgBouncer configuration.
Authorizations
Use key ID and key secret obtained in ClickHouse Cloud console: https://clickhouse.com/docs/cloud/manage/openapi
Path Parameters
ID of the organization that owns the Postgres service.
ID of the requested Postgres service.
Body
application/json
Postgres runtime configuration configuration.
Show child attributes
Show child attributes
Example:
{ "max_connections": 100 }
PgBouncer runtime configuration configuration.
Show child attributes
Show child attributes
Example:
{ "default_pool_size": "16" }
Last modified on July 9, 2026
Was this page helpful?
⌘I
Replace Postgres service configuration
curl --request POST \
--url https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"pgConfig": {
"max_connections": 100
},
"pgBouncerConfig": {
"default_pool_size": "16"
}
}
'import requests
url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config"
payload = {
"pgConfig": { "max_connections": 100 },
"pgBouncerConfig": { "default_pool_size": "16" }
}
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({pgConfig: {max_connections: 100}, pgBouncerConfig: {default_pool_size: '16'}})
};
fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config', 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}/postgres/{postgresId}/config",
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([
'pgConfig' => [
'max_connections' => 100
],
'pgBouncerConfig' => [
'default_pool_size' => '16'
]
]),
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}/postgres/{postgresId}/config"
payload := strings.NewReader("{\n \"pgConfig\": {\n \"max_connections\": 100\n },\n \"pgBouncerConfig\": {\n \"default_pool_size\": \"16\"\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}/postgres/{postgresId}/config")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"pgConfig\": {\n \"max_connections\": 100\n },\n \"pgBouncerConfig\": {\n \"default_pool_size\": \"16\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/postgres/{postgresId}/config")
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 \"pgConfig\": {\n \"max_connections\": 100\n },\n \"pgBouncerConfig\": {\n \"default_pool_size\": \"16\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {
"pgConfig": {
"max_connections": 100
},
"pgBouncerConfig": {
"default_pool_size": "16"
},
"message": "<string>"
}
}{
"status": 400,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"status": 500,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}