curl -X POST https://api.occultapi.com/api/astro/hora-chart/ \
-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 hora, the second divisional chart: each sign divided in half. Read for wealth and resources. Each half falls under the Sun or the Moon, so this division sorts the chart into two groups rather than twelve. Not to be confused with /api/astro/hora/, which returns the twenty-four planetary hours of the day - a different calculation that shares the name. 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 |