Rāśi (D1) chart
- Cost
- 1 unit
- Operation
- chartsRasi
- Auth
- X-API-Key
The birth chart: planetary longitudes, signs, nakṣatras, houses and the ascendant. 1 unit.
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/charts/rasi \
-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/charts/rasi"
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/charts/rasi", {
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/charts/rasi");
$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": {
"degrees": "8° 33' 15.64\"",
"nakshatra": "Ashwini",
"pada": 3,
"sign": "Aries"
},
"birth_details": {
"birth_date": "1980-05-01",
"birth_time": "05:16:00",
"latitude": 27.1767,
"longitude": 78.0081,
"timezone_offset": 5.5
},
"notes": {
"ayanamsa": "Lahiri",
"ayanamsa_value": "23.582335",
"chart_type": "Rasi",
"house_system": "Whole Sign"
},
"planetary_positions": {
"Jupiter": {
"degrees": "6° 41' 40.89\"",
"house": 5,
"nakshatra": "Magha",
"pada": 3,
"retrograde": "",
"sign": "Leo"
},
"Ketu": {
"degrees": "2° 36' 9.62\"",
"house": 11,
"nakshatra": "Dhanishta",
"pada": 3,
"retrograde": "",
"sign": "Aquarius"
},
"Mars": {
"degrees": "5° 36' 14.08\"",
"house": 5,
"nakshatra": "Magha",
"pada": 2,
"retrograde": "",
"sign": "Leo"
},
"Mercury": {
"degrees": "3° 36' 21.63\"",
"house": 1,
"nakshatra": "Ashwini",
"pada": 2,
"retrograde": "",
"sign": "Aries"
},
"Moon": {
"degrees": "24° 46' 36.88\"",
"house": 7,
"nakshatra": "Vishakha",
"pada": 2,
"retrograde": "",
"sign": "Libra"
},
"Rahu": {
"degrees": "2° 36' 9.62\"",
"house": 5,
"nakshatra": "Magha",
"pada": 1,
"retrograde": "R",
"sign": "Leo"
},
"Saturn": {
"degrees": "27° 0' 26.20\"",
"house": 5,
"nakshatra": "Uttara Phalguni",
"pada": 1,
"retrograde": "R",
"sign": "Leo"
},
"Sun": {
"degrees": "17° 10' 53.90\"",
"house": 1,
"nakshatra": "Bharani",
"pada": 2,
"retrograde": "",
"sign": "Aries"
},
"Venus": {
"degrees": "29° 50' 28.62\"",
"house": 2,
"nakshatra": "Mrigashira",
"pada": 2,
"retrograde": "",
"sign": "Taurus"
}
},
"user_name": "api"
},
"meta": {
"request_id": "req_01JQ8ZK3M4N5P6Q7R8S9T",
"endpoint": "charts.rasi",
"units": 1,
"computed_at": "2026-08-06T07:23:17.494Z",
"ayanamsa": "lahiri"
}
}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