# Full BaZi chart

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

The four pillars with everything the classical apparatus reads off them in one call: hidden stems, na yin, the twelve stages of the day master, element balance over all eight characters, the strength verdict, symbolic stars from both reference pillars, and the branch and stem interactions. Localised by language. Pass longitude with trueSolarTime true to cut the double-hour from the sun over the birth place; the correction reaches the day and hour only, never the year and month, which turn on world instants.

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

## Request body

| Field | Type | Required | Description |
|---|---|---|---|
| `date` | string | yes |  |
| `time` | string | no |  |
| `timezoneOffset` | number | no |  |
| `longitude` | number | no |  |
| `trueSolarTime` | boolean | no |  |
| `stageSchool` | "classical" \| "unified" | no |  |
| `includeFullTable` | boolean | no |  |
| `language` | string | no |  |

```json
{
  "date": "1990-05-15",
  "time": "14:30:00",
  "timezoneOffset": 8
}
```

## Responses

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

### Success fields, under `data`

| Field | Type | Required | Description |
|---|---|---|---|
| `solarYear` | number | no |  |
| `pillars` | object[] | no |  |
| `dayMaster` | object | no |  |
| `dayMaster.stem` | string | no |  |
| `dayMaster.element` | string | no |  |
| `dayMaster.elementName` | string | no |  |
| `dayMaster.polarity` | string | no |  |
| `elementBalance` | object | no |  |
| `elementBalance.visible` | object | no |  |
| `elementBalance.withHiddenStems` | object | no |  |
| `elementBalance.weighted` | object | no |  |
| `elementBalance.dominantElement` | string | no |  |
| `elementBalance.missingElements` | object[] | no |  |
| `elementBalance.weighting` | string | no |  |
| `elementBalance.dominantElementName` | string | no |  |
| `elementBalance.missingElementNames` | object[] | no |  |
| `strength` | object | no |  |
| `strength.framework` | string | no |  |
| `strength.supportScore` | number | no |  |
| `strength.drainScore` | number | no |  |
| `strength.supportRatio` | number | no |  |
| `strength.verdict` | string | no |  |
| `strength.hasSeason` | boolean | no |  |
| `strength.hasRoot` | boolean | no |  |
| `strength.hasAllies` | boolean | no |  |
| `strength.favourableElements` | string[] | no |  |
| `strength.unfavourableElements` | string[] | no |  |
| `strength.caveat` | string | no |  |
| `symbolicStars` | object | no |  |
| `symbolicStars.byYearPillar` | object[] | no |  |
| `symbolicStars.byDayPillar` | object[] | no |  |
| `interactions` | object[] | no |  |
| `stageSchool` | string | no |  |
| `language` | string | no |  |
| `notes` | object[] | no |  |
| `methodology` | string | no |  |
| `source` | string | no |  |
| `disclaimer` | string | no |  |

## Example

```bash
curl -X POST https://api.astroway.info/v1/bazi/chart \
  -H "X-Api-Key: aw_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 8 }'
```

---

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