---
title: "5-Element Balance"
method: POST
path: "/bazi/element-balance"
tags: ["BaZi (Four Pillars)"]
---

# 5-Element Balance

`POST /bazi/element-balance`

Element counts across year + month (4 of 8 chars). Identifies dominant + missing elements.

## Request body

- BaziDateInput
  - `date` string, required
  - `time` string
  - `timezoneOffset` number

## Response `200`

Successful calculation

- object
  - `ok` boolean
  - `data` object
    - `elementCounts` object, nullable
      - `Wood` number, nullable
      - `Fire` number, nullable
      - `Earth` number, nullable
      - `Metal` number, nullable
      - `Water` number, nullable
    - `dominantElement` string, nullable
    - `missingElements` string[], nullable
    - `notes` string[], nullable
    - `disclaimer` string, nullable

## Other responses

- `400` — Validation error
- `401` — Missing or invalid API key

## Changes

- **2026-08-24** `8ab5a768b521` — 5 info
  - added the optional property `data/disclaimer` to the response with the `200` status
  - added the optional property `data/elementCounts/Earth` to the response with the `200` status
  - added the optional property `data/elementCounts/Metal` to the response with the `200` status
  - added the optional property `data/elementCounts/Water` to the response with the `200` status
  - …1 more
- **2026-08-22** `5a17388652f3` — 1 breaking, 2 info
  - added the new required request property `date`
  - added the new optional request property `time`
  - added the new optional request property `timezoneOffset`

[Change history](https://skmtc.dev/astroway/apis/astroway-calculation-api/changes/bazi/element-balance/post.md)

---

[API](https://skmtc.dev/astroway/apis/astroway-calculation-api.md) · [All operations](https://skmtc.dev/astroway/apis/astroway-calculation-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/astroway/astroway-calculation-api/revisions/8ab5a768b521/schema)
