API TUTORIAL

Dasha Calculation API: Vimshottari Mahadasha Calculator

Complete guide to calculating planetary period (dasha) systems via API. Mahadasha, Antardasha, and Pratyantar with precise timing.

January 7, 2026 - 16 min read

Understanding Vimshottari Dasha

Vimshottari is a 120-year planetary period system used in Vedic astrology for timing predictions. Each planet rules a specific number of years:

Planet Years Starting Nakshatra
Ketu7Ashwini, Magha, Mula
Venus20Bharani, P.Phalguni, P.Ashadha
Sun6Krittika, U.Phalguni, U.Ashadha
Moon10Rohini, Hasta, Shravana
Mars7Mrigashira, Chitra, Dhanishta
Rahu18Ardra, Swati, Shatabhisha
Jupiter16Punarvasu, Vishakha, P.Bhadra
Saturn19Pushya, Anuradha, U.Bhadra
Mercury17Ashlesha, Jyeshtha, Revati

Get Current Dasha Periods

// Get current and upcoming dasha periods
const response = await fetch('https://api.vedika.io/v2/astrology/dasha', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
        datetime: '1990-05-15T14:30:00+05:30',
        latitude: 28.6139,
        longitude: 77.2090,
        system: 'vimshottari'
    })
});

const dasha = await response.json();

// Response:
{
    "currentPeriods": {
        "mahadasha": {
            "planet": "Jupiter",
            "startDate": "2011-03-15T00:00:00Z",
            "endDate": "2027-03-15T00:00:00Z",
            "yearsTotal": 16,
            "yearsRemaining": 1.2
        },
        "antardasha": {
            "planet": "Saturn",
            "startDate": "2024-07-20T00:00:00Z",
            "endDate": "2027-01-28T00:00:00Z",
            "monthsTotal": 30.4,
            "monthsRemaining": 12.7
        },
        "pratyantardasha": {
            "planet": "Mercury",
            "startDate": "2025-11-15T00:00:00Z",
            "endDate": "2026-03-22T00:00:00Z",
            "daysTotal": 127,
            "daysRemaining": 74
        }
    },
    "allMahadashas": [
        {"planet": "Ketu", "start": "1990-05-15", "end": "1997-05-15"},
        {"planet": "Venus", "start": "1997-05-15", "end": "2017-05-15"},
        {"planet": "Sun", "start": "2017-05-15", "end": "2023-05-15"},
        {"planet": "Moon", "start": "2023-05-15", "end": "2033-05-15"},
        // ... all 9 periods
    ]
}

Full Antardasha Breakdown

import requests
from datetime import datetime

def get_antardasha_details(birth_datetime, lat, lng, mahadasha_planet):
    """Get all antardashas within a mahadasha."""

    response = requests.post(
        'https://api.vedika.io/v2/astrology/dasha/antardasha',
        headers={'x-api-key': 'YOUR_API_KEY'},
        json={
            'datetime': birth_datetime,
            'latitude': lat,
            'longitude': lng,
            'mahadashaPlanet': mahadasha_planet
        }
    )

    data = response.json()

    print(f"\n{mahadasha_planet} Mahadasha Antardashas:")
    print("-" * 50)

    for ad in data['antardashas']:
        print(f"{ad['planet']:10} | {ad['startDate'][:10]} to {ad['endDate'][:10]}")

    return data

# Example: Get all antardashas in Jupiter Mahadasha
antardashas = get_antardasha_details(
    '1990-05-15T14:30:00+05:30',
    28.6139,
    77.2090,
    'Jupiter'
)

# Output:
# Jupiter Mahadasha Antardashas:
# --------------------------------------------------
# Jupiter    | 2011-03-15 to 2013-05-07
# Saturn     | 2013-05-07 to 2015-11-19
# Mercury    | 2015-11-19 to 2018-02-25
# Ketu       | 2018-02-25 to 2019-01-31
# Venus      | 2019-01-31 to 2021-10-01
# Sun        | 2021-10-01 to 2022-07-19
# Moon       | 2022-07-19 to 2023-11-19
# Mars       | 2023-11-19 to 2024-10-25
# Rahu       | 2024-10-25 to 2027-03-15

Pratyantar Dasha (Sub-Sub Period)

// Get pratyantar dasha details
const pratyantarResponse = await fetch('https://api.vedika.io/v2/astrology/dasha/pratyantar', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
        datetime: '1990-05-15T14:30:00+05:30',
        latitude: 28.6139,
        longitude: 77.2090,
        mahadasha: 'Jupiter',
        antardasha: 'Saturn'
    })
});

const pratyantars = await pratyantarResponse.json();

// Response shows all 9 pratyantars within Jupiter-Saturn period:
{
    "mahadasha": "Jupiter",
    "antardasha": "Saturn",
    "antardashaStart": "2024-07-20",
    "antardashaEnd": "2027-01-28",
    "pratyantardashas": [
        {"planet": "Saturn", "start": "2024-07-20", "end": "2024-10-28", "days": 100},
        {"planet": "Mercury", "start": "2024-10-28", "end": "2025-01-22", "days": 86},
        {"planet": "Ketu", "start": "2025-01-22", "end": "2025-03-06", "days": 43},
        {"planet": "Venus", "start": "2025-03-06", "end": "2025-06-20", "days": 106},
        {"planet": "Sun", "start": "2025-06-20", "end": "2025-07-26", "days": 36},
        {"planet": "Moon", "start": "2025-07-26", "end": "2025-09-25", "days": 61},
        {"planet": "Mars", "start": "2025-09-25", "end": "2025-11-11", "days": 47},
        {"planet": "Rahu", "start": "2025-11-11", "end": "2026-02-12", "days": 93},
        {"planet": "Jupiter", "start": "2026-02-12", "end": "2026-05-01", "days": 78}
    ]
}

Alternative Dasha Systems

Vedika API supports multiple dasha systems:

// Yogini Dasha (36-year cycle)
const yoginiDasha = await fetch('https://api.vedika.io/v2/astrology/dasha', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
        datetime: '1990-05-15T14:30:00+05:30',
        latitude: 28.6139,
        longitude: 77.2090,
        system: 'yogini' // Options: vimshottari, yogini, chara, ashtottari
    })
});

// Chara Dasha (Jaimini system)
const charaDasha = await fetch('https://api.vedika.io/v2/astrology/dasha', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
        datetime: '1990-05-15T14:30:00+05:30',
        latitude: 28.6139,
        longitude: 77.2090,
        system: 'chara'
    })
});

Dasha Timeline Visualization

// React component for dasha timeline
function DashaTimeline({ birthDetails }) {
    const [dasha, setDasha] = useState(null);

    useEffect(() => {
        fetchDasha(birthDetails).then(setDasha);
    }, [birthDetails]);

    if (!dasha) return 
Loading...
; const currentDate = new Date(); return (

Your Dasha Periods

{/* Current Period Highlight */}

Currently Running

{dasha.currentPeriods.mahadasha.planet} Mahadasha > {dasha.currentPeriods.antardasha.planet} Antardasha

{dasha.currentPeriods.antardasha.monthsRemaining.toFixed(1)} months remaining

{/* Timeline */}
{dasha.allMahadashas.map((md, i) => { const start = new Date(md.start); const end = new Date(md.end); const isCurrent = currentDate >= start && currentDate <= end; const isPast = currentDate > end; return (
{md.planet} {start.getFullYear()} - {end.getFullYear()}
); })}
); }

Precise Dasha Calculations

Vedika API calculates dasha periods to the second using Swiss Ephemeris. Support for Vimshottari, Yogini, Chara, and Ashtottari systems.

Get Free API Key