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

# Private zones

> Zones that answer only inside the VPCs you attach to them.

## Private zones

A zone is `public` or `private`, fixed at creation.

```bash theme={null}
POST /v1/zones
{
  "name": "internal.example.com",
  "visibility": "private",
  "vpc_ids": ["c3d4e5f6-a7b8-4901-c2d3-e4f5a6b7c8d9"]
}
```

A private zone answers only inside the VPCs associated with it, and needs at
least one at creation. Attach or detach more later through the
`vpc-associations` endpoints.

<Note>
  The console's **Create Zone** form has a **Visibility** card with a private
  switch and the VPC list. Visibility is fixed at creation either way, so a
  zone made public stays public.

  VPCs are regional and DNS is global: the create form offers the region you
  are currently in. Attach VPCs from other regions afterwards, from the zone's
  **Settings** tab.
</Note>

<Note>
  The two mismatches are rejected rather than quietly corrected: a `private`
  zone with no `vpc_ids`, and a `public` zone that carries them, both answer
  `400`.
</Note>
