---
title: "Calculate dosha report"
method: POST
path: "/v1/astro/dosha"
tags: ["Astrology"]
---

# Calculate dosha report

`POST /v1/astro/dosha`

## Request

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

Detect the Vedic doshas in a natal chart, with cancellations. Covered: Mangal, Kaal Sarp (with its named type), Kala Amrita, Gandmool, Grahan, Guru Chandal, Kemadruma, Shrapit, Shani, Paap Kartari, Pitru and Gulika. A conjunction is the same sign; no degree orb decides a dosha. Aspects are full Parashari graha drishti counted from the aspecting planet's sign (Mars 4/7/8, Jupiter 5/7/9, Saturn 3/7/10, Rahu 7); house lords are whole sign from the lagna. Mangal Dosha is checked from the Lagna, Moon and Venus: `present` is after cancellation, `details.present_by_placement` is Mars's placement alone, and `details.cancellations` lists only real cancellations. Kemadruma follows BPHS 37.11 (`details.formed`, then cancellations). Pitru Dosha is present only when a BPHS 83.20–83.30 father's-curse combination forms; general Sun / 9th-lord conditions are listed as `details.indicators`. Gulika follows BPHS 3.66–67 for day and night births. With an unknown birth time, buckets that depend on the Lagna carry `needs_birth_time: true`.

## Request body

- DoshaRequest
  - `location` string, nullable: City name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
  - `name` string: Person name associated with the birth record
  - `date` string, required: Birth date in YYYY-MM-DD format
  - `time` string, nullable: Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
  - `latitude` number, nullable: Latitude. Required if location not provided.
  - `longitude` number, nullable: Longitude. Required if location not provided.
  - `timezone` string, nullable: IANA timezone. Required if location not provided (unless utc_offset is given). For dates before the zone adopted a standard time, the birthplace's local mean time (longitude / 15 hours) is used.
  - `utc_offset` string, nullable: Optional explicit UTC offset of the birth time, as ±HH:MM or ±HH:MM:SS (e.g. '+04:51:31' for Bombay mean time). Overrides the offset `timezone` would give. Use it when the birth record states the offset, or for historical local times the IANA database cannot represent.
  - `ayanamsa` 'lahiri' | 'raman' | 'kp' | 'tropical': Sidereal ayanamsa mode used in calculations

## Response `200`

Detected doshas with flags, types, and details

- ApiResponseDoshaEndpointResponse
  - `success` boolean: True if the request succeeded
  - `message` string: Human-readable status message
  - `data` DoshaEndpointResponse, required
    - `doshas` object, required
    - `birth_time_provided` boolean: Whether a precise birth time was provided. False when birth time was not supplied or treated as unknown — calculations using this field will have lagna-dependent accuracy limits.

## 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)
