Vimśottarī daśā
- Cost
- 3 units
- Operation
- dashasVimshottari
- Auth
- X-API-Key
The 120-year Vimśottarī cycle, to the level of nesting you ask for. 3 units.
Reckoned on the sidereal year (365.256363 days). That is a measured choice, not a preference: across nine mahādaśās, Drik Pañcāṅga's published 120-year cycle comes to 43830.7639 days against sidereal's 43830.7636 — a 26-second match. The Julian year is 0.76 d out and the Gregorian 1.66 d. The principled argument agrees, since the daśā is anchored to the Moon's nakṣatra, which is a sidereal position.
⚠️ Boundary dates will not match every other tool, and the dominant cause is not this constant — it is the ayanāṁśa variant, which outweighs year length by roughly 40×.
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".
1 = mahādaśā, 2 = +antara, 3 = +pratyantara, and so on.
Defaults to 2. min 1 · max 5.
Request#
curl -X POST https://api.grahvani.in/v1/dashas/vimshottari \
-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"
}
},
"levels": 2
}'import os, requests
URL = "https://api.grahvani.in/v1/dashas/vimshottari"
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"
}
},
"levels": 2
}
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/dashas/vimshottari", {
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"
}
},
"levels": 2
}),
});
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/dashas/vimshottari");
$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"
]
],
"levels" => 2
];
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": {
"mahadashas": [
{
"antardashas": [
{
"duration_years": 1.2048,
"end_date": "1981-07-15",
"planet": "Mercury",
"start_date": "1980-05-01"
},
{
"duration_years": 0.9333,
"end_date": "1982-06-21",
"planet": "Ketu",
"start_date": "1981-07-15"
},
{
"duration_years": 2.6667,
"end_date": "1985-02-19",
"planet": "Venus",
"start_date": "1982-06-21"
},
"… 4 more (truncated for the docs)"
],
"duration_years": 10.2715,
"end_date": "1990-08-08",
"planet": "Jupiter",
"start_date": "1980-05-01"
},
{
"antardashas": [
{
"duration_years": 3.0083,
"end_date": "1993-08-11",
"planet": "Saturn",
"start_date": "1990-08-08"
},
{
"duration_years": 2.6917,
"end_date": "1996-04-20",
"planet": "Mercury",
"start_date": "1993-08-11"
},
{
"duration_years": 1.1083,
"end_date": "1997-05-30",
"planet": "Ketu",
"start_date": "1996-04-20"
},
"… 6 more (truncated for the docs)"
],
"duration_years": 19,
"end_date": "2009-08-08",
"planet": "Saturn",
"start_date": "1990-08-08"
},
{
"antardashas": [
{
"duration_years": 2.4083,
"end_date": "2012-01-05",
"planet": "Mercury",
"start_date": "2009-08-08"
},
{
"duration_years": 0.9917,
"end_date": "2013-01-01",
"planet": "Ketu",
"start_date": "2012-01-05"
},
{
"duration_years": 2.8333,
"end_date": "2015-11-02",
"planet": "Venus",
"start_date": "2013-01-01"
},
"… 6 more (truncated for the docs)"
],
"duration_years": 17,
"end_date": "2026-08-09",
"planet": "Mercury",
"start_date": "2009-08-08"
},
"… 6 more (truncated for the docs)"
],
"moon_longitude": 204.7738,
"nakshatra_at_birth": "Vishakha",
"user_name": "api"
},
"meta": {
"request_id": "req_01JQ8ZK3M4N5P6Q7R8S9T",
"endpoint": "dashas.vimshottari",
"units": 3,
"computed_at": "2026-08-06T07:23:29.555Z",
"ayanamsa": "lahiri"
},
"provenance": {
"method": "Vimśottarī daśā on the sidereal year (365.256363 d)",
"conventions": {
"year_length": "sidereal 365.256363 d"
},
"verified_against": "Drik Pañcāṅga, full 120-year cycle, Δ 26 seconds"
}
}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