---
title: "Rahu Kaal, Gulika Kaal, Yamaganda Kaal"
method: POST
path: "/v1/astro/panchanga/rahu-kaal"
tags: ["Astrology"]
---

# Rahu Kaal, Gulika Kaal, Yamaganda Kaal

`POST /v1/astro/panchanga/rahu-kaal`

## Request

- Base URL: `https://api.asterwise.com`
- URL: `https://api.asterwise.com/v1/astro/panchanga/rahu-kaal`
- Auth: HTTP bearer

Calculate the three inauspicious time periods for a given date and location. Rahu Kaal, Gulika Kaal (Mandi), and Yamaganda Kaal are avoided for starting auspicious activities. All three are based on dividing the day into 8 equal parts from sunrise to sunset.

## Request body

- PanchangaExtRequest: Base request schema for all panchanga extension endpoints.
  - `date` string, required: Date in YYYY-MM-DD format
  - `location` string, nullable: City name. Example: 'Mumbai'
  - `latitude` number, nullable: Latitude in decimal degrees, north positive. Use with longitude and timezone instead of location.
  - `longitude` number, nullable: Longitude in decimal degrees, east positive. Use with latitude and timezone instead of location.
  - `timezone` string, nullable: IANA timezone string

## Response `200`

Start and end times for Rahu Kaal, Gulika Kaal, and Yamaganda Kaal

- ApiResponseRahuKaalResponse
  - `success` boolean: True if the request succeeded
  - `message` string: Human-readable status message
  - `data` RahuKaalResponse, required
    - `status` 'ok' | 'no_sunrise': ok, or no_sunrise when the place has no sunrise or sunset on that date (polar latitudes): the window fields are then null.
    - `status_detail` string, nullable: Plain-English reason when status is not ok.
    - `date` string, required: Date for which Rahu Kaal is calculated (YYYY-MM-DD).
    - `sunrise` string, nullable: Sunrise time in HH:MM local time.
    - `sunrise_at` string, nullable: Sunrise time, ISO 8601 local time with date and UTC offset.
    - `sunrise_utc` string, nullable: Sunrise time, ISO 8601 UTC with Z.
    - `sunset` string, nullable: Sunset time in HH:MM local time.
    - `sunset_at` string, nullable: Sunset time, ISO 8601 local time with date and UTC offset.
    - `sunset_utc` string, nullable: Sunset time, ISO 8601 UTC with Z.
    - `rahu_kaal` KaalPeriod
      - `start` string, required: Period start time in HH:MM local time.
      - `start_at` string, nullable: Period start time, ISO 8601 local time with date and UTC offset.
      - `start_utc` string, nullable: Period start time, ISO 8601 UTC with Z.
      - `end` string, required: Period end time in HH:MM local time.
      - `end_at` string, nullable: Period end time, ISO 8601 local time with date and UTC offset.
      - `end_utc` string, nullable: Period end time, ISO 8601 UTC with Z.
      - `duration_minutes` integer, required: Duration of the period in minutes.
      - `is_active` boolean, required: True if this period is currently active.
    - `gulika_kaal` KaalPeriod
      - `start` string, required: Period start time in HH:MM local time.
      - `start_at` string, nullable: Period start time, ISO 8601 local time with date and UTC offset.
      - `start_utc` string, nullable: Period start time, ISO 8601 UTC with Z.
      - `end` string, required: Period end time in HH:MM local time.
      - `end_at` string, nullable: Period end time, ISO 8601 local time with date and UTC offset.
      - `end_utc` string, nullable: Period end time, ISO 8601 UTC with Z.
      - `duration_minutes` integer, required: Duration of the period in minutes.
      - `is_active` boolean, required: True if this period is currently active.
    - `yamaganda_kaal` KaalPeriod
      - `start` string, required: Period start time in HH:MM local time.
      - `start_at` string, nullable: Period start time, ISO 8601 local time with date and UTC offset.
      - `start_utc` string, nullable: Period start time, ISO 8601 UTC with Z.
      - `end` string, required: Period end time in HH:MM local time.
      - `end_at` string, nullable: Period end time, ISO 8601 local time with date and UTC offset.
      - `end_utc` string, nullable: Period end time, ISO 8601 UTC with Z.
      - `duration_minutes` integer, required: Duration of the period in minutes.
      - `is_active` boolean, required: True if this period is currently active.

## Other responses

- `401`: Authentication failed
- `403`: Authorization failed
- `404`: Resource not found
- `413`: Payload too large
- `422`: Validation error
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream provider error
- `503`: Service unavailable

---

[API](https://skmtc.dev/asterwise/apis/asterwise-api.md) · [All operations](https://skmtc.dev/asterwise/apis/asterwise-api/llms.txt) · [OpenAPI document](https://skmtc.dev/asterwise/apis/asterwise-api/revisions/e77850f7c569?raw)
