# The 8, 16 or 32 zones

`POST https://api.astroway.info/v1/vastu/zones`

The compass split into 8, 16 or 32 centred sectors with exact bounds. For 16, each zone carries its room from Muhurta Chintamani 12.21, a short reading in our own words, elements and colours as sourced variants (writers disagree), and a guardian and planet only where a source names one. Send a plan in the /vastu/plan format and each zone lists the rooms and fixtures that fall in it, read from the area centre or the grid centre.

Group: Vastu Shastra. Auth: `X-Api-Key` header. Operation ID: `vastu_zones`.

## Parameters

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `fields` | query | no | string | Comma-separated dotted paths, relative to `data`, to keep in the response. A path is applied to every element of an array, so `planets.name` means the name of each planet. Paths that match nothing come back in `_fields_unmatched`; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer. |
| `precision` | query | no | integer | Round every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute. |
| `Idempotency-Key` | header | no | string | Unique per logical operation, kept across retries. For 24 hours from the first request, a repeat with the same key, method, path, body and query string returns the stored response with `Idempotent-Replayed: true` and costs 0 credits. The same key with a different body or query string is a 409 `IDEMPOTENCY_KEY_REUSED`; a repeat while the first is still running is a 409 `IDEMPOTENCY_IN_PROGRESS`. Only 2xx responses are kept. See /idempotency/. |

## Request body

| Field | Type | Required | Description |
|---|---|---|---|
| `coords` | object | no |  |
| `coords.system` | "image" \| "metric" | yes |  |
| `coords.width` | number | no |  |
| `coords.height` | number | no |  |
| `coords.normalized` | boolean | no |  |
| `coords.units` | "m" \| "ft" | no |  |
| `northAngle` | number | no |  |
| `northReference` | "true" \| "magnetic" | no |  |
| `declination` | number | no |  |
| `boundary` | number[][] | no |  |
| `rooms` | object[] | no |  |
| `items` | object[] | no |  |
| `entrance` | number[] | no |  |
| `entranceMethod` | "eight-per-side" \| "mandala-cells" | no |  |
| `facing` | "E" \| "S" \| "W" \| "N" | no |  |
| `school` | "brihat-samhita" \| "mayamata" \| "sixteen-zone" | no |  |
| `scoreVersion` | 1 \| 2 | no |  |
| `granularity` | 8 \| 16 \| 32 | no |  |
| `centre` | "area" \| "grid" | no |  |

```json
{
  "granularity": 16
}
```

## Responses

| Status | Meaning |
|---|---|
| 200 | Successful calculation |
| 400 | Validation error |
| 401 | Missing or invalid API key |

### Success fields, under `data`

| Field | Type | Required | Description |
|---|---|---|---|
| `granularity` | number | no |  |
| `order` | string[] | no |  |
| `from` | object | no |  |
| `zones` | object[] | no |  |
| `warnings` | object[] | no |  |
| `notes` | string[] | no |  |

## Example

```bash
curl -X POST https://api.astroway.info/v1/vastu/zones \
  -H "X-Api-Key: aw_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "granularity": 16 }'
```

---

Rendered from https://api.astroway.info/v1/openapi.json. HTML page: https://api.astroway.info/docs/api/operations/vastu_zones/
