---
title: "Yearly Forecast"
method: POST
path: "/bazi/yearly"
tags: ["BaZi (Four Pillars)"]
---

# Yearly Forecast

`POST /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 (三合).

## Request body

- BaziYearlyInput
  - `natalDate` string, required
  - `natalTime` string
  - `natalTzOffset` number
  - `targetYear` integer, required

## Response `200`

Successful calculation

- object
  - `ok` boolean
  - `data` object
    - `natalDayMaster` object, nullable
      - `stem` string, nullable
      - `element` string, nullable
      - `yin` boolean, nullable
    - `targetYear` number, nullable
    - `targetPillar` object, nullable
      - `stem` string, nullable
      - `branch` string, nullable
      - `pillar` string, nullable
      - `animal` string, nullable
    - `elementFlow` object, nullable
      - `stem` object, nullable
        - `element` string, nullable
        - `relation` string, nullable
        - `flavor` string, nullable
      - `branch` object, nullable
        - `element` string, nullable
        - `relation` string, nullable
        - `flavor` string, nullable
    - `branchInteractions` object, nullable
      - `clashes` unknown[], nullable
        - unknown
      - `trineSupport` unknown[], nullable
        - unknown
    - `notes` string[], nullable
    - `disclaimer` string, nullable

## Other responses

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

## Changes

- **2026-08-24** `8ab5a768b521` — 9 info
  - added the optional property `data/disclaimer` to the response with the `200` status
  - added the optional property `data/elementFlow/branch/element` to the response with the `200` status
  - added the optional property `data/elementFlow/branch/flavor` to the response with the `200` status
  - added the optional property `data/elementFlow/branch/relation` to the response with the `200` status
  - …5 more
- **2026-08-22** `5a17388652f3` — 2 breaking, 2 info
  - added the new required request property `natalDate`
  - added the new required request property `targetYear`
  - added the new optional request property `natalTime`
  - added the new optional request property `natalTzOffset`

[Change history](https://skmtc.dev/astroway/apis/astroway-calculation-api/changes/bazi/yearly/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)
