KP cuspal chart with sign, star and sub lords
- Cost
- 3 units
- Operation
- kpCusps
- Auth
- X-API-Key
The twelve cusps with their four-tier lordship. 3 units.
Computed on the KP New (Krishnamurti) ayanāṁśa. Sub-lord boundaries are built in exact integer arcseconds, so a longitude sitting precisely on a boundary is decidable: it belongs to the sub that begins there, per KSK's own horary examples.
Body parameters#
Local clock time at the place of birth. If unknown, omit it — we use 12:00
noon and set meta.birth_time_assumed, and still return the full chart. We do
not refuse a reading for want of a birth time.
min -90 · max 90.
min -180 · max 180.
IANA name, e.g. Asia/Kolkata. Not a fixed offset — an offset cannot represent
historical daylight-saving transitions, and a birth in 1980 may need one.
Honoured only where the operation exists in that school — 41 of them do. Everything
else is Lahiri-only and returns 501 for another school. See
GET /v1/meta/capabilities.
One of lahiri, raman, yukteswar, bhasin, true_chitra, kp. Defaults to "lahiri".
Request#
curl -X POST https://api.grahvani.in/v1/kp/cusps \
-H "X-API-Key: $GRAHVANI_KEY" \
-H "Content-Type: application/json" \
-d '{
"birth": {
"date": "1980-05-01",
"time": "05:16:00",
"place": {
"latitude": 27.1767,
"longitude": 78.0081,
"timezone": "Asia/Kolkata"
}
}
}'import os, requests
URL = "https://api.grahvani.in/v1/kp/cusps"
HEADERS = {"X-API-Key": os.environ["GRAHVANI_KEY"]}
payload = {
"birth": {
"date": "1980-05-01",
"time": "05:16:00",
"place": {
"latitude": 27.1767,
"longitude": 78.0081,
"timezone": "Asia/Kolkata"
}
}
}
r = requests.post(URL, headers=HEADERS, json=payload, timeout=60)
r.raise_for_status()
data = r.json()
print(data["meta"]["units"], "units")const res = await fetch("https://api.grahvani.in/v1/kp/cusps", {
method: "POST",
headers: {
"X-API-Key": process.env.GRAHVANI_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"birth": {
"date": "1980-05-01",
"time": "05:16:00",
"place": {
"latitude": 27.1767,
"longitude": 78.0081,
"timezone": "Asia/Kolkata"
}
}
}),
});
if (!res.ok) throw new Error((await res.json()).error.message);
const { data, meta } = await res.json();
console.log(meta.units, "units");<?php
$ch = curl_init("https://api.grahvani.in/v1/kp/cusps");
$headers = ["X-API-Key: " . getenv("GRAHVANI_KEY")];
$headers[] = "Content-Type: application/json";
$payload = [
"birth" => [
"date" => "1980-05-01",
"time" => "05:16:00",
"place" => [
"latitude" => 27.1767,
"longitude" => 78.0081,
"timezone" => "Asia/Kolkata"
]
]
];
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
echo $data["meta"]["units"] . " units";Response#
A real response from the production API, abbreviated where an array was long. Every success carries the same three keys — data, meta and, where we have something citable, provenance.
{
"data": {
"ascendant": {
"longitude": "8° 39' 4.31\"",
"sign": "Aries",
"sign_index": 1
},
"house_cusps": {
"1": {
"chart_label": "C1(1)",
"decimal_degrees": 8.651197,
"longitude": "8° 39' 4.31\"",
"nakshatra": "Ashwini",
"sign": "Aries",
"sign_index": 1,
"star_lord": "Ketu",
"sub_lord": "Jupiter"
},
"2": {
"chart_label": "C2(2)",
"decimal_degrees": 39.620031,
"longitude": "39° 37' 12.11\"",
"nakshatra": "Krittika",
"sign": "Taurus",
"sign_index": 2,
"star_lord": "Sun",
"sub_lord": "Venus"
},
"3": {
"chart_label": "C3(3)",
"decimal_degrees": 64.551321,
"longitude": "64° 33' 4.75\"",
"nakshatra": "Mrigashira",
"sign": "Gemini",
"sign_index": 3,
"star_lord": "Mars",
"sub_lord": "Venus"
},
"4": {
"chart_label": "C4(3)",
"decimal_degrees": 88.334765,
"longitude": "88° 20' 5.16\"",
"nakshatra": "Punarvasu",
"sign": "Gemini",
"sign_index": 3,
"star_lord": "Jupiter",
"sub_lord": "Venus"
},
"5": {
"chart_label": "C5(4)",
"decimal_degrees": 114.96538,
"longitude": "114° 57' 55.37\"",
"nakshatra": "Ashlesha",
"sign": "Cancer",
"sign_index": 4,
"star_lord": "Mercury",
"sub_lord": "Rahu"
},
"6": {
"chart_label": "C6(5)",
"decimal_degrees": 148.30444,
"longitude": "148° 18' 15.98\"",
"nakshatra": "Uttara Phalguni",
"sign": "Leo",
"sign_index": 5,
"star_lord": "Sun",
"sub_lord": "Moon"
},
"7": {
"chart_label": "C7(7)",
"decimal_degrees": 188.651197,
"longitude": "188° 39' 4.31\"",
"nakshatra": "Swati",
"sign": "Libra",
"sign_index": 7,
"star_lord": "Rahu",
"sub_lord": "Rahu"
},
"8": {
"chart_label": "C8(8)",
"decimal_degrees": 219.620031,
"longitude": "219° 37' 12.11\"",
"nakshatra": "Anuradha",
"sign": "Scorpio",
"sign_index": 8,
"star_lord": "Saturn",
"sub_lord": "Venus"
},
"9": {
"chart_label": "C9(9)",
"decimal_degrees": 244.551321,
"longitude": "244° 33' 4.75\"",
"nakshatra": "Mula",
"sign": "Sagittarius",
"sign_index": 9,
"star_lord": "Ketu",
"sub_lord": "Moon"
},
"10": {
"chart_label": "C10(9)",
"decimal_degrees": 268.334765,
"longitude": "268° 20' 5.16\"",
"nakshatra": "Uttara Ashadha",
"sign": "Sagittarius",
"sign_index": 9,
"star_lord": "Sun",
"sub_lord": "Moon"
},
"11": {
"chart_label": "C11(10)",
"decimal_degrees": 294.96538,
"longitude": "294° 57' 55.37\"",
"nakshatra": "Dhanishta",
"sign": "Capricorn",
"sign_index": 10,
"star_lord": "Mars",
"sub_lord": "Rahu"
},
"12": {
"chart_label": "C12(11)",
"decimal_degrees": 328.30444,
"longitude": "328° 18' 15.98\"",
"nakshatra": "Purva Bhadrapada",
"sign": "Aquarius",
"sign_index": 11,
"star_lord": "Jupiter",
"sub_lord": "Venus"
}
},
"metadata": {
"ayanamsa": "KP (Krishnamurti)",
"ayanamsa_value": 23.485482,
"calculation_time": "2026-08-06T07:23:47.561211",
"house_system": "Placidus",
"node_calculation": "True Node",
"solar_engine": "Skyfield DE421"
},
"planets": {
"Jupiter": {
"chart_label": "Ju(5)",
"decimal_degrees": 126.791543,
"house": 5,
"longitude": "126° 47' 29.55\"",
"nakshatra": "Magha",
"sign": "Leo",
"sign_index": 5,
"star_lord": "Ketu",
"sub_lord": "Rahu"
},
"Ketu": {
"chart_label": "Ke(11)",
"decimal_degrees": 302.699525,
"house": 11,
"longitude": "302° 41' 58.29\"",
"nakshatra": "Dhanishta",
"sign": "Aquarius",
"sign_index": 11,
"star_lord": "Mars",
"sub_lord": "Venus"
},
"Mars": {
"chart_label": "Ma(5)",
"decimal_degrees": 125.700763,
"house": 5,
"longitude": "125° 42' 2.75\"",
"nakshatra": "Magha",
"sign": "Leo",
"sign_index": 5,
"star_lord": "Ketu",
"sub_lord": "Rahu"
},
"Mercury": {
"chart_label": "Me(1)",
"decimal_degrees": 3.702861,
"house": 12,
"longitude": "3° 42' 10.3\"",
"nakshatra": "Ashwini",
"sign": "Aries",
"sign_index": 1,
"star_lord": "Ketu",
"sub_lord": "Moon"
},
"Moon": {
"chart_label": "Mo(7)",
"decimal_degrees": 204.873764,
"house": 7,
"longitude": "204° 52' 25.55\"",
"nakshatra": "Vishakha",
"sign": "Libra",
"sign_index": 7,
"star_lord": "Jupiter",
"sub_lord": "Mercury"
},
"Neptune": {
"chart_label": "Ne(8)",
"decimal_degrees": 238.83261,
"house": 8,
"longitude": "238° 49' 57.4\"",
"nakshatra": "Jyeshta",
"sign": "Scorpio",
"sign_index": 8,
"star_lord": "Mercury",
"sub_lord": "Saturn"
},
"Pluto": {
"chart_label": "Pl(6)",
"decimal_degrees": 176.344452,
"house": 6,
"longitude": "176° 20' 40.03\"",
"nakshatra": "Chitra",
"sign": "Virgo",
"sign_index": 6,
"star_lord": "Mars",
"sub_lord": "Jupiter"
},
"Rahu": {
"chart_label": "Ra(5)",
"decimal_degrees": 122.699525,
"house": 5,
"longitude": "122° 41' 58.29\"",
"nakshatra": "Magha",
"sign": "Leo",
"sign_index": 5,
"star_lord": "Ketu",
"sub_lord": "Venus"
},
"Saturn": {
"chart_label": "Sa(5)",
"decimal_degrees": 147.104129,
"house": 5,
"longitude": "147° 6' 14.87\"",
"nakshatra": "Uttara Phalguni",
"sign": "Leo",
"sign_index": 5,
"star_lord": "Sun",
"sub_lord": "Sun"
},
"Sun": {
"chart_label": "Su(1)",
"decimal_degrees": 17.553252,
"house": 1,
"longitude": "17° 33' 11.71\"",
"nakshatra": "Bharani",
"sign": "Aries",
"sign_index": 1,
"star_lord": "Venus",
"sub_lord": "Mars"
},
"Uranus": {
"chart_label": "Ur(8)",
"decimal_degrees": 210.624816,
"house": 7,
"longitude": "210° 37' 29.34\"",
"nakshatra": "Vishakha",
"sign": "Scorpio",
"sign_index": 8,
"star_lord": "Jupiter",
"sub_lord": "Mars"
},
"Venus": {
"chart_label": "Ve(2)",
"decimal_degrees": 59.938135,
"house": 2,
"longitude": "59° 56' 17.28\"",
"nakshatra": "Mrigashira",
"sign": "Taurus",
"sign_index": 2,
"star_lord": "Mars",
"sub_lord": "Saturn"
}
},
"significators": {
"1": {
"A": [
"Sun"
],
"B": [
"Saturn"
],
"C": [
"Mars"
],
"D": [
"Venus",
"Ketu",
"Pluto"
]
},
"2": {
"A": [
"Venus"
],
"B": [
"Sun"
],
"C": [
"Venus"
],
"D": [
"Sun"
]
},
"3": {
"A": [],
"B": [],
"C": [
"Mercury"
],
"D": [
"Neptune"
]
},
"4": {
"A": [],
"B": [],
"C": [
"Mercury"
],
"D": [
"Neptune"
]
},
"5": {
"A": [
"Mars",
"Jupiter",
"Saturn",
"… 1 more (truncated for the docs)"
],
"B": [
"Venus",
"Ketu",
"Pluto",
"… 2 more (truncated for the docs)"
],
"C": [
"Moon"
],
"D": []
},
"6": {
"A": [
"Pluto"
],
"B": [],
"C": [
"Sun"
],
"D": [
"Saturn"
]
},
"7": {
"A": [
"Moon",
"Uranus"
],
"B": [],
"C": [
"Venus"
],
"D": [
"Sun"
]
},
"8": {
"A": [
"Neptune"
],
"B": [],
"C": [
"Mars"
],
"D": [
"Venus",
"Ketu",
"Pluto"
]
},
"9": {
"A": [],
"B": [],
"C": [
"Jupiter"
],
"D": [
"Moon",
"Uranus"
]
},
"10": {
"A": [],
"B": [],
"C": [
"Jupiter"
],
"D": [
"Moon",
"Uranus"
]
},
"11": {
"A": [
"Ketu"
],
"B": [
"Mars",
"Mercury",
"Jupiter",
"… 1 more (truncated for the docs)"
],
"C": [
"Saturn"
],
"D": []
},
"12": {
"A": [
"Mercury"
],
"B": [
"Neptune"
],
"C": [
"Saturn"
],
"D": []
}
},
"user_name": "api"
},
"meta": {
"request_id": "req_01JQ8ZK3M4N5P6Q7R8S9T",
"endpoint": "kp.cusps",
"units": 3,
"computed_at": "2026-08-06T07:23:47.602Z",
"ayanamsa": "kp"
}
}Errors#
| Status | When |
|---|---|
400 | Your request. Always carries error.field when a single input is at fault. |
401 | Missing, malformed, revoked or out-of-scope API key. |
429 | Rate limit or monthly unit quota exhausted. Always carries Retry-After. |
Every failure returns the same error shape and a doc_url that resolves. See Errors and the full code list.
https://api.grahvani.in