curl --request POST \
--url https://api.qovery.com/environment/{environmentId}/clone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mode": "PRODUCTION",
"apply_deployment_rule": false,
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.qovery.com/environment/{environmentId}/clone"
payload = {
"name": "<string>",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mode": "PRODUCTION",
"apply_deployment_rule": False,
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
cluster_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
mode: 'PRODUCTION',
apply_deployment_rule: false,
project_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.qovery.com/environment/{environmentId}/clone', 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.qovery.com/environment/{environmentId}/clone",
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>',
'cluster_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'mode' => 'PRODUCTION',
'apply_deployment_rule' => false,
'project_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.qovery.com/environment/{environmentId}/clone"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"cluster_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mode\": \"PRODUCTION\",\n \"apply_deployment_rule\": false,\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.qovery.com/environment/{environmentId}/clone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"cluster_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mode\": \"PRODUCTION\",\n \"apply_deployment_rule\": false,\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qovery.com/environment/{environmentId}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"cluster_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mode\": \"PRODUCTION\",\n \"apply_deployment_rule\": false,\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"organization": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"project": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"cloud_provider": {
"provider": "aws",
"cluster": "us-east-2"
},
"mode": "PRODUCTION",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updated_at": "2023-11-07T05:31:56Z",
"last_updated_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_name": "<string>",
"expires_at": "2023-11-07T05:31:56Z"
}Clone environment
You must provide a name. This will create a new environment, with the same configuration, and same applications and databases. Database data is not cloned.
curl --request POST \
--url https://api.qovery.com/environment/{environmentId}/clone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mode": "PRODUCTION",
"apply_deployment_rule": false,
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.qovery.com/environment/{environmentId}/clone"
payload = {
"name": "<string>",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mode": "PRODUCTION",
"apply_deployment_rule": False,
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
cluster_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
mode: 'PRODUCTION',
apply_deployment_rule: false,
project_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.qovery.com/environment/{environmentId}/clone', 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.qovery.com/environment/{environmentId}/clone",
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>',
'cluster_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'mode' => 'PRODUCTION',
'apply_deployment_rule' => false,
'project_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.qovery.com/environment/{environmentId}/clone"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"cluster_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mode\": \"PRODUCTION\",\n \"apply_deployment_rule\": false,\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.qovery.com/environment/{environmentId}/clone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"cluster_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mode\": \"PRODUCTION\",\n \"apply_deployment_rule\": false,\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qovery.com/environment/{environmentId}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"cluster_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mode\": \"PRODUCTION\",\n \"apply_deployment_rule\": false,\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"organization": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"project": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"cloud_provider": {
"provider": "aws",
"cluster": "us-east-2"
},
"mode": "PRODUCTION",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"updated_at": "2023-11-07T05:31:56Z",
"last_updated_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_name": "<string>",
"expires_at": "2023-11-07T05:31:56Z"
}Authorizations
JWT tokens should be used with OIDC account (human to machine). JWT tokens used by the Qovery console to communicate with the API have a TTL. Curl Example ' curl https://console.qovery.com/organization -H "Authorization: Bearer $qovery_token" '
Path Parameters
Environment ID
Body
Response
Environment clone has been requested
name is case insensitive
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
DEVELOPMENT, PREVIEW, PRODUCTION, STAGING "PRODUCTION"
uuid of the user that made the last update
Date after which the environment is automatically deleted. Null when the environment never expires, which is the case for every environment except the throwaway ones created for a single agentic workflow run.
Was this page helpful?