# Yearly Forecast

`POST https://api.astroway.info/v1/bazi/yearly`

Compares target year pillar against natal day master + natal year branch. Returns element-flow relation (companion / mother / output / control / wealth) per Sheng-Ke cycle, branch clashes (六冲), and trine support (三合).

Group: BaZi (Four Pillars). Auth: `X-Api-Key` header. Operation ID: `bazi_yearly`.

## 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. |

## Request body

| Field | Type | Required | Description |
|---|---|---|---|
| `natalDate` | string | yes |  |
| `natalTime` | string | no |  |
| `natalTzOffset` | number | no |  |
| `targetYear` | integer | yes |  |
| `language` | string | no |  |

```json
{
  "natalDate": "1990-05-15",
  "targetYear": 2027
}
```

## Responses

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

### Success fields, under `data`

| Field | Type | Required | Description |
|---|---|---|---|
| `natalDayMaster` | object | no |  |
| `natalDayMaster.stem` | string | no |  |
| `natalDayMaster.element` | string | no |  |
| `natalDayMaster.yin` | boolean | no |  |
| `targetYear` | number | no |  |
| `targetPillar` | object | no |  |
| `targetPillar.stem` | string | no |  |
| `targetPillar.branch` | string | no |  |
| `targetPillar.pillar` | string | no |  |
| `targetPillar.animal` | string | no |  |
| `elementFlow` | object | no |  |
| `elementFlow.stem` | object | no |  |
| `elementFlow.branch` | object | no |  |
| `branchInteractions` | object | no |  |
| `branchInteractions.clashes` | object[] | no |  |
| `branchInteractions.trineSupport` | object[] | no |  |
| `notes` | string[] | no |  |
| `disclaimer` | string | no |  |

## Example

```bash
curl -X POST https://api.astroway.info/v1/bazi/yearly \
  -H "X-Api-Key: aw_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "natalDate": "1990-05-15", "targetYear": 2027 }'
```

---

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