Voiceflow bearer token
Publish environment
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/publish \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"description": null
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/publish?projectID=<projectID>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"description": null
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/publish?projectID=<projectID>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"description": None
},
)
data = response.json()vf environment publish --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
},
"release": {
"name": "<string>",
"backupID": 0,
"createdAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"autogenerated": true
}
}Publish environment
Promotes the environment’s draft to its published version, which is the copy real traffic reaches. The request names the release so it can be told apart in the history.
POST
/v1/stable/environment/{environmentAlias}/publish
Publish environment
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/publish \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"description": null
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/publish?projectID=<projectID>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"description": null
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/environment/<environmentAlias>/publish?projectID=<projectID>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"description": None
},
)
data = response.json()vf environment publish --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
},
"release": {
"name": "<string>",
"backupID": 0,
"createdAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"autogenerated": true
}
}Authorizations
Body
Response
201 - application/jsonReturns the environment together with the release the publish produced, giving the release name, its description, when it was created, and the ID of the backup that snapshots the environment at that release.
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
Thanks for your feedback.