Voiceflow bearer token
Clone environment
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/clone \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"alias": "<string>"
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/clone?projectID=<projectID>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"alias": "<string>"
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/clone?projectID=<projectID>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"alias": "<string>"
},
)
data = response.json()vf environment clone --environment-alias <environmentAlias> --project-id <projectID> \
< body.json{
"environment": {
"name": "<string>",
"alias": "<string>",
"isMain": true,
"releases": [
{
"name": "<string>",
"backupID": 0,
"createdAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"autogenerated": true
}
],
"createdAt": "2026-09-10T00:00:00.000Z",
"trafficPercentage": 0
}
}Clone environment
Copies an environment into a new one under an alias you choose, giving somewhere to change the agent without touching the environment being cloned.
POST
/v1/stable/environment/{environmentAlias}/clone
Clone environment
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/clone \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"alias": "<string>"
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/clone?projectID=<projectID>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"alias": "<string>"
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/clone?projectID=<projectID>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"alias": "<string>"
},
)
data = response.json()vf environment clone --environment-alias <environmentAlias> --project-id <projectID> \
< body.json{
"environment": {
"name": "<string>",
"alias": "<string>",
"isMain": true,
"releases": [
{
"name": "<string>",
"backupID": 0,
"createdAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"autogenerated": true
}
],
"createdAt": "2026-09-10T00:00:00.000Z",
"trafficPercentage": 0
}
}Authorizations
Body
Response
201 - application/jsonReturns the new environment, including the alias that subsequent calls pass as environmentAlias to target it.
Show child attributes
Show child attributes
Was this page helpful?
Thanks for your feedback.