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

# Monthly Forecast

`POST /bazi/monthly`

Same Sheng-Ke + branch-clash analysis as yearly, but applied to a specific calendar month. Month branch resolved via mid-month jieqi.

## Request body

- BaziMonthlyInput
  - `natalDate` string, required
  - `natalTime` string
  - `natalTzOffset` number
  - `targetYear` integer, required
  - `targetMonth` 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
    - `targetMonth` 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
    - `notes` string[], nullable
    - `disclaimer` string, nullable

## Other responses

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

## Changes

- **2026-08-24** `8ab5a768b521` — 12 info
  - added the optional property `data/disclaimer` to the response with the `200` status
  - added the optional property `data/elementFlow/branch` to the response with the `200` status
  - added the optional property `data/elementFlow/stem` to the response with the `200` status
  - added the optional property `data/natalDayMaster/element` to the response with the `200` status
  - …8 more
- **2026-08-22** `5a17388652f3` — 3 breaking, 2 info
  - added the new required request property `natalDate`
  - added the new required request property `targetMonth`
  - added the new required request property `targetYear`
  - added the new optional request property `natalTime`
  - …1 more

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