> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voiceflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Publishing through environments

> Every environment holds a draft and a published version. Clone one to stage a change, merge it back, publish it, and split live traffic between them.

Environments are how a change gets from something you are editing to something
real traffic reaches. Cloning, merging, publishing, and traffic splitting all
act on them.

## Draft and published

Every environment holds two versions of the agent. The **draft** is what you
edit and what `version: "draft"` runs when you
[send a conversation](/api-reference/sections/test). The **published** version is
what real traffic reaches. Publishing promotes the draft to published; nothing
you change before that is visible to users.

New projects start with a single environment called `main`. Passing an alias
the project does not have returns `400 invalid environment tag`, so list them
first if you are not sure:

```bash theme={null}
curl "https://realtime-api.voiceflow.com/v1/stable/environment?projectID=$VF_PROJECT_ID" \
  -H "Authorization: Bearer $VF_PAT"
```

## Working with more than one

* **Clone** copies an existing environment into a new one. This is how you get
  a second environment to build against without touching `main`.
* **Merge** folds one environment's changes back into another.
* **Publish** promotes an environment's draft to its published version.
* **Update traffic split** routes a share of live conversations to a different
  environment, which is how you run one version against another on real
  traffic.
* **Export** returns the environment as JSON, for backup or for inspecting a
  build outside Voiceflow.
* **Compile** builds the environment without publishing it, so you can surface
  errors before users would.

## Secrets

Secret values are environment-scoped, so the same secret name can hold a test
value in one environment and a production value in another. They are not
managed through the environment endpoints today.

## Where to go next

After publishing, [watch what happens](/api-reference/sections/observe) in the
transcripts, and [measure it](/api-reference/sections/insights).
