/api/astro/western/house-cusps/1 creditWestern house cusps
Tropical house cusps, with the ascendant, midheaven and vertex. Eight house systems: placidus (the Western default), koch, porphyry, regiomontanus, campanus, equal, whole_sign and topocentric. Pass `house_system`; it defaults to placidus. The ascendant IS the first house cusp and the midheaven IS the tenth, and this endpoint returns them from a single calculation so they cannot disagree. Two exceptions, both correct rather than bugs: under whole_sign the first cusp is 0 degrees of the sign HOLDING the ascendant, not the ascendant itself, and under equal and whole_sign the midheaven floats free of the tenth cusp because those systems divide from the ascendant rather than from the meridian. TROPICAL, not sidereal — see /api/astro/western/planets/. For Vedic houses use /api/astro/house/ or /api/astro/bhava-cusps/, which are sidereal. Opposite cusps are exactly 180 degrees apart and the twelve advance in order round the zodiac; both are asserted by tests.
https://yogataraapi.prahlad.app/api/astro/western/house-cusps/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. |
| 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 |
| 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 |
| house_system | string | optional | campanusequalkochplacidusporphyryregiomontanustopocentricwhole_sign |
| keys | array | optional | 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. |
Example request
curl -X POST https://yogataraapi.prahlad.app/api/astro/western/house-cusps/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"1990-05-10T19:55:00+05:30","timezone_as_float":5.5,"latitude":19.2056,"longitude":25.2056,"house_system":"placidus"}'Response
{
"data": {
"zodiac": "tropical",
"house_system": "placidus",
"houses": [
{
"house": 1,
"degree": 198.47822,
"sign": "Libra",
"sign_index": 7,
"degree_in_sign": 18.4782,
"formatted": "18°28' Libra"
},
{
"house": 2,
"degree": 227.924979,
"sign": "Scorpio",
"sign_index": 8,
"degree_in_sign": 17.925,
"formatted": "17°55' Scorpio"
},
{
"house": 3,
"degree": 257.82276,
"sign": "Sagittarius",
"sign_index": 9,
"degree_in_sign": 17.8228,
"formatted": "17°49' Sagittarius"
},
{
"house": 4,
"degree": 288.075708,
"sign": "Capricorn",
"sign_index": 10,
"degree_in_sign": 18.0757,
"formatted": "18°04' Capricorn"
},
{
"house": 5,
"degree": 318.958731,
"sign": "Aquarius",
"sign_index": 11,
"degree_in_sign": 18.9587,
"formatted": "18°57' Aquarius"
},
{
"house": 6,
"degree": 349.697605,
"sign": "Pisces",
"sign_index": 12,
"degree_in_sign": 19.6976,
"formatted": "19°41' Pisces"
},
{
"house": 7,
"degree": 18.47822,
"sign": "Aries",
"sign_index": 1,
"degree_in_sign": 18.4782,
"formatted": "18°28' Aries"
},
{
"house": 8,
"degree": 47.924979,
"sign": "Taurus",
"sign_index": 2,
"degree_in_sign": 17.925,
"formatted": "17°55' Taurus"
},
{
"house": 9,
"degree": 77.82276,
"sign": "Gemini",
"sign_index": 3,
"degree_in_sign": 17.8228,
"formatted": "17°49' Gemini"
},
{
"house": 10,
"degree": 108.075708,
"sign": "Cancer",
"sign_index": 4,
"degree_in_sign": 18.0757,
"formatted": "18°04' Cancer"
},
{
"house": 11,
"degree": 138.958731,
"sign": "Leo",
"sign_index": 5,
"degree_in_sign": 18.9587,
"formatted": "18°57' Leo"
},
{
"house": 12,
"degree": 169.697605,
"sign": "Virgo",
"sign_index": 6,
"degree_in_sign": 19.6976,
"formatted": "19°41' Virgo"
}
],
"ascendant": {
"degree": 198.47822,
"sign": "Libra",
"sign_index": 7,
"degree_in_sign": 18.4782,
"formatted": "18°28' Libra"
},
"midheaven": {
"degree": 108.075708,
"sign": "Cancer",
"sign_index": 4,
"degree_in_sign": 18.0757,
"formatted": "18°04' Cancer"
},
"vertex": {
"degree": 309.637083,
"sign": "Aquarius",
"sign_index": 11,
"degree_in_sign": 9.6371,
"formatted": "9°38' Aquarius"
}
},
"status": 200,
"is_error": false,
"message": "successful"
}Captured from a real call using the exact request above. Results sit under data.
Errors
Metering errors return { "error": "…", "message": "<code>", "is_error": true }. Show error to people and branch on message. See the error reference.