curl -X POST https://api.occultapi.com/api/astro/dwadasamsa/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2026-09-01T06:00:00+05:30","timezone_as_float":5.5,"latitude":26.9124,"longitude":75.7873,"ayanamsa":"LAHIRI"}'The dwadasamsa, the twelfth divisional chart: each sign divided into twelve parts of 2°30' each. Read for parents and ancestry, and sometimes for inherited circumstance more broadly. Returns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted. The chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.
| Field | Type | Required | Notes |
|---|---|---|---|
| chart_name | string | required | |
| datetime | string (date-time) | required | The moment to calculate for, ISO 8601. ALWAYS include an offset or a trailing Z - a value with no zone is read as Asia/Kolkata (UTC+05:30), not UTC. Same meaning as date_time, which other endpoints call the same thing by a different name. |
| latitude | number (double) | required | Latitude of the place, in decimal degrees. Positive is north, negative is south. Example: 26.9124 for Jaipur, 40.7128 for New York. Minutes and seconds are not accepted - convert first. min -89.9 · max 89.9 |
| longitude | number (double) | required | Longitude of the place, in decimal degrees. Positive is east, negative is west. Example: 75.7873 for Jaipur, -74.0060 for New York. Note the sign: a missing minus puts New York in China. min -180 · max 180 |
| aberration | boolean | optional | |
| apply_correction | boolean | optional | |
| ascendant_pos | string | optional | cuspstartend |
| ayanamsa | string | optional | |
| background_color | string | optional | Hex color for the SVG background. |
| chart_style | string | optional | Diagram style when render='svg'. 'north' is the diamond layout with fixed houses and rotating signs; 'south' is the fixed-sign grid with rotating houses. northsouth |
| correction_deg | integer | optional | min 0 |
| correction_direction | string | optional | addsubtract |
| correction_min | integer | optional | min 0 · max 59 |
| correction_sec | integer | optional | min 0 · max 59 |
| extended_bodies | array | optional | Body groups to include: 'asteroids', 'planetary_moons', 'fictitious_bodies'. |
| label_style | string | optional | How planets are labelled: 'english' (Su, Mo, ...), 'sanskrit' (Surya, Chandra, ...) or 'symbol' (☉, ☽, ...). englishsanskritsymbol |
| line_color | string | optional | Hex color for the chart's grid lines. |
| notation | string | optional | astrologicaldegree |
| nutation | boolean | optional | |
| planet_color | string | optional | Hex color for planet labels, e.g. '#111827'. Defaults to the theme's own colour. |
| rahu | string | optional | Node type to include. 'true' returns true nodes only, 'mean' returns mean nodes only, 'both' returns both. truemeanboth |
| refraction | boolean | optional | |
| render | string | optional | Set to 'svg' to also return a rendered chart diagram (see chart_style) and the geometry behind it. Omit this entirely and the response is unchanged. nonesvg |
| show_degrees | boolean | optional | Print each body's degree within its sign next to its label. |
| sign_color | string | optional | Hex color for sign numbers/abbreviations. |
| svg_size | integer | optional | Width and height of the square SVG viewBox, in pixels. min 100 · max 2000 |
| theme | string | optional | lightdark |
| true_mean | string | optional | TrueMean |
| use_28_nakshatras | boolean | optional |