---
title: "Create or update zone"
type: reference
method: POST
path: /rest-api/zones/update.do
tag: "Zones"
---

# Create or update zone

`POST https://YOUR-NETWORK-DOMAIN/rest-api/zones/update.do`

Creates a new zone or updates an existing one under a publisher site. To update, provide the zone's numeric ID; to create, omit the ID. The zone name is mandatory, while description is optional. For new zones, a valid siteId is required to specify which site the zone belongs to, and the caller needs INVENTORY CREATE; on an update, a different siteId moves the zone and needs UPDATE on both the site it leaves and the site it joins; its placements keep their keys, so their published ad tags keep working. If the user has the MANAGE_ZONES_ACTIVE_STATUS permission, the zone's active status can also be toggled. Activation and deactivation events are logged separately. Parameters that were sent but not applied are listed in 'ignoredFields', each with its reason in 'ignoredFieldReasons'.

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `id` | integer | no | `3001` | ID of the zone to update — omit (or 0) to create a new zone |
| `siteId` | integer | no | `2001` | ID of the site the zone belongs to — needed when creating; on update, moves the zone to this site |
| `active` | boolean | no | `true` | Whether the zone is active |
| `description` | string | no | `Groups all content-area placements` | Zone description |
| `enableRules` | boolean | no | `false` | Whether rule-based optimization is enabled for this zone |
| `enableTargeting` | boolean | no | `true` | Enable pretargeting rules for this zone |
| `name` | string | no | `Main Content Zone` | Zone name |
| `operationBetweenRuleTypes` | string | no | `AND` | Logical operator between different targeting rule types (AND, OR) |

## Responses

- `200` — Zone created or updated successfully
- `400` — Bad request — invalid or missing parameters
- `401` — Authentication error
- `403` — Insufficient privileges to manage zones
- `404` — Associated site not found

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/zones/update.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'id=3001' \
  --data-urlencode 'siteId=2001' \
  --data-urlencode 'name=Main Content Zone' \
  --data-urlencode 'active=true' \
  --data-urlencode 'description=Groups all content-area placements'
```

Source: https://epom.com/ad-server/docs/api/zones/post-zones-update