/api/astro/house_hora/1 creditHouse relationships
The relational structure of a birth chart: which signs aspect which, which planets aspect which, who is whose friend, and which planets the classical texts single out as significant for a chart's turning points. This is much of the machinery behind Jaimini and Parashari judgement, exposed one piece at a time. There are three groups. The house-class keys (`trikonas`, `kendras`, `quadrants`, `dushthanas`, `chathusras`, `upachayas`) are pure geometry: twelve rows, one per sign, listing sign numbers 1 to 12, with no dependence on the chart. The aspect and relationship keys (`raasi_drishti_of_the_planet`, the three `aspected_*_of_the_planet` keys, the two `*_of_the_raasi` keys, `argala`, `associations_of_the_planet`, the three natural-friendship keys and `baadhakas_of_raasi`) describe how the chart's bodies stand to one another. The Jaimini keys (`chara_karakas`, `marakas`, `brahma`, `rudra`, `maheshwara`, `trishoola_rasis`, `order_of_planets_by_strength`) name the planets that matter for longevity and for the timing of major events. Planets are returned as indices throughout: 0 Sun, 1 Moon, 2 Mars, 3 Mercury, 4 Jupiter, 5 Venus, 6 Saturn, 7 Rahu, 8 Ketu. Signs are zero-based (0 Aries to 11 Pisces) in the aspect and Jaimini keys but one-based (1 to 12) in the house-class keys, so check which you are reading. The `planet` request field is capitalised and case-sensitive — 'Sun', not 'sun' — and `raasi` is a zero-based integer with no bounds check, so a value outside 0–11 fails the request.
https://yogataraapi.prahlad.app/api/astro/house_hora/Authentication
Send your key in the X-API-Key header. Keys are server-side credentials — never put one in browser JavaScript or a mobile app.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonRequest fields
| Field | Type | Required | Notes |
|---|---|---|---|
| date_time | 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, and can return the previous day's result with a 200. '2026-09-01T06:00:00Z' and '2026-09-01 06:00:00' are different instants and give different answers. FORMAT constraint. DRF DateTimeField: ISO-8601 only (DRF default input formats), e.g. "2026-09-01T06:00:00+05:30", "2026-09-01T06:00:00Z" or "2026-09-01 06:00:00" (no timezone = UTC assumed). |
| keys | array | required | Which calculations to return, as a list of names. See the key table for this endpoint; an unrecognised name rejects the whole request. One call costs one credit however many keys you ask for, so request everything you need at once rather than making several calls. trikonasdushthanaschathusrasquadrantskendrasupachayaschara_karakasraasi_drishti_of_the_planetaspected_planets_of_the_planetaspected_rasis_of_the_planetaspected_houses_of_the_planetaspected_houses_of_the_raasiArray of strings. The keys ending '_of_the_planet' plus 'associations_of_the_planet' require `planet`; the keys ending '_of_the_raasi' plus 'baadhakas_of_raasi' require `raasi`. |
| 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 -90 · max 90 |
| 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 |
| node | string | required | truemeanCase-sensitive lowercase. 'true' uses the true lunar nodes, 'mean' the mean nodes. Any other value produces a KeyError -> 400. Forwarded at. |
| planet | string | required | SunMoonMarsMercuryJupiterVenusSaturnRahuKetuCase-SENSITIVE, capitalised - note this differs from the lowercase celestial names used by /api/astro/chart_analysis/. |
| raasi | integer | required | 01234567891011Integer, not a string. Used as a 0-BASED sign index: 0 = Aries... 11 = Pisces. There is no bounds check, so out-of-range values raise IndexError -> 400 and negative values wrap silently. |
| timezone_as_float | number (double) | required | UTC offset of the place, in hours, as a decimal. Example: 5.5 for India (UTC+05:30), -5 for New York in winter, 5.75 for Nepal. This is NOT validated against date_time - if the two disagree you get a successful response for the wrong moment, so derive both from the same source. Use the offset in force on that date, not today's: a summer birth in a country with daylight saving needs the summer offset. min -12 · max 14 |
Available keys (29)
Ask for exactly the calculations you want by listing them in keys. An unknown key rejects the whole request, and you are charged 1 credit however many you ask for — so batch them.
| Key | Extra fields needed | Description |
|---|---|---|
| argala | — | Argala and virodhargala for the whole chart, as a two-element list. The first element is argala, the intervention a house exerts: twelve rows, one per house from the ascendant, each holding four strings for the 2nd, 4th, 5th and 11th from that house, with the occupying planet indices joined by '/' and an empty string where nothing sits. The second element is virodhargala, the obstruction to it, in the same shape for the 12th, 10th, 9th and 3rd — taken in that order, so the columns pair off against the argala ones. |
| aspected_houses_of_the_planet | planet | The same graha drishti aspects as `aspected_rasis_of_the_planet`, but expressed as house numbers counted from the ascendant, 1 to 12, rather than as sign indices. Requires `planet`. |
| aspected_houses_of_the_raasi | raasi | The houses, 1 to 12 counted from the ascendant, that the given sign aspects under rasi drishti — all of them, whether or not a planet occupies them. Requires `raasi` as a zero-based sign index. |
| aspected_planets_of_the_planet | planet | The planets the given planet aspects under graha drishti — the Parashari planetary aspect, in which every planet sees the 7th and Mars, Jupiter and Saturn have their additional aspects. Returns a list of planet indices. Requires `planet`. |
| aspected_raasis_of_the_raasi | raasi | The same rasi drishti relation as `aspected_houses_of_the_raasi`, returned as zero-based sign indices rather than house numbers, so it does not depend on the ascendant at all. Requires `raasi`. |
| aspected_rasis_of_the_planet | planet | The signs the given planet aspects under graha drishti, as a list of zero-based sign indices from 0 for Aries to 11 for Pisces. The sign form of `aspected_houses_of_the_planet`. Requires `planet`. |
| associations_of_the_planet | planet | Every planet the given planet is meaningfully linked to, by any of the three classical routes: sharing a sign with it, aspecting it under graha drishti, or standing in a parivartana exchange of signs with it. Returns a de-duplicated list of planet indices. Requires `planet`. |
| baadhakas_of_raasi | raasi | The baadhaka, or obstructing, house for a given rising sign and the planets that rule it — the 11th for movable signs, the 9th for fixed and the 7th for dual. Returns a two-element list of [the zero-based baadhaka sign, a list of the planet indices that lord it]. Requires `raasi`. |
| brahma | — | Brahma, the planet Jaimini associates with the sustaining of life. Taken as the strongest of the lords of the 6th, 8th and 12th from whichever of the ascendant and the seventh house is stronger, with Rahu and Ketu excluded and ties broken on dignity, odd-sign placement and position within the half. Returns a single planet index. |
| chara_karakas | — | The eight chara karakas, as a list of eight planet indices ordered by decreasing degree within their sign. The first entry is the Atmakaraka and the rest follow in the standard order (Amatya, Bhratri, Matri, Pitri, Putra, Gnati, Dara). Ketu is excluded, and Rahu is ranked on its reversed longitude as the classical rule requires. |
| chathusras | — | Twelve rows of two sign numbers 1–12. As implemented each row gives the 3rd and 5th from the sign — row 1 is [3, 5] — rather than the 4th and 8th that the classical chatusra pair names. |
| dushthanas | — | Twelve rows of three sign numbers 1–12. As implemented each row gives the sign itself, the 3rd from it and the 7th from it — row 1 is [1, 3, 7] — which is not the classical 6th/8th/12th dusthana set, so treat the output as what the code computes rather than as dusthanas in the textbook sense. |
| kendras | — | Every sign's quadrants: twelve rows, one per sign, each a list of four sign numbers from 1 to 12. Row 0 is Aries. Takes no argument. This is a different shape from the `kendras` key on /api/astro/strength/, which takes an `asc_house` and returns a single flat list of four ZERO-based indices - mixing the two off-by-ones is the mistake to watch for. |
| maheshwara | — | The same value as `maheshwara_from_planet_positions` — this key delegates straight to it and returns the same single planet index. Request one or the other. |
| maheshwara_from_planet_positions | — | Maheshwara, the planet Jaimini associates with the manner of death, taken as the lord of the eighth sign from the Atmakaraka, with the classical substitutions applied when that lord is in its own sign or is joined or opposed by a node. Returns a single planet index; if the result would be Rahu or Ketu it is replaced by Mercury or Jupiter respectively. |
| marakas | — | The same maraka planets as `marakas_from_planet_positions`, computed instead from the house-to-planet form of the chart. The result is the same list of planet indices, so request one or the other rather than both. |
| marakas_from_planet_positions | — | The maraka, or death-inflicting, planets: the lords of the 2nd and 7th houses, together with any planet sitting in either of those houses or with either of those lords. Returns a list of planet indices in no particular order. Computed from the planet-position form of the chart. |
| natural_enemies_of_planets | — | The standard enmity table, as a list of nine lists indexed by planet 0–8, each giving the planets hostile to it. Fixed and chart-independent, the counterpart of `natural_neutral_of_planets`. |
| natural_friends_of_planets | — | Permanent planetary friendship, derived from this chart's own sign lordships: an object keyed by planet index 0–8, each holding a list of the planet indices friendly to it. For the seven classical planets the lord of the sign of exaltation is included alongside the lords of the friendly signs. |
| natural_neutral_of_planets | — | The standard neutrality table, as a list of nine lists indexed by planet 0–8, each giving the planets neutral to it. Unlike `natural_friends_of_planets` this is the fixed classical table and does not depend on the chart at all. |
| order_of_planets_by_strength | — | All nine planets ranked strongest first, as a list of nine planet indices. The order comes from the engine's pairwise strength comparison, the same one used to choose between candidate lords in the Rudra and Maheshwara calculations. |
| planets_aspecting_the_planet | planet | Intended to return the planets that cast graha drishti on the given planet, as a list of planet indices. As it stands it compares the capitalised planet name against lists of planet indices, so it returns an empty list for every input; use `aspected_planets_of_the_planet` for each planet in turn and invert the result instead. |
| quadrants | — | The angles of every sign: twelve rows, each of four sign numbers 1–12, giving the sign itself and the 4th, 7th and 10th from it. Row 1 is [1, 4, 7, 10]. An alias for `kendras` on this endpoint — the two cannot differ, so requesting both only wastes a slot in the response. |
| raasi_drishti_of_the_planet | planet | The planets standing in the signs that the given planet's own sign aspects under rasi drishti — the Jaimini sign-to-sign aspect, in which movable signs see fixed and vice versa, and dual signs see one another. Returns a list of planet indices. Requires `planet`. |
| rudra | — | Rudra taken as the stronger of the lord of the eighth house from the ascendant and the lord of the eighth house from the seventh. Returns [planet index, the zero-based sign it occupies, the three zero-based trine signs of that sign]. Note that this differs from `rudra_based_on_planet_positions`, which derives the second of the two lords differently and can therefore return a different planet. |
| rudra_based_on_planet_positions | — | Rudra, the planet Jaimini associates with a chart's destructive turn — here the stronger of the lord of the eighth sign from the ascendant and the lord of the seventh house. Returns a three-element list of [planet index, the zero-based sign it occupies, the three zero-based trine signs of that sign]. It uses a different derivation from `rudra` and the two can name different planets. |
| trikonas | — | The trines of every sign: twelve rows, each of three sign numbers 1–12, giving the sign itself and the 5th and 9th from it. Row 1 is [1, 5, 9]. Pure geometry — the same for every chart. |
| trishoola_rasis | — | The Trishula rasis, the trident of three signs read for the timing of a chart's most damaging period: the trines of the sign the Rudra occupies. Returns three zero-based sign indices. |
| upachayas | — | Twelve rows of four sign numbers 1–12. As implemented each row gives the sign itself and the 4th, 8th and 9th from it — row 1 is [1, 4, 8, 9] — rather than the 3rd, 6th, 10th and 11th that classically make up the upachaya set. |
Example request
curl -X POST https://yogataraapi.prahlad.app/api/astro/house_hora/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keys":["trikonas"],"raasi":2,"planet":"Mars","node":"mean","date_time":"2025-02-12T09:35:49.036Z","latitude":26.9124,"longitude":75.7873,"timezone_as_float":5.5}'Response
{
"data": {
"trikonas": [
[
1,
5,
9
],
[
2,
6,
10
],
[
3,
7,
11
],
[
4,
8,
12
],
[
5,
9,
1
],
[
6,
10,
2
],
[
7,
11,
3
],
[
8,
12,
4
],
[
9,
1,
5
],
[
10,
2,
6
],
[
11,
3,
7
],
[
12,
4,
8
]
]
},
"status": 200,
"is_error": false,
"message": "successful"
}Captured from a real call using the exact request above. Results sit under data, keyed by what you requested.
Errors
Metering errors return { "error": "…", "message": "<code>", "is_error": true }. Show error to people and branch on message. See the error reference.