---
title: "Panchang Month"
method: GET
path: "/panchang/month"
---

# Panchang Month

`GET /panchang/month`

## Request

- Base URL: `https://jyotish-api.bda.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://jyotish-api.bda.ai/panchang/month`
- Auth: none declared

Real per-day Panchang for every day of a month — powers the calendar
grid. Per day: tithi (number + name), nakshatra, paksha, sunrise.
In-process cached per (month, city) since it never changes.

The full-month grid is the heaviest public Panchang JSON payload (28-31
days x tithi/nakshatra/paksha/lunar-month + festival/vrat markers), so the
response is gzip-negotiated via the audited `_json_response_maybe_gzip`
helper: the DECOMPRESSED body is byte-identical to the old `return out`
path (no contract/field/value change), and clients that do not advertise
`Accept-Encoding: gzip` (or tiny payloads) get the unchanged JSON body.
The in-process `_MONTH_CACHE` still stores the plain dict; the wrapper runs
per request on both the cache-hit and freshly-built return paths. Each day
also uses the canonical exact-key daily memo, so the Today request and this
month packet share the selected day's astronomical core result instead of computing
it twice.

## Query parameters

- `lat` number, required
- `lng` number, required
- `ym` string, required: Month as YYYY-MM
- `tz` string, nullable
- `profile` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/bda/apis/bda-jyotish-panchang-service.md) · [All operations](https://skmtc.dev/bda/apis/bda-jyotish-panchang-service/llms.txt) · [OpenAPI document](https://skmtc.dev/bda/apis/bda-jyotish-panchang-service/revisions/90f241bf4009?raw)
