/api/astro/karakamsa/1 creditKarakamsa (swamsa)
The sign the Atmakaraka occupies in the navamsa — the seat Jaimini readings of character and destiny are taken from, rather than the rashi lagna. Two charts are needed to reach it: the rashi, to find which graha is Atmakaraka, and the navamsa, to see where that graha sits. Both are returned, along with the full eight-karaka ranking, so the answer can be checked rather than taken on trust. The Atmakaraka is the graha standing furthest through its own sign. Rahu is measured backwards, because it moves backwards; Ketu takes no part in the scheme. NOTE: this ranks the karakas by degree WITHIN the sign, and will name a different Atmakaraka from /api/astro/chara-karakas/ for most charts. The two are computed differently and are not interchangeable — prefer this one for karakamsa work.
https://api.occultapi.com/api/astro/karakamsa/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 -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 |
| ayanamsa | string | optional | |
| timezone_as_float | number (double) | optional | 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 |
Example request
curl -X POST https://api.occultapi.com/api/astro/karakamsa/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"1990-08-15T10:30:00+05:30","latitude":26.9124,"longitude":75.7873,"timezone_as_float":5.5}'Response
{
"data": {
"system": "jaimini",
"atmakaraka": "sun",
"atmakaraka_rashi": "Cancer",
"atmakaraka_degree_in_sign": 28.395,
"karakamsa": "Pisces",
"karakamsa_house": 12,
"also_called": "swamsa",
"navamsa_longitude": 345.5525,
"karakas": [
{
"karaka": "atma_karaka",
"signifies": "Self",
"planet": "sun",
"degree_in_sign": 28.395
},
{
"karaka": "amatya_karaka",
"signifies": "Career and counsel",
"planet": "mars",
"degree_in_sign": 27.487
},
{
"karaka": "bhratri_karaka",
"signifies": "Siblings",
"planet": "saturn",
"degree_in_sign": 26.148
},
{
"karaka": "maitri_karaka",
"signifies": "Friends",
"planet": "mercury",
"degree_in_sign": 25.446
},
{
"karaka": "pitri_karaka",
"signifies": "Father",
"planet": "moon",
"degree_in_sign": 18.93
},
{
"karaka": "putra_karaka",
"signifies": "Children",
"planet": "rahu",
"degree_in_sign": 16.497
},
{
"karaka": "jnaati_karaka",
"signifies": "Kin and obstacles",
"planet": "venus",
"degree_in_sign": 7.843
},
{
"karaka": "dara_karaka",
"signifies": "Spouse",
"planet": "jupiter",
"degree_in_sign": 5.607
}
],
"note": "The Atmakaraka is the graha with the highest degree WITHIN its sign; Rahu is measured in reverse and Ketu excluded. Karakamsa is that graha's NAVAMSA sign, not its rashi. This ranking is computed from degree within the sign and will differ from /api/astro/chara-karakas/."
},
"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.