curl -X POST https://api.occultapi.com/api/astro/trimsamsa/ \
-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 trimsamsa, the thirtieth divisional chart: each sign divided into thirty parts of 1° each. Read for misfortune, hardship and character. Note the classical trimsamsa divisions are unequal and exclude the luminaries in some traditions, so compare against your own reference before relying on it. 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 |