Create service backup bucket
This endpoint is in beta. API contract is stable, and no breaking changes are expected in the future.
Create service backup bucket. Requires ADMIN auth key role.
POST
/
v1
/
organizations
/
{organizationId}
/
services
/
{serviceId}
/
backupBucket
Create service backup bucket
curl --request POST \
--url https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"bucketProvider": "AWS",
"bucketPath": "<string>",
"iamRoleArn": "<string>",
"iamRoleSessionName": "<string>"
}
'import requests
url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket"
payload = {
"bucketProvider": "AWS",
"bucketPath": "<string>",
"iamRoleArn": "<string>",
"iamRoleSessionName": "<string>"
}
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({
bucketProvider: 'AWS',
bucketPath: '<string>',
iamRoleArn: '<string>',
iamRoleSessionName: '<string>'
})
};
fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket', 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}/backupBucket",
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([
'bucketProvider' => 'AWS',
'bucketPath' => '<string>',
'iamRoleArn' => '<string>',
'iamRoleSessionName' => '<string>'
]),
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}/backupBucket"
payload := strings.NewReader("{\n \"bucketProvider\": \"AWS\",\n \"bucketPath\": \"<string>\",\n \"iamRoleArn\": \"<string>\",\n \"iamRoleSessionName\": \"<string>\"\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}/backupBucket")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"bucketProvider\": \"AWS\",\n \"bucketPath\": \"<string>\",\n \"iamRoleArn\": \"<string>\",\n \"iamRoleSessionName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket")
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 \"bucketProvider\": \"AWS\",\n \"bucketPath\": \"<string>\",\n \"iamRoleArn\": \"<string>\",\n \"iamRoleSessionName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bucketProvider": "AWS",
"bucketPath": "<string>",
"iamRoleArn": "<string>",
"iamRoleSessionName": "<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.
Create service backup bucket. Requires ADMIN auth key role.
Create service backup bucket. Requires ADMIN auth key role.
Authorizations
Use key ID and key secret obtained in ClickHouse Cloud console: https://clickhouse.com/docs/cloud/manage/openapi
Path Parameters
ID of the requested organization.
ID of the requested service.
Body
application/json
Last modified on July 9, 2026
Was this page helpful?
⌘I
Create service backup bucket
curl --request POST \
--url https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"bucketProvider": "AWS",
"bucketPath": "<string>",
"iamRoleArn": "<string>",
"iamRoleSessionName": "<string>"
}
'import requests
url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket"
payload = {
"bucketProvider": "AWS",
"bucketPath": "<string>",
"iamRoleArn": "<string>",
"iamRoleSessionName": "<string>"
}
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({
bucketProvider: 'AWS',
bucketPath: '<string>',
iamRoleArn: '<string>',
iamRoleSessionName: '<string>'
})
};
fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket', 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}/backupBucket",
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([
'bucketProvider' => 'AWS',
'bucketPath' => '<string>',
'iamRoleArn' => '<string>',
'iamRoleSessionName' => '<string>'
]),
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}/backupBucket"
payload := strings.NewReader("{\n \"bucketProvider\": \"AWS\",\n \"bucketPath\": \"<string>\",\n \"iamRoleArn\": \"<string>\",\n \"iamRoleSessionName\": \"<string>\"\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}/backupBucket")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"bucketProvider\": \"AWS\",\n \"bucketPath\": \"<string>\",\n \"iamRoleArn\": \"<string>\",\n \"iamRoleSessionName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/backupBucket")
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 \"bucketProvider\": \"AWS\",\n \"bucketPath\": \"<string>\",\n \"iamRoleArn\": \"<string>\",\n \"iamRoleSessionName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bucketProvider": "AWS",
"bucketPath": "<string>",
"iamRoleArn": "<string>",
"iamRoleSessionName": "<string>"
}
}{
"status": 400,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"status": 500,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}