Skip to content
RoxyAPI
Get API Key

Vedic Astrology API reference

Vedic astrology (Jyotish) and KP API for kundli generation with the sixteen Shodasavarga divisional charts (D1 to D60), panchang with choghadiya, hora and the classical muhurta windows, kundli matching by Ashtakoot Gun Milan, the South Indian ten porutham with Rajju and Vedha vetoes and Papasamyam, Vimshottari Dasha predictions, dosha detection with remedies, a 301-entry planetary yoga glossary with 48 of them chart-detected and evidenced, and KP horary with 249-level sub-lord analysis. Calculations verified against NASA JPL Horizons at arc-second-level accuracy. Built for matrimonial apps, horoscope platforms, spiritual wellness services, and AI-powered astrology chatbots. One key covers every RoxyAPI domain, with Remote MCP and typed SDKs.

58 endpoints. Product page. Typed SDKs in six languages carry every operation below.

Kept in this tab only. Without a key, a small daily allowance still answers every request below.

Get birth chart (D1 Rashi chart) - Kundli Calculator API

POST /api/v2/vedic-astrology/birth-chart

Calculate complete Vedic birth chart (Janam Kundli, natal chart) with all 9 planetary positions (Sun through Ketu) plus Ascendant (Lagna). Kundli calculator API for astrology apps, matrimonial sites. Returns accurate graha positions grouped by zodiac signs (rashis) with nakshatra details and pada. Perfect for kundli generation, horoscope matching, and Vedic astrology software integration. Rahu and Ketu are the mean lunar node, referred to the true equinox of date, with Ketu exactly opposite Rahu.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
avasthaInfobooleanSet true to include a localized meaning and one-sentence classical interpretation beside each graha avastha state, under avasthaInfo on that graha in meta. Defaults to false, so an existing integration is byte-identical until it opts in. Saves a second call to GET /avasthas and the client-side join that would otherwise be needed to turn Yuva or Swapna into readable text.
modernPlanetsbooleanSet true to also return Uranus, Neptune and Pluto, under the Sanskrit names Arun, Varun and Yam that Indian software prints for them. They arrive in a separate modernPlanets array, NOT inside meta, because classical Jyotish is defined over nine grahas: the moderns rule no sign, so they have no dignity, avastha, combustion or aspect strength and it would be fabrication to report one. Each carries longitude, rashi, degree in sign, nakshatra with pada and lord, and retrograde status. Defaults to false, so an existing integration is byte-identical until it opts in.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/birth-chart" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
aries requiredobject
aries.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
aries.signs requiredarray of objectPlanets placed in this zodiac sign.
aries.signs[].graha requiredstringPlanet (graha) placed in this sign.
aries.signs[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
aries.signs[].nakshatra requiredobject
aries.signs[].nakshatra.name requiredstringNakshatra (lunar mansion, 1 of 27) the planet occupies.
aries.signs[].nakshatra.pada requirednumberNakshatra pada (quarter, 1-4). Each nakshatra has 4 padas of 3 degrees 20 each.
aries.signs[].nakshatra.key requirednumberNakshatra index (1-27) in the zodiac sequence starting from Ashwini.
aries.signs[].nakshatra.lord requiredstring enumVimshottari ruling planet of this nakshatra. One of the nine grahas (Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury). Drives the dasha sequence and the nakshatra qualities.
aries.signs[].isRetrograde requiredbooleanTrue if planet is in retrograde motion (appears to move backward). Retrograde planets have altered significations.
aries.signs[].houseintegerBhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi). Present on the D1 birth chart; divisional charts (navamsa, varga) omit it.
aries.signs[].awasthastring enumBaladi avastha, the planetary age-state set by the graha degree within its sign: Bala (infant), Kumara (child), Yuva (adult, strongest results), Vriddha (old), Mrita (dead, weakest). Bands run forward in odd signs and reversed in even signs. D1 birth chart only.
aries.signs[].jagradadistring enumJagradadi avastha, the waking state of the graha set by its sign dignity: Jagrat (awake, own sign or exaltation, full results), Swapna (dreaming, a friendly or neutral sign, medium results), Sushupti (sleeping, an enemy sign or debilitation, no results). Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna own no sign and are omitted.
Show all fieldsShow fewer fields
FieldTypeDescription
aries.signs[].deeptadistring enumDeeptadi avastha, the dispositional state of the graha, one of nine: Dipta (exalted, blazing), Svastha (own sign, healthy), Pramudita (great friend sign, delighted), Shanta (friendly sign, at peace), Dina (neutral sign, helpless), Duhkhita (enemy sign, sorrowful), Khala (great enemy sign, harsh), Vikala (joined by a natural malefic, disabled), Kopa (eclipsed by the Sun, enraged). Where more than one applies the more severe is returned, so combustion outranks a malefic conjunction, which outranks the sign reading. Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna are omitted.
taurus requiredobject
taurus.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
taurus.signs requiredarray of objectPlanets placed in this zodiac sign.
taurus.signs[].graha requiredstringPlanet (graha) placed in this sign.
taurus.signs[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
taurus.signs[].nakshatra requiredobject
taurus.signs[].nakshatra.name requiredstringNakshatra (lunar mansion, 1 of 27) the planet occupies.
taurus.signs[].nakshatra.pada requirednumberNakshatra pada (quarter, 1-4). Each nakshatra has 4 padas of 3 degrees 20 each.
taurus.signs[].nakshatra.key requirednumberNakshatra index (1-27) in the zodiac sequence starting from Ashwini.
taurus.signs[].nakshatra.lord requiredstring enumVimshottari ruling planet of this nakshatra. One of the nine grahas (Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury). Drives the dasha sequence and the nakshatra qualities.
taurus.signs[].isRetrograde requiredbooleanTrue if planet is in retrograde motion (appears to move backward). Retrograde planets have altered significations.
taurus.signs[].houseintegerBhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi). Present on the D1 birth chart; divisional charts (navamsa, varga) omit it.
taurus.signs[].awasthastring enumBaladi avastha, the planetary age-state set by the graha degree within its sign: Bala (infant), Kumara (child), Yuva (adult, strongest results), Vriddha (old), Mrita (dead, weakest). Bands run forward in odd signs and reversed in even signs. D1 birth chart only.
taurus.signs[].jagradadistring enumJagradadi avastha, the waking state of the graha set by its sign dignity: Jagrat (awake, own sign or exaltation, full results), Swapna (dreaming, a friendly or neutral sign, medium results), Sushupti (sleeping, an enemy sign or debilitation, no results). Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna own no sign and are omitted.
taurus.signs[].deeptadistring enumDeeptadi avastha, the dispositional state of the graha, one of nine: Dipta (exalted, blazing), Svastha (own sign, healthy), Pramudita (great friend sign, delighted), Shanta (friendly sign, at peace), Dina (neutral sign, helpless), Duhkhita (enemy sign, sorrowful), Khala (great enemy sign, harsh), Vikala (joined by a natural malefic, disabled), Kopa (eclipsed by the Sun, enraged). Where more than one applies the more severe is returned, so combustion outranks a malefic conjunction, which outranks the sign reading. Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna are omitted.
gemini requiredobject
gemini.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
gemini.signs requiredarray of objectPlanets placed in this zodiac sign.
gemini.signs[].graha requiredstringPlanet (graha) placed in this sign.
gemini.signs[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
gemini.signs[].nakshatra requiredobject
gemini.signs[].nakshatra.name requiredstringNakshatra (lunar mansion, 1 of 27) the planet occupies.
gemini.signs[].nakshatra.pada requirednumberNakshatra pada (quarter, 1-4). Each nakshatra has 4 padas of 3 degrees 20 each.
gemini.signs[].nakshatra.key requirednumberNakshatra index (1-27) in the zodiac sequence starting from Ashwini.
gemini.signs[].nakshatra.lord requiredstring enumVimshottari ruling planet of this nakshatra. One of the nine grahas (Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury). Drives the dasha sequence and the nakshatra qualities.
gemini.signs[].isRetrograde requiredbooleanTrue if planet is in retrograde motion (appears to move backward). Retrograde planets have altered significations.
gemini.signs[].houseintegerBhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi). Present on the D1 birth chart; divisional charts (navamsa, varga) omit it.
gemini.signs[].awasthastring enumBaladi avastha, the planetary age-state set by the graha degree within its sign: Bala (infant), Kumara (child), Yuva (adult, strongest results), Vriddha (old), Mrita (dead, weakest). Bands run forward in odd signs and reversed in even signs. D1 birth chart only.
gemini.signs[].jagradadistring enumJagradadi avastha, the waking state of the graha set by its sign dignity: Jagrat (awake, own sign or exaltation, full results), Swapna (dreaming, a friendly or neutral sign, medium results), Sushupti (sleeping, an enemy sign or debilitation, no results). Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna own no sign and are omitted.
gemini.signs[].deeptadistring enumDeeptadi avastha, the dispositional state of the graha, one of nine: Dipta (exalted, blazing), Svastha (own sign, healthy), Pramudita (great friend sign, delighted), Shanta (friendly sign, at peace), Dina (neutral sign, helpless), Duhkhita (enemy sign, sorrowful), Khala (great enemy sign, harsh), Vikala (joined by a natural malefic, disabled), Kopa (eclipsed by the Sun, enraged). Where more than one applies the more severe is returned, so combustion outranks a malefic conjunction, which outranks the sign reading. Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna are omitted.
cancer requiredobject
cancer.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
cancer.signs requiredarray of objectPlanets placed in this zodiac sign.
cancer.signs[].graha requiredstringPlanet (graha) placed in this sign.
cancer.signs[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
cancer.signs[].nakshatra requiredobject
cancer.signs[].nakshatra.name requiredstringNakshatra (lunar mansion, 1 of 27) the planet occupies.
cancer.signs[].nakshatra.pada requirednumberNakshatra pada (quarter, 1-4). Each nakshatra has 4 padas of 3 degrees 20 each.
cancer.signs[].nakshatra.key requirednumberNakshatra index (1-27) in the zodiac sequence starting from Ashwini.
cancer.signs[].nakshatra.lord requiredstring enumVimshottari ruling planet of this nakshatra. One of the nine grahas (Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury). Drives the dasha sequence and the nakshatra qualities.
cancer.signs[].isRetrograde requiredbooleanTrue if planet is in retrograde motion (appears to move backward). Retrograde planets have altered significations.
cancer.signs[].houseintegerBhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi). Present on the D1 birth chart; divisional charts (navamsa, varga) omit it.
cancer.signs[].awasthastring enumBaladi avastha, the planetary age-state set by the graha degree within its sign: Bala (infant), Kumara (child), Yuva (adult, strongest results), Vriddha (old), Mrita (dead, weakest). Bands run forward in odd signs and reversed in even signs. D1 birth chart only.
cancer.signs[].jagradadistring enumJagradadi avastha, the waking state of the graha set by its sign dignity: Jagrat (awake, own sign or exaltation, full results), Swapna (dreaming, a friendly or neutral sign, medium results), Sushupti (sleeping, an enemy sign or debilitation, no results). Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna own no sign and are omitted.
cancer.signs[].deeptadistring enumDeeptadi avastha, the dispositional state of the graha, one of nine: Dipta (exalted, blazing), Svastha (own sign, healthy), Pramudita (great friend sign, delighted), Shanta (friendly sign, at peace), Dina (neutral sign, helpless), Duhkhita (enemy sign, sorrowful), Khala (great enemy sign, harsh), Vikala (joined by a natural malefic, disabled), Kopa (eclipsed by the Sun, enraged). Where more than one applies the more severe is returned, so combustion outranks a malefic conjunction, which outranks the sign reading. Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna are omitted.
leo requiredobject
leo.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
leo.signs requiredarray of objectPlanets placed in this zodiac sign.
leo.signs[].graha requiredstringPlanet (graha) placed in this sign.
leo.signs[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
leo.signs[].nakshatra requiredobject
leo.signs[].nakshatra.name requiredstringNakshatra (lunar mansion, 1 of 27) the planet occupies.
leo.signs[].nakshatra.pada requirednumberNakshatra pada (quarter, 1-4). Each nakshatra has 4 padas of 3 degrees 20 each.
leo.signs[].nakshatra.key requirednumberNakshatra index (1-27) in the zodiac sequence starting from Ashwini.
leo.signs[].nakshatra.lord requiredstring enumVimshottari ruling planet of this nakshatra. One of the nine grahas (Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury). Drives the dasha sequence and the nakshatra qualities.
leo.signs[].isRetrograde requiredbooleanTrue if planet is in retrograde motion (appears to move backward). Retrograde planets have altered significations.
leo.signs[].houseintegerBhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi). Present on the D1 birth chart; divisional charts (navamsa, varga) omit it.
leo.signs[].awasthastring enumBaladi avastha, the planetary age-state set by the graha degree within its sign: Bala (infant), Kumara (child), Yuva (adult, strongest results), Vriddha (old), Mrita (dead, weakest). Bands run forward in odd signs and reversed in even signs. D1 birth chart only.
leo.signs[].jagradadistring enumJagradadi avastha, the waking state of the graha set by its sign dignity: Jagrat (awake, own sign or exaltation, full results), Swapna (dreaming, a friendly or neutral sign, medium results), Sushupti (sleeping, an enemy sign or debilitation, no results). Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna own no sign and are omitted.
leo.signs[].deeptadistring enumDeeptadi avastha, the dispositional state of the graha, one of nine: Dipta (exalted, blazing), Svastha (own sign, healthy), Pramudita (great friend sign, delighted), Shanta (friendly sign, at peace), Dina (neutral sign, helpless), Duhkhita (enemy sign, sorrowful), Khala (great enemy sign, harsh), Vikala (joined by a natural malefic, disabled), Kopa (eclipsed by the Sun, enraged). Where more than one applies the more severe is returned, so combustion outranks a malefic conjunction, which outranks the sign reading. Present for the seven classical grahas on the D1 chart; Rahu, Ketu and the Lagna are omitted.
virgo requiredobject
virgo.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the block it sits in, so the aries block carries "aries" and the pisces block carries "pisces".
virgo.signs requiredarray of objectPlanets placed in this zodiac sign.
virgo.signs[].graha requiredstringPlanet (graha) placed in this sign.
virgo.signs[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
Example response
{
  "aries": {
    "rashi": "aries",
    "signs": []
  },
  "meta": {
    "Sun": {
      "graha": "Sun",
      "rashi": "Leo",
      "longitude": 132.45,
      "nakshatra": {
        "name": "Magha",
        "pada": 2,
        "key": 10,
        "lord": "Ketu"
      },
      "isRetrograde": false,
      "house": 5,
      "awastha": "Vriddha"
    },
    "Moon": {
      "graha": "Moon",
      "rashi": "Cancer",
      "longitude": 98.32,
      "nakshatra": {
        "name": "Punarvasu",
        "pada": 4,
        "key": 7,
        "lord": "Jupiter"
      },
      "isRetrograde": false,
      "house": 4,
      "awastha": "Yuva"
    }
  }
}

Try it

JSON, as the example above shows it.
Not sent

Get Navamsa chart (D9) - Marriage Compatibility Calculator

POST /api/v2/vedic-astrology/navamsa

Calculate Navamsa (D9 divisional chart) for marriage compatibility analysis, spouse prediction, and spiritual life assessment. Navamsa calculator API reveals planetary strength in married life. Each planetary position is divided into 9 parts for accurate marriage astrology. Detects Vargottama planets (exalted status). Essential for matrimonial matching, relationship prediction, and marital harmony analysis in Vedic astrology.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/navamsa" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
chart requiredobjectNavamsa (D9) divisional chart showing planetary positions across 12 rashi houses plus a meta lookup. Same structure as the birth chart response.
chart.meta requiredobjectPlanet positions in the Navamsa (D9) chart keyed by planet name. Contains all 9 Navagraha plus Lagna.
chart.aries requiredobjectOne of the 12 navamsa rashi-house buckets (aries shown; taurus through pisces follow the identical shape). Each lists the planets placed in that sign.
chart.aries.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the navamsa rashi-house block it sits in.
chart.aries.signs requiredarray of objectPlanets placed in this navamsa sign.
chart.aries.signs[].graha requiredstringPlanet (graha) placed in this navamsa sign.
chart.aries.signs[].longitude requirednumberOriginal sidereal longitude in degrees (0-360), same as the D1 birth chart. Preserved for cross-chart reference.
chart.aries.signs[].nakshatra requiredobjectNakshatra (lunar mansion) data for this planet, carried over from the D1 chart.
chart.aries.signs[].isRetrograde requiredbooleanTrue if the planet is in retrograde motion.
chart.aries.signs[].houseintegerBhava (house) number 1-12 in the Navamsa chart, counted whole-sign from the D9 Lagna.
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
vargottama requiredarray of stringPlanets that are Vargottama (same sign in D1 and D9)
Show all fieldsShow fewer fields
FieldTypeDescription
vargottamaExplanation requiredstringExplanation of Vargottama significance
Example response
{
  "chart": {
    "meta": {
      "Venus": {
        "graha": "Venus",
        "rashi": "Libra",
        "longitude": 302.0203951659894,
        "nakshatra": {
          "name": "Dhanishta",
          "pada": 3,
          "key": 23,
          "lord": "Mars"
        },
        "isRetrograde": false,
        "house": 1
      }
    },
    "aries": {
      "rashi": "aries",
      "signs": [
        {
          "graha": "Venus",
          "longitude": 195.42,
          "nakshatra": {
            "name": "Swati",
            "pada": 2,
            "key": 15,
            "lord": "Rahu"
          },
          "isRetrograde": false,
          "house": 7
        }
      ]
    }
  },
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "vargottama": [
    "Sun",
    "Moon"
  ],
  "vargottamaExplanation": "Vargottama planets occupy the same zodiac sign in both D1 (birth chart) and D9 (Navamsa chart), indicating exceptional strength and purity. These planets deliver their full results with minimal affliction, bringing stability and success in their significations. Vargottama is considered highly auspicious, especially for benefics like Jupiter and Venus, as it doubles the positive effects in marriage, spirituality, and overall life prosperity."
}

Try it

JSON, as the example above shows it.
Not sent

Get divisional chart (Varga) - D2 to D60 Calculator

POST /api/v2/vedic-astrology/divisional-chart

Calculate any Vedic divisional chart (Varga) from D2 Hora to D60 Shashtiamsa. Divisional charts divide each zodiac sign into smaller segments to reveal detailed insights about specific life areas: wealth (D2), siblings (D3), property (D4), children (D7), marriage (D9), career (D10), parents (D12), vehicles (D16), spirituality (D20), education (D24), strength (D27), misfortunes (D30), merit (D40), character (D45), and past life karma (D60). Based on Brihat Parashara Hora Shastra (BPHS) Shodasha Varga system. Detects Vargottama planets (same sign in D1 and selected chart).

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
division requiredintegerDivisional chart number. Each division reveals a specific life area. Supported: 2 (Hora, wealth), 3 (Drekkana, siblings), 4 (Chaturthamsa, property), 7 (Saptamsa, children), 9 (Navamsa, marriage), 10 (Dasamsa, career), 12 (Dwadasamsa, parents), 16 (Shodasamsa, vehicles), 20 (Vimsamsa, spirituality), 24 (Chaturvimsamsa, education), 27 (Bhamsa, strength), 30 (Trimsamsa, misfortunes), 40 (Khavedamsa, merit), 45 (Akshavedamsa, character), 60 (Shashtiamsa, past life karma).
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/divisional-chart" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"division":10}'

Response fields

FieldTypeDescription
division requiredobjectMetadata about the selected divisional chart.
division.number requiredintegerDivision number (e.g. 10 for D10 Dasamsa).
division.name requiredstringEnglish name of the divisional chart.
division.sanskritName requiredstringSanskrit name of the divisional chart.
division.degreesPerDivision requiredstringSize of each division segment within a 30-degree sign.
division.significance requiredstringLife areas this divisional chart reveals.
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
chart requiredobjectDivisional chart showing planetary positions across 12 rashi houses plus a meta lookup. Same structure as birth chart and navamsa responses.
chart.meta requiredobjectPlanet positions in the divisional chart keyed by planet name. Contains all 9 Navagraha plus Lagna.
chart.aries requiredobjectOne of the 12 divisional rashi-house buckets (aries shown; taurus through pisces follow the identical shape). Each lists the planets placed in that sign.
chart.aries.rashi requiredstringZodiac sign name in lowercase. Always equals the key of the divisional rashi-house block it sits in.
chart.aries.signs requiredarray of objectPlanets placed in this divisional sign.
Show all fieldsShow fewer fields
FieldTypeDescription
chart.aries.signs[].graha requiredstringPlanet (graha) placed in this divisional sign.
chart.aries.signs[].longitude requirednumberOriginal sidereal longitude in degrees (0-360), same as the D1 birth chart. Preserved for cross-chart reference.
chart.aries.signs[].nakshatra requiredobjectNakshatra (lunar mansion) data for this planet, carried over from the D1 chart.
chart.aries.signs[].isRetrograde requiredbooleanTrue if the planet is in retrograde motion.
chart.aries.signs[].houseintegerBhava (house) number 1-12 in this divisional chart, counted whole-sign from the divisional Lagna.
vargottama requiredarray of stringPlanets that are Vargottama (same sign in D1 and this divisional chart). Vargottama planets deliver strong, consistent results.
Example response
{
  "division": {
    "number": 10,
    "name": "Dasamsa",
    "sanskritName": "Dasamsa",
    "degreesPerDivision": "3°",
    "significance": "Career, profession, public reputation, and social status"
  },
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "chart": {
    "meta": {
      "Jupiter": {
        "graha": "Jupiter",
        "rashi": "Gemini",
        "longitude": 259.6848244496506,
        "nakshatra": {
          "name": "Purva Ashadha",
          "pada": 2,
          "key": 19,
          "lord": "Venus"
        },
        "isRetrograde": false,
        "house": 11
      }
    },
    "aries": {
      "rashi": "aries",
      "signs": [
        {
          "graha": "Jupiter",
          "longitude": 248.73,
          "nakshatra": {
            "name": "Moola",
            "pada": 3,
            "key": 19,
            "lord": "Ketu"
          },
          "isRetrograde": false,
          "house": 7
        }
      ]
    }
  },
  "vargottama": [
    "Sun",
    "Jupiter"
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Calculate compatibility score - Gun Milan API (Ashtakoot Matching)

POST /api/v2/vedic-astrology/compatibility

Calculate detailed Ashtakoot compatibility (Gun Milan) for kundli matching between two people. Returns accurate 36-point Guna Milan scale with breakdown across all 8 kootas (Varna, Vashya, Tara, Yoni, Graha Maitri, Gana, Bhakoot, Nadi), Nadi and Bhakoot dosha detection with classical cancellation analysis per Muhurta Martanda and BPHS rules, and marriage recommendation. Perfect for kundli matching for marriage, matrimonial platforms, horoscope compatibility, and Vedic matchmaking services.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
person1 requiredobjectBirth data of the first person (typically the boy/groom in traditional Ashtakoot matching). Date, time, and location determine Moon nakshatra for koota scoring.
person1.date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
person1.time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
person1.latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
person1.longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
person1.timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
person2 requiredobjectBirth data of the second person (typically the girl/bride in traditional Ashtakoot matching). Moon nakshatra compared against person 1 across all 8 kootas.
person2.date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
person2.time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
person2.latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
person2.longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
person2.timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/compatibility" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"person1":{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"timezone":5.5},"person2":{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"timezone":5.5}}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
total requirednumberTotal Ashtakoot Gun Milan score out of 36. Scores above 18 are considered compatible for marriage. Higher scores indicate stronger marital harmony.
maxScore requirednumberMaximum possible Guna Milan score (always 36). The 36 points are distributed across 8 kootas (matching categories).
percentage requirednumberCompatibility percentage derived from total/maxScore. Above 50% (18/36) is the traditional minimum threshold for marriage compatibility.
isCompatible requiredbooleanTrue when percentage >= 50% (18/36 minimum). Based on the traditional Ashtakoot Gun Milan threshold used by Vedic astrologers for kundli matching.
recommendation requiredstringHuman-readable marriage recommendation based on overall score and dosha analysis. Indicates whether the union is recommended, and if not, specifies the reason (e.g. Nadi Dosha, Bhakoot Dosha, low overall score).
doshas requiredarray of stringList of active (uncancelled) doshas in the matching. Doshas that meet classical cancellation conditions from Muhurta Martanda or BPHS are excluded from this array and appear in doshaCancellations instead. Common doshas: Nadi Dosha (same Nadi type, 0/8 points), Bhakoot Dosha (inauspicious Moon sign distance, 0/7 points). Empty array when no doshas are present or all detected doshas are cancelled.
doshaCancellations requiredarray of objectDoshas detected but cancelled by classical exception rules. Nadi Dosha cancels when partners share the same Moon sign with different nakshatras, same nakshatra with different padas, or same nakshatra spanning different signs. Bhakoot Dosha cancels when Moon sign lords are the same planet or mutual natural friends. Koota score remains 0 but the dosha is not counted against the recommendation.
doshaCancellations[].dosha requiredstringName of the cancelled dosha (Nadi Dosha or Bhakoot Dosha).
doshaCancellations[].reason requiredstringClassical cancellation condition that neutralizes this dosha. Based on Muhurta Martanda for Nadi Dosha and BPHS for Bhakoot Dosha.
breakdown requiredarray of objectDetailed breakdown of compatibility scores across all 8 Ashtakoot kootas. Each category evaluates a different aspect of marital compatibility: temperament, physical, mental, financial, and health.
breakdown[].category requiredstringOne of 8 Ashtakoot matching categories: Varna, Vashya, Tara, Yoni, Graha Maitri, Gana, Bhakoot, Nadi.
Show all fieldsShow fewer fields
FieldTypeDescription
breakdown[].score requirednumberPoints scored in this category. Maximum varies: Varna (1), Vashya (2), Tara (3), Yoni (4), Graha Maitri (5), Gana (6), Bhakoot (7), Nadi (8).
breakdown[].maxScore requirednumberMaximum possible points for this koota category.
breakdown[].person1 requiredstringClassification of person 1 for this koota (e.g. Vaishya for Varna, Chatushpada for Vashya, Sheep for Yoni).
breakdown[].person2 requiredstringClassification of person 2 for this koota.
breakdown[].description requiredstringHuman-readable explanation of what this koota category evaluates.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "total": 24.5,
  "maxScore": 36,
  "percentage": 68.1,
  "isCompatible": true,
  "recommendation": "Union is recommended",
  "doshas": [],
  "doshaCancellations": [
    {
      "dosha": "Bhakoot Dosha",
      "reason": "Moon sign lords are the same planet (Venus)"
    }
  ],
  "breakdown": [
    {
      "category": "Varna",
      "score": 1,
      "maxScore": 1,
      "person1": "Vaishya",
      "person2": "Shudra",
      "description": "Spiritual compatibility and mutual respect"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Calculate ten porutham match - Dashakoot South Indian Kundli Matching API

POST /api/v2/vedic-astrology/compatibility/dashakoot

Calculate the South Indian ten porutham marriage match (Dashakoot, also called Dasa Porutham) for two birth records. Returns a pass or fail on each of Dina, Gana, Mahendra, Stree Deergha, Yoni, Rasi, Rasyadhipati, Vasya, Rajju and Vedha, a total out of ten, and Rajju and Vedha as explicit hard vetoes that disqualify a match whatever the rest of the sheet reads. This is a different system from the 36 point Ashtakoot Gun Milan on POST /vedic-astrology/compatibility and the two are never reconciled, so a Tamil, Malayalam or Telugu matrimonial desk can read the sheet it actually uses. Direction matters: person1 is the groom and person2 is the bride, because five of the ten poruthams count from the bride birth star to the groom birth star.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
person1 requiredobjectBirth data of the GROOM. Direction is load bearing in this system: Dina, Mahendra, Stree Deergha, Rasi and Vasya all count from the bride toward the groom, so sending the two people the wrong way round returns a different and wrong sheet without any error.
person1.date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
person1.time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
person1.latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
person1.longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
person1.timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
person2 requiredobjectBirth data of the BRIDE. Five of the ten poruthams count FROM this birth star, so this field is not interchangeable with person1. Date, time and location determine the Moon nakshatra and Moon rashi every porutham reads.
person2.date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
person2.time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
person2.latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
person2.longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
person2.timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/compatibility/dashakoot" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"person1":{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"timezone":5.5},"person2":{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"timezone":5.5}}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
total requirednumberPoruthams matched, 0 to 10. Each porutham is a pass or a fail in the South Indian system rather than a weighted score, so this is a plain count and never a fraction. A total says nothing on its own while a veto is active, which is why verdict exists.
maxTotal requirednumberPoruthams on the sheet, always 10. The South Indian system counts ten equal agreements where the Ashtakoot system weights eight kootas across 36 points.
verdict requiredstring enumOverall reading. "rejected" means Rajju or Vedha fired, which the tradition treats as disqualifying however many poruthams matched, so it can appear on a high total. "recommended" means no veto and the total reached the working threshold. "marginal" means no veto and the total fell short of it. The threshold is a RoxyAPI convention because the tradition names a minimum SET of poruthams rather than a number, and that set varies by desk.
recommendation requiredstringOne sentence stating the verdict and why, localized by the lang query parameter. Renders directly; the machine value to branch on is verdict.
rajju requiredobjectRajju veto. The 27 nakshatras divide into five limbs of a body, Paada the foot, Kati the waist, Udara the stomach, Kantha the neck and Siro the head, and a couple whose birth stars share a limb is refused. Published at the top level as well as on its breakdown row because it overrides the total, and a caller must not have to scan the sheet to find it.
rajju.active requiredbooleanTrue when both Moon nakshatras fall on the same Rajju limb, which is the first of the two hard vetoes. A true here sets verdict to rejected regardless of total.
rajju.reason requiredstringWhy the veto is or is not active, localized by the lang query parameter. The same sentence appears on the Rajju row of breakdown, which also carries the limb each person falls on.
vedha requiredobjectVedha veto. Thirteen nakshatra pairs are held to obstruct each other and a couple falling on one is refused. Chitra belongs to no pair and can never trigger this veto.
vedha.active requiredbooleanTrue when the two Moon nakshatras are a mutually obstructing vedha pair, which is the second hard veto. A true here sets verdict to rejected regardless of total.
vedha.reason requiredstringWhy the veto is or is not active, localized by the lang query parameter. The same sentence appears on the Vedha row of breakdown.
breakdown requiredarray of objectThe ten poruthams in the order a Tamil panchangam prints them: Dina, Gana, Mahendra, Stree Deergha, Yoni, Rasi, Rasyadhipati, Vasya, Rajju, Vedha. Dina, Mahendra, Stree Deergha, Rasi and Vasya are directional and read from the bride toward the groom.
Show all fieldsShow fewer fields
FieldTypeDescription
breakdown[].name requiredstring enumWhich of the ten poruthams this row decides. Canonical English, never translated, so it is safe to switch on. Rasyadhipati is the South Indian name for the agreement the North calls Graha Maitri.
breakdown[].points requirednumberOne when this porutham matched and zero when it did not. Every porutham carries equal weight in this system, unlike the Ashtakoot kootas.
breakdown[].maxPoints requirednumberAlways one, since each porutham is a single pass or fail.
breakdown[].verdict requiredstring enumThe outcome as a word rather than a number, for a caller keying a badge or a filter off it. Canonical English, never translated.
breakdown[].person1 requiredstringHow the GROOM classifies for this porutham: a Rajju limb, a Gana class, a Yoni animal, a Moon rashi, a Moon rashi lord, or the Moon nakshatra where the rule counts stars. Canonical English, so the note never has to name it.
breakdown[].person2 requiredstringHow the BRIDE classifies for this porutham, same vocabulary.
breakdown[].note requiredstringOne sentence explaining what decided this porutham, localized by the lang query parameter. Only counts are written into it; every classification stays on person1 and person2 so a translated sentence never carries an English term.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "total": 7,
  "maxTotal": 10,
  "verdict": "recommended",
  "recommendation": "The match reads 7 of 10 poruthams with neither hard veto active, so the union is recommended.",
  "rajju": {
    "active": false,
    "reason": "The two birth stars fall on different Rajju limbs, so no Rajju obstruction applies."
  },
  "vedha": {
    "active": false,
    "reason": "Neither birth star obstructs the other, so no Vedha applies."
  },
  "breakdown": [
    {
      "name": "Rajju",
      "points": 1,
      "maxPoints": 1,
      "verdict": "matched",
      "person1": "Udara",
      "person2": "Kantha",
      "note": "The two birth stars fall on different Rajju limbs, so no Rajju obstruction applies."
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Compare malefic affliction - Papasamyam Kundli Matching API

POST /api/v2/vedic-astrology/compatibility/papasamyam

Calculate Papasamyam, the balance of malefic (papa) points between two birth charts, for Vedic marriage matching. Counts Mars, Saturn, Sun and Rahu sitting in the afflicting bhavas 1, 2, 4, 7, 8 and 12 read from three reference points in each chart, the Lagna weighted 1, the Moon weighted 0.5 and Venus weighted 0.25, and returns both totals with the graha, the bhava and the weight behind every point. The verdict is a comparison and never a judgement on one person: the bride total must be equal to or below the groom total, so a heavily afflicted groom matched with a comparably afflicted bride reads as balanced while an unafflicted groom matched with an afflicted bride does not. Use it beside Gun Milan and the ten porutham sheet on a matrimonial platform, since a koota score says nothing about malefic balance.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
person1 requiredobjectBirth data of the GROOM. The comparison is directional, so this field is not interchangeable with person2: the match reads as balanced only when the bride carries no more affliction than the groom, and swapping the two people can flip the verdict.
person1.date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
person1.time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
person1.latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
person1.longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
person1.timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
person2 requiredobjectBirth data of the BRIDE. Date, time and location determine the Lagna, the Moon and Venus, which are the three points every papa point is counted from.
person2.date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
person2.time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
person2.latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
person2.longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
person2.timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/compatibility/papasamyam" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"person1":{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"timezone":5.5},"person2":{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209,"timezone":5.5}}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
person1 requiredobjectPapa count of the groom chart, with the working shown per reference.
person1.total requirednumberPapa points this chart carries, summed across the three reference points with each hit multiplied by that reference weight. The range is 0 to 7, and quarter points are normal because a hit read from Venus is worth 0.25. The number is never a verdict on one person: only the comparison between the two totals means anything.
person1.byReference requiredarray of objectThe count broken out by the three reference points, in the order Lagna, Moon, Venus. A Kuja Dosha check reads only the first of these and only Mars, which is why a Manglik verdict and a Papasamyam count answer different questions.
person1.byReference[].reference requiredstring enumWhich point the houses on this row were counted from. Lagna is the Ascendant, Moon is the Chandra lagna and Venus is the karaka of marriage. Canonical English, never translated.
person1.byReference[].weight requirednumberWhat one affliction seen from this reference is worth: 1 from the Lagna, 0.5 from the Moon, 0.25 from Venus. Published rather than assumed because a school that weights the three equally exists, and a caller reconciling against one can see exactly which number to change. The points from this row are the length of afflictions multiplied by this weight.
person1.byReference[].afflictions requiredarray of objectEvery malefic this reference point sees in an afflicting bhava, one entry per point contributed. An empty array means this reference point contributes nothing, which is a clean reading rather than missing data. The length of the array is the points from this reference, so it is not published a second time as a number.
person1.byReference[].afflictions[].graha requiredstring enumThe malefic contributing this point. Canonical English, never translated, so it is safe to switch on or use as a glyph key.
person1.byReference[].afflictions[].house requirednumberWhole-sign bhava 1 to 12 counted from the reference on this row, which is NOT the bhava from the Lagna unless the reference is the Lagna. Only the six afflicting bhavas 1, 2, 4, 7, 8 and 12 appear here, because a malefic anywhere else contributes nothing.
person2 requiredobjectPapa count of the bride chart, with the working shown per reference.
person2.total requirednumberPapa points this chart carries, summed across the three reference points with each hit multiplied by that reference weight. The range is 0 to 7, and quarter points are normal because a hit read from Venus is worth 0.25. The number is never a verdict on one person: only the comparison between the two totals means anything.
person2.byReference requiredarray of objectThe count broken out by the three reference points, in the order Lagna, Moon, Venus. A Kuja Dosha check reads only the first of these and only Mars, which is why a Manglik verdict and a Papasamyam count answer different questions.
Show all fieldsShow fewer fields
FieldTypeDescription
person2.byReference[].reference requiredstring enumWhich point the houses on this row were counted from. Lagna is the Ascendant, Moon is the Chandra lagna and Venus is the karaka of marriage. Canonical English, never translated.
person2.byReference[].weight requirednumberWhat one affliction seen from this reference is worth: 1 from the Lagna, 0.5 from the Moon, 0.25 from Venus. Published rather than assumed because a school that weights the three equally exists, and a caller reconciling against one can see exactly which number to change. The points from this row are the length of afflictions multiplied by this weight.
person2.byReference[].afflictions requiredarray of objectEvery malefic this reference point sees in an afflicting bhava, one entry per point contributed. An empty array means this reference point contributes nothing, which is a clean reading rather than missing data. The length of the array is the points from this reference, so it is not published a second time as a number.
person2.byReference[].afflictions[].graha requiredstring enumThe malefic contributing this point. Canonical English, never translated, so it is safe to switch on or use as a glyph key.
person2.byReference[].afflictions[].house requirednumberWhole-sign bhava 1 to 12 counted from the reference on this row, which is NOT the bhava from the Lagna unless the reference is the Lagna. Only the six afflicting bhavas 1, 2, 4, 7, 8 and 12 appear here, because a malefic anywhere else contributes nothing.
verdict requiredstring enumWhether the two charts carry comparable affliction. "balanced" when the bride total is equal to or below the groom total, "unbalanced" when the bride carries more. Canonical English, never translated, so it is safe to branch on. Both totals are published, so a desk that also caps how far the groom may exceed the bride, or that allows the bride a small tolerance, can apply its own band without a second request.
recommendation requiredstringOne sentence stating the comparison and what it means, localized by the lang query parameter. Renders directly; the machine value to branch on is verdict.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "person1": {
    "total": 3.25,
    "byReference": [
      {
        "reference": "Moon",
        "weight": 0.5,
        "afflictions": [
          {
            "graha": "Saturn",
            "house": 8
          }
        ]
      }
    ]
  },
  "person2": {
    "total": 3.25,
    "byReference": [
      {
        "reference": "Moon",
        "weight": 0.5,
        "afflictions": [
          {
            "graha": "Saturn",
            "house": 8
          }
        ]
      }
    ]
  },
  "verdict": "balanced",
  "recommendation": "The bride carries 2.25 papa points against 3.25 for the groom, so the affliction is balanced and the match is not refused on this count."
}

Try it

JSON, as the example above shows it.
Not sent

Get planetary positions - Graha Positions API

POST /api/v2/vedic-astrology/planetary-positions

Get simplified planetary positions (graha positions) for all 9 planets (Sun through Ketu) plus Ascendant (Lagna). Real-time planet transit calculator for Vedic astrology. Navagraha positions API with nakshatra, pada, and rashi details. Includes house number placement using Whole Sign house system from Lagna. Faster response for basic planetary data without full chart structure. Perfect for planetary alignment tracking, daily transit updates, and astrology widgets. Rahu and Ketu are the mean lunar node, referred to the true equinox of date, with Ketu exactly opposite Rahu.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/planetary-positions" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'
Example response
{
  "Sun": {
    "graha": "Sun",
    "rashi": "Taurus",
    "longitude": 30.549506246983867,
    "latitude": -0.000012444336161568964,
    "nakshatra": {
      "anga": "nakshatra",
      "key": 3,
      "ratio": 0.2912129685237899,
      "abhijit": false,
      "left": 9.450493753016135,
      "name": "Krittika",
      "pada": 2,
      "lord": "Sun",
      "deity": "Agni (fire god)",
      "symbol": "Razor or Blade",
      "characteristics": "Krittika natives are known for their sharp intellect, courage, and independent nature. They possess a fiery determination and often stand out as leaders in their field."
    },
    "isRetrograde": false,
    "house": 9,
    "awastha": "Mrita",
    "jagradadi": "Sushupti",
    "deeptadi": "Dina",
    "rashiDetails": {
      "vedicName": "Vrishabha",
      "symbol": "Bull",
      "energy": "Aryaman Aditya",
      "characteristics": "Value family, traditions, distinguished in nature"
    }
  }
}

Try it

JSON, as the example above shows it.
Not sent

Monthly Ephemeris - Daily sidereal planetary positions for a month

POST /api/v2/vedic-astrology/planetary-positions/monthly

Get daily sidereal ecliptic positions for all 9 Vedic planets (Navagraha) for an entire month. Returns longitude, zodiac sign, degree within sign, and retrograde status for each planet on each day. Calculated at noon UTC. Omit year and month to get the month in progress, so a published ephemeris page stays current without a redeploy. Essential for ephemeris generation, transit tracking, and planetary movement visualization. Monthly planetary ephemeris API, sidereal position table, daily graha gochara positions, ecliptic longitude calculator. Rahu and Ketu are the mean lunar node, referred to the true equinox of date, with Ketu exactly opposite Rahu.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
yearintegerYear for monthly ephemeris (1551 to 2649). Defaults to the current year (UTC).
monthintegerMonth number (1-12) for ephemeris. Defaults to the current month (UTC).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/planetary-positions/monthly" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":2026,"month":2,"coordinateSystem":"sidereal"}'

Response fields

FieldTypeDescription
year requirednumberYear of the ephemeris. Echoes the year that was requested, or the current UTC year when it was omitted.
month requirednumberMonth of the ephemeris. Echoes the month that was requested, or the current UTC month when it was omitted.
days requiredarray of objectDaily planetary position entries for the entire month.
days[].date requiredstringDate in YYYY-MM-DD format.
days[].positions requiredarray of objectSidereal positions of all 9 Vedic planets on this date at noon UTC.
days[].positions[].planet requiredstringPlanet name, one of the Navagraha (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu). Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
days[].positions[].planetLocalizedstringPlanet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly. Rahu and Ketu are rendered as the lunar nodes they are, so Spanish returns Nodo Norte and Nodo Sur while Hindi returns their Sanskrit names.
days[].positions[].longitude requirednumberSidereal ecliptic longitude in degrees (0-360) using Lahiri ayanamsa.
days[].positions[].sign requiredstringZodiac sign (rashi) the planet occupies on this date. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use signLocalized for anything a reader sees.
days[].positions[].signLocalizedstringZodiac sign name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat sign exactly.
days[].positions[].degreeInSign requirednumberDegrees traversed within the current sign (0-30). Useful for precise transit tracking.
days[].positions[].isRetrograde requiredbooleanWhether the planet is in retrograde motion (vakri) on this date.
Example response
{
  "year": 2026,
  "month": 2,
  "days": [
    {
      "date": "2026-02-01",
      "positions": [
        {
          "planet": "Mars",
          "planetLocalized": "Marte",
          "longitude": 285.6732,
          "sign": "Capricorn",
          "signLocalized": "Capricornio",
          "degreeInSign": 15.6732,
          "isRetrograde": false
        }
      ]
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get current Mahadasha, Antardasha, Pratyantardasha, Sookshma, Prana - Dasha Calculator API

POST /api/v2/vedic-astrology/dasha/current

Calculate all five running Vimshottari Dasha levels with remaining time in each. The levels are Mahadasha, Antardasha, Pratyantardasha, Sookshma, and Prana. Accurate dasha calculator API for life phase prediction and planetary period analysis. Returns the dasha timeline with start/end dates for every level, ready for a current DBA readout down to hour-level timing. Pass datetime to read the five lords at any moment instead of now, which is what a reading prepared for tomorrow or a backtest over a past day needs. Set significators true to add the KP star lord, sub lord, signified houses and strength grade of each running lord, plus the houses they have in common. Essential for understanding current planetary influences, dasha transitions, and timing events in Vedic astrology. 120-year dasha system based on moon nakshatra at birth, with selectable Lahiri or KP ayanamsa.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumAyanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
significatorsbooleanSet true to attach the KP significators of each period lord: its star lord, sub lord, occupied house, the houses it signifies at levels L1 to L4, and a strength grade. Off by default, so responses stay exactly as they are for clients that only need dates. Requires the birth latitude and longitude, since significators are read off a Placidus house chart, and uses the same ayanamsa frame selected above.
nodeTypestring enumLunar node type for Rahu and Ketu, used ONLY when "significators" is true. Dasha dates themselves come from the Moon and never move with this field. "mean" uses the smooth mean node (traditional default). "true" uses the osculating node, which swings up to 1.5 degrees either side of mean over a 173-day cycle and can therefore change which house or star a node falls in. Defaults to "mean".
datetimestring (date-time)ISO 8601 datetime (YYYY-MM-DDTHH:MM:SS) to read the running periods at, for a reading prepared for a future day, a backtest, or a chart cast for a past moment. Defaults to the current instant. Interpreted as local time in the request timezone (a trailing Z is accepted but ignored); with timezone 0 it is UTC.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dasha/current" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
moonNakshatra requiredintegerBirth Moon nakshatra number (1-27). This nakshatra determines the starting dasha lord in the Vimshottari 120-year cycle.
nakshatraName requiredstringName of the birth Moon nakshatra (lunar mansion). One of 27 Vedic nakshatras from Ashwini to Revati.
nakshatraLord requiredstring enumVimshottari dasha lord of the birth nakshatra. This planet rules the first Mahadasha in the native life cycle.
moonLongitude requirednumberSidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.
ayanamsa requirednumberAyanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.
ayanamsaType requiredstring enumAyanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
mahadasha requiredobjectMahadasha (major planetary period) in the 120-year Vimshottari dasha cycle. Start and end dates are determined by Moon nakshatra at birth.
mahadasha.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
mahadasha.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
mahadasha.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
mahadasha.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
mahadasha.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
Show all fieldsShow fewer fields
FieldTypeDescription
mahadasha.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
mahadasha.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
mahadasha.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
mahadasha.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
mahadasha.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
mahadasha.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
mahadasha.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
mahadasha.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
mahadasha.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
mahadasha.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
mahadasha.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
mahadasha.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
mahadasha.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
mahadasha.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
mahadasha.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
mahadasha.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
antardasha requiredobjectAntardasha (bhukti), sub-period within a Mahadasha. Each Mahadasha contains 9 Antardashas proportional to the Vimshottari years of each planet.
antardasha.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
antardasha.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
antardasha.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
antardasha.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
antardasha.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
antardasha.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
antardasha.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
antardasha.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
antardasha.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
antardasha.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
antardasha.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
antardasha.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
antardasha.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
antardasha.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
antardasha.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
antardasha.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
antardasha.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
antardasha.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
antardasha.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
antardasha.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
antardasha.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
antardasha.mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
pratyantardasha requiredobjectPratyantardasha (sub-sub-period), the third level of the Vimshottari dasha hierarchy, Provides finer timing within each Antardasha for event prediction.
pratyantardasha.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
pratyantardasha.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
pratyantardasha.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
pratyantardasha.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
pratyantardasha.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
pratyantardasha.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
pratyantardasha.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
pratyantardasha.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
pratyantardasha.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
pratyantardasha.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
pratyantardasha.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
pratyantardasha.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
pratyantardasha.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
pratyantardasha.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
pratyantardasha.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
pratyantardasha.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
pratyantardasha.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
pratyantardasha.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
pratyantardasha.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
pratyantardasha.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
pratyantardasha.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
pratyantardasha.mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
pratyantardasha.antardashaLord requiredstring enumParent Antardasha lord under which this Pratyantardasha runs.
sookshmaDasha requiredobjectSookshma dasha (sookshma antardasha), the fourth level of the Vimshottari dasha hierarchy. Each Pratyantardasha divides into 9 Sookshma periods running roughly 3 to 30 days each, used for day-level event timing and muhurta style selection.
sookshmaDasha.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
sookshmaDasha.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
Example response
{
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general",
  "moonNakshatra": 15,
  "nakshatraName": "Swati",
  "nakshatraLord": "Rahu",
  "moonLongitude": 190.994,
  "ayanamsa": 23.72167,
  "ayanamsaType": "lahiri",
  "mahadasha": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    }
  },
  "antardasha": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter"
  },
  "pratyantardasha": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter",
    "antardashaLord": "Saturn"
  },
  "sookshmaDasha": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter",
    "antardashaLord": "Saturn",
    "pratyantardashaLord": "Rahu"
  },
  "pranaDasha": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter",
    "antardashaLord": "Saturn",
    "pratyantardashaLord": "Rahu",
    "sookshmaLord": "Jupiter"
  },
  "commonHouses": {
    "allLevels": [
      11
    ],
    "dashaBhuktiAntara": [
      11,
      5
    ]
  },
  "remainingInMahadasha": {
    "years": 2,
    "months": 4,
    "days": 15,
    "totalDays": 865
  },
  "remainingInAntardasha": {
    "years": 2,
    "months": 4,
    "days": 15,
    "totalDays": 865
  },
  "remainingInPratyantardasha": {
    "years": 2,
    "months": 4,
    "days": 15,
    "totalDays": 865
  },
  "remainingInSookshma": {
    "years": 2,
    "months": 4,
    "days": 15,
    "totalDays": 865
  },
  "remainingInPrana": {
    "years": 2,
    "months": 4,
    "days": 15,
    "totalDays": 865
  }
}

Try it

JSON, as the example above shows it.
Not sent

Get all 9 Mahadasha periods (120-year cycle)

POST /api/v2/vedic-astrology/dasha/major

Returns the complete Vimshottari dasha cycle from birth, all 9 Mahadasha periods across the full 120 year span. Each period carries its ruling graha, exact start and end dates, and the houses it signifies, with the birth dasha balance and Moon nakshatra that anchor the sequence. This is the top level timeline a Vedic astrology report opens with, and the entry point for drilling into Antardasha and finer sub periods.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumAyanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
significatorsbooleanSet true to attach the KP significators of each period lord: its star lord, sub lord, occupied house, the houses it signifies at levels L1 to L4, and a strength grade. Off by default, so responses stay exactly as they are for clients that only need dates. Requires the birth latitude and longitude, since significators are read off a Placidus house chart, and uses the same ayanamsa frame selected above.
nodeTypestring enumLunar node type for Rahu and Ketu, used ONLY when "significators" is true. Dasha dates themselves come from the Moon and never move with this field. "mean" uses the smooth mean node (traditional default). "true" uses the osculating node, which swings up to 1.5 degrees either side of mean over a 173-day cycle and can therefore change which house or star a node falls in. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dasha/major" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
moonNakshatra requiredintegerBirth Moon nakshatra number (1-27) that determines the Vimshottari starting point.
nakshatraName requiredstringBirth Moon nakshatra name, one of 27 Vedic lunar mansions.
nakshatraLord requiredstring enumDasha lord of the birth nakshatra, rules the first Mahadasha.
moonLongitude requirednumberSidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.
ayanamsa requirednumberAyanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.
ayanamsaType requiredstring enumAyanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
birthDashaBalance requiredobjectRemaining balance of the first Mahadasha at birth. Based on Moon degree within the birth nakshatra. partial dasha already elapsed before birth.
birthDashaBalance.years requirednumberFull years remaining in this Vimshottari dasha period.
birthDashaBalance.months requirednumberAdditional months remaining beyond full years.
birthDashaBalance.days requirednumberAdditional days remaining beyond full months.
birthDashaBalance.totalDays requirednumberTotal remaining days in this dasha period. Useful for progress calculations.
mahadashas requiredarray of objectComplete sequence of all 9 Mahadasha periods spanning 120 years from birth. Follows the Vimshottari order: Ketu(7), Venus(20), Sun(6), Moon(10), Mars(7), Rahu(18), Jupiter(16), Saturn(19), Mercury(17).
Show all fieldsShow fewer fields
FieldTypeDescription
mahadashas[].planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
mahadashas[].startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
mahadashas[].endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
mahadashas[].durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
mahadashas[].nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
mahadashas[].interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
mahadashas[].significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
mahadashas[].significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
mahadashas[].significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
mahadashas[].significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
mahadashas[].significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
mahadashas[].significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
mahadashas[].significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
mahadashas[].significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
mahadashas[].significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
mahadashas[].significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
mahadashas[].significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
mahadashas[].significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
mahadashas[].significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
mahadashas[].significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
mahadashas[].significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
totalYears requirednumberTotal Vimshottari cycle length in years (always 120).
Example response
{
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general",
  "moonNakshatra": 15,
  "nakshatraName": "Swati",
  "nakshatraLord": "Rahu",
  "moonLongitude": 190.994,
  "ayanamsa": 23.72167,
  "ayanamsaType": "lahiri",
  "birthDashaBalance": {
    "years": 2,
    "months": 4,
    "days": 15,
    "totalDays": 865
  },
  "mahadashas": [
    {
      "planet": "Jupiter",
      "startDate": "1990-07-04T10:12:00",
      "endDate": "1996-07-04T10:12:00",
      "durationYears": 6,
      "nominalStartDate": "1984-09-01T09:00:00",
      "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
      "significators": {
        "house": 11,
        "starLord": "Moon",
        "subLord": "Venus",
        "signifies": {
          "L1": [
            11,
            6
          ],
          "L2": [
            11
          ],
          "L3": [
            3,
            8
          ],
          "L4": [
            5,
            6
          ]
        },
        "signifiedHouses": [
          11,
          6
        ],
        "strongHouses": [
          11,
          6
        ],
        "strength": {
          "score": 62.5,
          "grade": "B",
          "label": "strong"
        }
      }
    }
  ],
  "totalYears": 120
}

Try it

JSON, as the example above shows it.
Not sent

Get all Antardashas (sub-periods) for a specific Mahadasha

POST /api/v2/vedic-astrology/dasha/sub/{mahadasha}

Returns the 9 Antardasha sub periods inside a chosen Mahadasha, each proportional to the Vimshottari years of its lord. Every period carries its ruling graha, exact start and end dates, and the houses it signifies, alongside the parent Mahadasha it sits in. Use it to narrow a multi year Mahadasha down to the months that matter for event prediction, muhurta selection, and dasha timeline UIs.

Parameters

ParameterTypeDescription
mahadasha required pathstring enumMahadasha planet name, case-insensitive (e.g., jupiter, Jupiter, JUPITER all work). Valid: Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumAyanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
significatorsbooleanSet true to attach the KP significators of each period lord: its star lord, sub lord, occupied house, the houses it signifies at levels L1 to L4, and a strength grade. Off by default, so responses stay exactly as they are for clients that only need dates. Requires the birth latitude and longitude, since significators are read off a Placidus house chart, and uses the same ayanamsa frame selected above.
nodeTypestring enumLunar node type for Rahu and Ketu, used ONLY when "significators" is true. Dasha dates themselves come from the Moon and never move with this field. "mean" uses the smooth mean node (traditional default). "true" uses the osculating node, which swings up to 1.5 degrees either side of mean over a 173-day cycle and can therefore change which house or star a node falls in. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dasha/sub/Jupiter" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
mahadashaLord requiredstring enumRuling planet of the requested Mahadasha period.
moonLongitude requirednumberSidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.
ayanamsa requirednumberAyanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.
ayanamsaType requiredstring enumAyanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
mahadashaPeriod requiredobjectFull details of the parent Mahadasha including start/end dates and duration.
mahadashaPeriod.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
mahadashaPeriod.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
mahadashaPeriod.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
mahadashaPeriod.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
mahadashaPeriod.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
mahadashaPeriod.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
mahadashaPeriod.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
Show all fieldsShow fewer fields
FieldTypeDescription
mahadashaPeriod.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
mahadashaPeriod.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
mahadashaPeriod.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
mahadashaPeriod.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
mahadashaPeriod.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
mahadashaPeriod.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
mahadashaPeriod.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
mahadashaPeriod.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
mahadashaPeriod.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
mahadashaPeriod.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
mahadashaPeriod.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
mahadashaPeriod.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
mahadashaPeriod.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
mahadashaPeriod.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
antardashas requiredarray of objectAntardasha (bhukti) sub-periods within this Mahadasha, proportional to each planet Vimshottari years, sorted chronologically. Nine for any Mahadasha the native lived through in full. FEWER than nine for the first Mahadasha in the chart, because the Vimshottari cycle was already running at birth: the Antardashas that ended before the birth date are not part of the chart, and the one in force at birth starts on the birth date.
antardashas[].planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
antardashas[].startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
antardashas[].endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
antardashas[].durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
antardashas[].nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
antardashas[].interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
antardashas[].significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
antardashas[].significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
antardashas[].significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
antardashas[].significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
antardashas[].significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
antardashas[].significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
antardashas[].significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
antardashas[].significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
antardashas[].significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
antardashas[].significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
antardashas[].significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
antardashas[].significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
antardashas[].significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
antardashas[].significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
antardashas[].significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
antardashas[].mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
Example response
{
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general",
  "mahadashaLord": "Jupiter",
  "moonLongitude": 190.994,
  "ayanamsa": 23.72167,
  "ayanamsaType": "lahiri",
  "mahadashaPeriod": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    }
  },
  "antardashas": [
    {
      "planet": "Jupiter",
      "startDate": "1990-07-04T10:12:00",
      "endDate": "1996-07-04T10:12:00",
      "durationYears": 6,
      "nominalStartDate": "1984-09-01T09:00:00",
      "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
      "significators": {
        "house": 11,
        "starLord": "Moon",
        "subLord": "Venus",
        "signifies": {
          "L1": [
            11,
            6
          ],
          "L2": [
            11
          ],
          "L3": [
            3,
            8
          ],
          "L4": [
            5,
            6
          ]
        },
        "signifiedHouses": [
          11,
          6
        ],
        "strongHouses": [
          11,
          6
        ],
        "strength": {
          "score": 62.5,
          "grade": "B",
          "label": "strong"
        }
      },
      "mahadashaLord": "Jupiter"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get all Pratyantardashas (antara periods) for a Mahadasha and Antardasha

POST /api/v2/vedic-astrology/dasha/sub/{mahadasha}/{antardasha}

Pratyantardasha calculator API for Vedic astrology. Returns the 9 Pratyantardasha (antara) periods inside a chosen Antardasha, the third level of the Vimshottari dasha hierarchy. Use it to drill from a Mahadasha into month level timing for event prediction, muhurta selection, and dasha timeline UIs. Each period is proportional to the Vimshottari years of its lord.

Parameters

ParameterTypeDescription
mahadasha required pathstring enumMahadasha planet name, case-insensitive (e.g. saturn, Saturn, SATURN all work). Valid: Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury.
antardasha required pathstring enumAntardasha (bhukti) planet name inside that Mahadasha, case-insensitive. Every Mahadasha contains all 9 lords, so a repeat such as saturn/saturn is valid.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumAyanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
significatorsbooleanSet true to attach the KP significators of each period lord: its star lord, sub lord, occupied house, the houses it signifies at levels L1 to L4, and a strength grade. Off by default, so responses stay exactly as they are for clients that only need dates. Requires the birth latitude and longitude, since significators are read off a Placidus house chart, and uses the same ayanamsa frame selected above.
nodeTypestring enumLunar node type for Rahu and Ketu, used ONLY when "significators" is true. Dasha dates themselves come from the Moon and never move with this field. "mean" uses the smooth mean node (traditional default). "true" uses the osculating node, which swings up to 1.5 degrees either side of mean over a 173-day cycle and can therefore change which house or star a node falls in. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dasha/sub/Saturn/Venus" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
mahadashaLord requiredstring enumRuling planet of the requested Mahadasha period.
antardashaLord requiredstring enumRuling planet of the requested Antardasha sub-period.
moonLongitude requirednumberSidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.
ayanamsa requirednumberAyanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.
ayanamsaType requiredstring enumAyanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
antardashaPeriod requiredobjectFull details of the parent Antardasha including start/end dates and duration.
antardashaPeriod.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
antardashaPeriod.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
antardashaPeriod.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
antardashaPeriod.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
antardashaPeriod.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
antardashaPeriod.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
Show all fieldsShow fewer fields
FieldTypeDescription
antardashaPeriod.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
antardashaPeriod.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
antardashaPeriod.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
antardashaPeriod.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
antardashaPeriod.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
antardashaPeriod.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
antardashaPeriod.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
antardashaPeriod.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
antardashaPeriod.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
antardashaPeriod.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
antardashaPeriod.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
antardashaPeriod.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
antardashaPeriod.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
antardashaPeriod.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
antardashaPeriod.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
antardashaPeriod.mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
pratyantardashas requiredarray of objectPratyantardasha (antara) periods within this Antardasha, proportional to each planet Vimshottari years, sorted chronologically and starting with the Antardasha lord. Fewer than nine only when the parent Antardasha is the one that was already running at birth, in which case the periods that ended before the birth date are omitted.
pratyantardashas[].planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
pratyantardashas[].startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
pratyantardashas[].endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
pratyantardashas[].durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
pratyantardashas[].nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
pratyantardashas[].interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
pratyantardashas[].significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
pratyantardashas[].significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
pratyantardashas[].significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
pratyantardashas[].significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
pratyantardashas[].significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
pratyantardashas[].significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
pratyantardashas[].significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
pratyantardashas[].significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
pratyantardashas[].significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
pratyantardashas[].significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
pratyantardashas[].significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
pratyantardashas[].significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
pratyantardashas[].significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
pratyantardashas[].significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
pratyantardashas[].significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
pratyantardashas[].mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
pratyantardashas[].antardashaLord requiredstring enumParent Antardasha lord under which this Pratyantardasha runs.
Example response
{
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general",
  "mahadashaLord": "Saturn",
  "antardashaLord": "Venus",
  "moonLongitude": 190.994,
  "ayanamsa": 23.72167,
  "ayanamsaType": "lahiri",
  "antardashaPeriod": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter"
  },
  "pratyantardashas": [
    {
      "planet": "Jupiter",
      "startDate": "1990-07-04T10:12:00",
      "endDate": "1996-07-04T10:12:00",
      "durationYears": 6,
      "nominalStartDate": "1984-09-01T09:00:00",
      "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
      "significators": {
        "house": 11,
        "starLord": "Moon",
        "subLord": "Venus",
        "signifies": {
          "L1": [
            11,
            6
          ],
          "L2": [
            11
          ],
          "L3": [
            3,
            8
          ],
          "L4": [
            5,
            6
          ]
        },
        "signifiedHouses": [
          11,
          6
        ],
        "strongHouses": [
          11,
          6
        ],
        "strength": {
          "score": 62.5,
          "grade": "B",
          "label": "strong"
        }
      },
      "mahadashaLord": "Jupiter",
      "antardashaLord": "Saturn"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get all Sookshma dashas for a Mahadasha, Antardasha and Pratyantardasha

POST /api/v2/vedic-astrology/dasha/sub/{mahadasha}/{antardasha}/{pratyantardasha}

Sookshma dasha API. Returns the 9 Sookshma periods inside a chosen Pratyantardasha, the fourth and finest level of the Vimshottari dasha hierarchy. Completes a full vimshottari drill down from the 120-year cycle to day level timing, typically 3 to 30 days per period. Built for dasha drill down tables, current DBA readouts, and precise event timing in Vedic astrology software.

Parameters

ParameterTypeDescription
mahadasha required pathstring enumMahadasha planet name, case-insensitive. Valid: Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury.
antardasha required pathstring enumAntardasha (bhukti) planet name inside that Mahadasha, case-insensitive.
pratyantardasha required pathstring enumPratyantardasha (antara) planet name inside that Antardasha, case-insensitive.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumAyanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
significatorsbooleanSet true to attach the KP significators of each period lord: its star lord, sub lord, occupied house, the houses it signifies at levels L1 to L4, and a strength grade. Off by default, so responses stay exactly as they are for clients that only need dates. Requires the birth latitude and longitude, since significators are read off a Placidus house chart, and uses the same ayanamsa frame selected above.
nodeTypestring enumLunar node type for Rahu and Ketu, used ONLY when "significators" is true. Dasha dates themselves come from the Moon and never move with this field. "mean" uses the smooth mean node (traditional default). "true" uses the osculating node, which swings up to 1.5 degrees either side of mean over a 173-day cycle and can therefore change which house or star a node falls in. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dasha/sub/Saturn/Venus/Rahu" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
mahadashaLord requiredstring enumRuling planet of the requested Mahadasha period.
antardashaLord requiredstring enumRuling planet of the requested Antardasha sub-period.
pratyantardashaLord requiredstring enumRuling planet of the requested Pratyantardasha sub-sub-period.
moonLongitude requirednumberSidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.
ayanamsa requirednumberAyanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.
ayanamsaType requiredstring enumAyanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
pratyantardashaPeriod requiredobjectFull details of the parent Pratyantardasha including start/end dates and duration.
pratyantardashaPeriod.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
pratyantardashaPeriod.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
pratyantardashaPeriod.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
pratyantardashaPeriod.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
pratyantardashaPeriod.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
Show all fieldsShow fewer fields
FieldTypeDescription
pratyantardashaPeriod.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
pratyantardashaPeriod.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
pratyantardashaPeriod.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
pratyantardashaPeriod.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
pratyantardashaPeriod.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
pratyantardashaPeriod.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
pratyantardashaPeriod.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
pratyantardashaPeriod.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
pratyantardashaPeriod.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
pratyantardashaPeriod.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
pratyantardashaPeriod.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
pratyantardashaPeriod.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
pratyantardashaPeriod.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
pratyantardashaPeriod.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
pratyantardashaPeriod.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
pratyantardashaPeriod.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
pratyantardashaPeriod.mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
pratyantardashaPeriod.antardashaLord requiredstring enumParent Antardasha lord under which this Pratyantardasha runs.
sookshmaDashas requiredarray of objectSookshma dasha periods within this Pratyantardasha, proportional to each planet Vimshottari years, sorted chronologically and starting with the Pratyantardasha lord. Fewer than nine only when the parent Pratyantardasha is the one that was already running at birth, in which case the periods that ended before the birth date are omitted.
sookshmaDashas[].planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
sookshmaDashas[].startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
sookshmaDashas[].endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
sookshmaDashas[].durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
sookshmaDashas[].nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
sookshmaDashas[].interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
sookshmaDashas[].significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
sookshmaDashas[].significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
sookshmaDashas[].significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
sookshmaDashas[].significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
sookshmaDashas[].significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
sookshmaDashas[].significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
sookshmaDashas[].significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
sookshmaDashas[].significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
sookshmaDashas[].significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
sookshmaDashas[].significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
sookshmaDashas[].significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
sookshmaDashas[].significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
sookshmaDashas[].significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
sookshmaDashas[].significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
sookshmaDashas[].significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
sookshmaDashas[].mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
sookshmaDashas[].antardashaLord requiredstring enumParent Antardasha lord under which this Pratyantardasha runs.
sookshmaDashas[].pratyantardashaLord requiredstring enumParent Pratyantardasha lord under which this Sookshma dasha runs.
Example response
{
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general",
  "mahadashaLord": "Saturn",
  "antardashaLord": "Venus",
  "pratyantardashaLord": "Rahu",
  "moonLongitude": 190.994,
  "ayanamsa": 23.72167,
  "ayanamsaType": "lahiri",
  "pratyantardashaPeriod": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter",
    "antardashaLord": "Saturn"
  },
  "sookshmaDashas": [
    {
      "planet": "Jupiter",
      "startDate": "1990-07-04T10:12:00",
      "endDate": "1996-07-04T10:12:00",
      "durationYears": 6,
      "nominalStartDate": "1984-09-01T09:00:00",
      "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
      "significators": {
        "house": 11,
        "starLord": "Moon",
        "subLord": "Venus",
        "signifies": {
          "L1": [
            11,
            6
          ],
          "L2": [
            11
          ],
          "L3": [
            3,
            8
          ],
          "L4": [
            5,
            6
          ]
        },
        "signifiedHouses": [
          11,
          6
        ],
        "strongHouses": [
          11,
          6
        ],
        "strength": {
          "score": 62.5,
          "grade": "B",
          "label": "strong"
        }
      },
      "mahadashaLord": "Jupiter",
      "antardashaLord": "Saturn",
      "pratyantardashaLord": "Rahu"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get all Prana dashas for a Mahadasha, Antardasha, Pratyantardasha and Sookshma

POST /api/v2/vedic-astrology/dasha/sub/{mahadasha}/{antardasha}/{pratyantardasha}/{sookshma}

Prana dasha API for Vedic astrology. Returns the 9 Prana periods inside a chosen Sookshma dasha, the fifth and finest level of the Vimshottari dasha hierarchy. Completes the full vimshottari drill down from the 120-year cycle to hour level timing, typically 20 minutes to 4 days per period depending on the parent Mahadasha. Built for five column dasha drill down tables, muhurta selection, and pinpointing the trigger moment inside an event window already found at the Sookshma level.

Parameters

ParameterTypeDescription
mahadasha required pathstring enumMahadasha planet name, case-insensitive. Valid: Ketu, Venus, Sun, Moon, Mars, Rahu, Jupiter, Saturn, Mercury.
antardasha required pathstring enumAntardasha (bhukti) planet name inside that Mahadasha, case-insensitive.
pratyantardasha required pathstring enumPratyantardasha (antara) planet name inside that Antardasha, case-insensitive.
sookshma required pathstring enumSookshma dasha planet name inside that Pratyantardasha, case-insensitive. Every full period contains all 9 lords, so a repeat such as saturn/saturn/saturn/saturn is valid.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumAyanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. "lahiri" uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. "kp-newcomb" uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. "kp-old" uses the Krishnamurti original table from KP Reader-1. "raman" uses the B.V. Raman ayanamsa, the second frame traditional Indian software commonly offers beside Lahiri. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
significatorsbooleanSet true to attach the KP significators of each period lord: its star lord, sub lord, occupied house, the houses it signifies at levels L1 to L4, and a strength grade. Off by default, so responses stay exactly as they are for clients that only need dates. Requires the birth latitude and longitude, since significators are read off a Placidus house chart, and uses the same ayanamsa frame selected above.
nodeTypestring enumLunar node type for Rahu and Ketu, used ONLY when "significators" is true. Dasha dates themselves come from the Moon and never move with this field. "mean" uses the smooth mean node (traditional default). "true" uses the osculating node, which swings up to 1.5 degrees either side of mean over a 173-day cycle and can therefore change which house or star a node falls in. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dasha/sub/Saturn/Venus/Rahu/Jupiter" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
mahadashaLord requiredstring enumRuling planet of the requested Mahadasha period.
antardashaLord requiredstring enumRuling planet of the requested Antardasha sub-period.
pratyantardashaLord requiredstring enumRuling planet of the requested Pratyantardasha sub-sub-period.
sookshmaLord requiredstring enumRuling planet of the requested Sookshma dasha.
moonLongitude requirednumberSidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.
ayanamsa requirednumberAyanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.
ayanamsaType requiredstring enumAyanamsa system used, echoing the request field. One of "lahiri", "kp-newcomb", "kp-old" or "custom". Echoed so a client can confirm which frame produced these dates without re-deriving it. When it reads "custom" the ayanamsa field above carries the exact value you supplied.
sookshmaPeriod requiredobjectFull details of the parent Sookshma dasha including start/end dates and duration.
sookshmaPeriod.planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
sookshmaPeriod.startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
sookshmaPeriod.endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
sookshmaPeriod.durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
Show all fieldsShow fewer fields
FieldTypeDescription
sookshmaPeriod.nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
sookshmaPeriod.interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
sookshmaPeriod.significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
sookshmaPeriod.significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
sookshmaPeriod.significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
sookshmaPeriod.significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
sookshmaPeriod.significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
sookshmaPeriod.significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
sookshmaPeriod.significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
sookshmaPeriod.significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
sookshmaPeriod.significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
sookshmaPeriod.significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
sookshmaPeriod.significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
sookshmaPeriod.significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
sookshmaPeriod.significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
sookshmaPeriod.significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
sookshmaPeriod.significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
sookshmaPeriod.mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
sookshmaPeriod.antardashaLord requiredstring enumParent Antardasha lord under which this Pratyantardasha runs.
sookshmaPeriod.pratyantardashaLord requiredstring enumParent Pratyantardasha lord under which this Sookshma dasha runs.
pranaDashas requiredarray of objectPrana dasha periods within this Sookshma dasha, proportional to each planet Vimshottari years, sorted chronologically and starting with the Sookshma lord. Fewer than nine only when the parent Sookshma dasha is the one that was already running at birth, in which case the periods that ended before the birth date are omitted.
pranaDashas[].planet requiredstring enumRuling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.
pranaDashas[].startDate requiredstringStart datetime of this dasha period. Adjusted to the requested timezone offset.
pranaDashas[].endDate requiredstringEnd datetime of this dasha period. Adjusted to the requested timezone offset.
pranaDashas[].durationYears requirednumberDuration of this dasha period in years. Mahadasha durations range from 6 years (Sun) to 20 years (Venus).
pranaDashas[].nominalStartDatestringTheoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.
pranaDashas[].interpretationstringVedic interpretation of the planetary period describing themes, karmic lessons, and life areas affected by this graha.
pranaDashas[].significatorsobjectKP significators of this period lord, read from the Placidus birth chart in the requested ayanamsa. Present only when the request sets "significators": true.
pranaDashas[].significators.house requiredintegerHouse 1-12 this lord occupies in the Placidus birth chart. Its own Level 2 signification, repeated here because the occupied house is the first thing a KP reading looks at.
pranaDashas[].significators.starLord requiredstringLord of the nakshatra this planet sits in, one of the 9 grahas. In KP the star lord outranks the planet itself: a period lord mainly delivers the houses its star lord occupies and owns, which is why those appear at L1 and L3 rather than the planet own house.
pranaDashas[].significators.subLordstringKP sub lord of this planet, the 1 of 249 subdivision its longitude falls in, one of the 9 grahas. The star lord says WHAT results the period gives, the sub lord says WHETHER they materialize, so KP judgement checks both.
pranaDashas[].significators.signifies requiredobjectKP 4-level significator breakdown showing which houses (1-12) this planet signifies at each strength tier. L1 is strongest, L4 is weakest.
pranaDashas[].significators.signifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
pranaDashas[].significators.signifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
pranaDashas[].significators.signifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
pranaDashas[].significators.signifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
pranaDashas[].significators.signifiedHouses requiredarray of integerEvery house this lord signifies, deduplicated and ordered strongest tier first. Where a house is reached at more than one level it is listed once, at its strongest. This is the flat "houses signified" column of a KP dasha table.
pranaDashas[].significators.strongHouses requiredarray of integerSubset of signifiedHouses reached at grade A or B (levels L1 and L2). These are the houses a KP reading acts on for this period; the rest are supporting connections.
pranaDashas[].significators.strength requiredobjectHow firmly this lord is tied to the houses it signifies, on the KP A to D significator grading. Reproducible from the significator levels alone, in two steps. STEP 1, per house keep only the strongest level: a planet routinely reaches the same house at more than one level, for example its star lord occupies house 11 and it also owns house 11, and KP cites a significator by its best connection, so that house counts once at grade A. This is why signifiedHouses is shorter than the four level arrays concatenated, and omitting it is what makes a hand calculation disagree. STEP 2, average the surviving weights: each house contributes 100, 75, 50 or 25 for grade A, B, C or D, and the mean is the score. Worked example, a lord signifying house 11 at level 1, house 6 at level 2 and house 2 at level 4 scores (100 + 75 + 25) / 3 = 66.7, which lands in band B because the band edges are the midpoints 87.5, 62.5 and 37.5. The score says how firmly the lord is connected, never whether the houses are favourable, which depends on the matter being judged.
pranaDashas[].significators.strength.score requirednumberMean KP percentage weight across signifiedHouses, each house counted at its strongest level (A 100, B 75, C 50, D 25). A mean rather than a total, so signifying many houses weakly does not outrank signifying two houses at grade A.
pranaDashas[].significators.strength.grade requiredstring enumBand the score falls in, on the standard KP significator grading: A planets in the constellation of the occupant, B occupants, C planets in the constellation of the house owner, D the house owner. Band edges are the midpoints between the four weights.
pranaDashas[].significators.strength.label requiredstring enumPlain-language form of grade: "very-strong" for A, "strong" for B, "moderate" for C, "weak" for D. Says how firmly this lord is connected to the houses it signifies, NOT whether those houses are favourable, which depends on the matter being judged.
pranaDashas[].mahadashaLord requiredstring enumParent Mahadasha lord under which this Antardasha sub-period runs.
pranaDashas[].antardashaLord requiredstring enumParent Antardasha lord under which this Pratyantardasha runs.
pranaDashas[].pratyantardashaLord requiredstring enumParent Pratyantardasha lord under which this Sookshma dasha runs.
pranaDashas[].sookshmaLord requiredstring enumParent Sookshma dasha lord under which this Prana dasha runs.
Example response
{
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general",
  "mahadashaLord": "Saturn",
  "antardashaLord": "Venus",
  "pratyantardashaLord": "Rahu",
  "sookshmaLord": "Jupiter",
  "moonLongitude": 190.994,
  "ayanamsa": 23.72167,
  "ayanamsaType": "lahiri",
  "sookshmaPeriod": {
    "planet": "Jupiter",
    "startDate": "1990-07-04T10:12:00",
    "endDate": "1996-07-04T10:12:00",
    "durationYears": 6,
    "nominalStartDate": "1984-09-01T09:00:00",
    "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
    "significators": {
      "house": 11,
      "starLord": "Moon",
      "subLord": "Venus",
      "signifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "signifiedHouses": [
        11,
        6
      ],
      "strongHouses": [
        11,
        6
      ],
      "strength": {
        "score": 62.5,
        "grade": "B",
        "label": "strong"
      }
    },
    "mahadashaLord": "Jupiter",
    "antardashaLord": "Saturn",
    "pratyantardashaLord": "Rahu"
  },
  "pranaDashas": [
    {
      "planet": "Jupiter",
      "startDate": "1990-07-04T10:12:00",
      "endDate": "1996-07-04T10:12:00",
      "durationYears": 6,
      "nominalStartDate": "1984-09-01T09:00:00",
      "interpretation": "Sun Mahadasha brings leadership opportunities, authority, and self-expression.",
      "significators": {
        "house": 11,
        "starLord": "Moon",
        "subLord": "Venus",
        "signifies": {
          "L1": [
            11,
            6
          ],
          "L2": [
            11
          ],
          "L3": [
            3,
            8
          ],
          "L4": [
            5,
            6
          ]
        },
        "signifiedHouses": [
          11,
          6
        ],
        "strongHouses": [
          11,
          6
        ],
        "strength": {
          "score": 62.5,
          "grade": "B",
          "label": "strong"
        }
      },
      "mahadashaLord": "Jupiter",
      "antardashaLord": "Saturn",
      "pratyantardashaLord": "Rahu",
      "sookshmaLord": "Jupiter"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Daily Reading - Composed Gochara, Panchanga and Dasha for one native on one day

POST /api/v2/vedic-astrology/daily

The composed Vedic daily reading for one native on one date, in one call. Runs classical Gochara as the gate pipeline the texts describe: the house each transiting graha makes from the natal Moon (Janma Rashi), the vedha pair that can cancel it, the Ashtakavarga bindu gate that decides whether it is delivered, and the Phaladeepika XXVI.30 to XXVI.32 nullifiers, so every graha lands in ONE cited state rather than a bar of a chart. Joined to the panchanga day, which runs sunrise to sunrise with a validity window on every limb, plus tarabala and chandrabala resolved for THIS native as windows rather than as one value, the running Vimshottari chain three levels deep, and a KP finance net over the wealth and loss houses. Ships a hand-reproducible strength score with its arithmetic published in the field itself, and states plainly which part is classical and which part is a RoxyAPI counting convention. Positions are computed in the Lahiri sidereal frame; the KP significators behind the finance area use the KP-Newcomb frame, as they do on every KP route.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
birthDate requiredstring (date)Birth date in YYYY-MM-DD format. Fixes the Janma Rashi and Janma Nakshatra every part of this reading is counted from, and the natal Ashtakavarga the bindu gate reads.
birthTime requiredstring (time)Birth time in HH:MM:SS format (24-hour). The Moon moves about half a degree an hour, so an error here moves the Janma Rashi and Janma Nakshatra and therefore every gochara house count, the tarabala and the chandrabala in this response.
latitude requirednumberBirth location latitude in decimal degrees. Sets the natal house cusps behind the Ashtakavarga scorecard and the KP significators, and the sunrise that opens the panchanga day.
longitude requirednumberBirth location longitude in decimal degrees. Affects local sidereal time for the natal cusps and the sunrise the reading is composed at.
timezonenumber or stringTimezone: IANA name (e.g. "Asia/Kolkata", "America/New_York") OR decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). IANA strings are resolved to the DST-correct offset for the date being read. Interprets the birth time and the civil date below. Defaults to 5.5.
datestring (date)Civil date to read, in YYYY-MM-DD format. Defaults to today (UTC). The panchanga day it names runs from sunrise at the birth coordinates to the next sunrise, not from midnight, so a reading for this date covers the night that follows it.
nodeTypestring enumLunar node type for Rahu and Ketu. "mean" uses the smooth mean node, which is the traditional Vedic default and what printed panchangs use. "true" uses the osculating node, which swings up to 1.5 degrees either side of mean and can therefore move a node into a different rashi and change its gochara house. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/daily" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"birthDate":"1984-11-03","birthTime":"01:35:00","latitude":28.8944,"longitude":76.5894}'

Response fields

FieldTypeDescription
frames requiredobjectEvery sidereal frame behind this reading, so a cached or forwarded payload is self describing and no number sits under a label it did not come from. TWO ayanamsas are in play by design: positions are Lahiri, and the Placidus cusps plus the KP significators are KP-Newcomb, which is the frame KP owns and the split a practitioner actually works in. The two differ by about 0.09 degrees, which is under a third of a KP sub-lord span and enough to move a placement near a boundary, so the reading declares which produced what rather than leaving a caller to guess. THREE entries for two ayanamsas, because Lahiri is read at two instants: the birth moment and the sunrise of the day being read, roughly half a degree apart on a chart forty years old, six times the gap between the two ayanamsas themselves. There is no ayanamsa request field on this route and there will not be one, since a single selector cannot honour two frames and accepting it would promise something the composition cannot deliver.
frames.natal requiredobjectLahiri at the birth instant. Produces the natal Moon this whole reading is counted from, the Vimshottari balance, and the natal graha rows of the Ashtakavarga scorecard the bindu gate reads.
frames.natal.ayanamsa requiredstringSidereal frame this part of the reading was cast in. Always "lahiri" here: it is not a caller choice, because the composition runs two frames at once and a single request field could only ever name one of them.
frames.natal.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude this frame produced. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
frames.natal.at requiredstringISO instant the ayanamsa was read at. Part of the value, not metadata: an ayanamsa moves about 50.3 arcseconds a year, so the same frame read at a birth in 1984 and at a transit in 2026 differs by more than half a degree.
frames.natal.governs requiredarray of string enumResponse sections this frame is a determinant of, as paths into this payload. One of subject, grahas, panchanga, tara, chandrabala, dasha, areas.finance. A section appears under EVERY frame that feeds it, which is why grahas is listed three times: the transiting longitudes and the natal Moon they are counted from are both Lahiri read at different instants, while the Ashtakavarga Lagna row behind binduCount and kaksha is KP-Newcomb. Exactly two sections belong to one frame alone, subject to the natal frame and panchanga to the transit frame.
frames.transit requiredobjectLahiri at sunrise on the day being read. Produces every transiting longitude and every panchanga limb. Inside one day precession moves it 0.14 arcseconds, so this one value speaks for every limb resolved between the two sunrises.
frames.transit.ayanamsa requiredstringSidereal frame this part of the reading was cast in. Always "lahiri" here: it is not a caller choice, because the composition runs two frames at once and a single request field could only ever name one of them.
frames.transit.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude this frame produced. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
frames.transit.at requiredstringISO instant the ayanamsa was read at. Part of the value, not metadata: an ayanamsa moves about 50.3 arcseconds a year, so the same frame read at a birth in 1984 and at a transit in 2026 differs by more than half a degree.
frames.transit.governs requiredarray of string enumResponse sections this frame is a determinant of, as paths into this payload. One of subject, grahas, panchanga, tara, chandrabala, dasha, areas.finance. A section appears under EVERY frame that feeds it, which is why grahas is listed three times: the transiting longitudes and the natal Moon they are counted from are both Lahiri read at different instants, while the Ashtakavarga Lagna row behind binduCount and kaksha is KP-Newcomb. Exactly two sections belong to one frame alone, subject to the natal frame and panchanga to the transit frame.
frames.kp requiredobjectKP-Newcomb, read at UTC midnight of the birth date. Produces the Placidus cusps behind the Ashtakavarga Lagna row and the KP significators behind the finance area, exactly as every KP route on this API computes them.
frames.kp.ayanamsa requiredstringSidereal frame this part of the reading was cast in. Always "kp-newcomb" here: it is not a caller choice, because the composition runs two frames at once and a single request field could only ever name one of them.
frames.kp.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude this frame produced. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
Show all fieldsShow fewer fields
FieldTypeDescription
frames.kp.at requiredstringISO instant the ayanamsa was read at. Part of the value, not metadata: an ayanamsa moves about 50.3 arcseconds a year, so the same frame read at a birth in 1984 and at a transit in 2026 differs by more than half a degree.
frames.kp.governs requiredarray of string enumResponse sections this frame is a determinant of, as paths into this payload. One of subject, grahas, panchanga, tara, chandrabala, dasha, areas.finance. A section appears under EVERY frame that feeds it, which is why grahas is listed three times: the transiting longitudes and the natal Moon they are counted from are both Lahiri read at different instants, while the Ashtakavarga Lagna row behind binduCount and kaksha is KP-Newcomb. Exactly two sections belong to one frame alone, subject to the natal frame and panchanga to the transit frame.
date requiredstringCivil date this reading covers, echoing the request field or the UTC date it defaulted to.
dayStart requiredstringISO instant the panchanga day begins, which is SUNRISE at the birth coordinates and not midnight. Every limb below is resolved at this instant. Where the Sun does not rise, local noon is used instead and the substitution is named in degraded rather than applied silently.
dayEnd requiredstringISO instant the panchanga day ends, which is the next sunrise.
subject requiredobjectThe two natal reference points this whole reading is counted from, plus the longitude they come from.
subject.janmaRashi requiredstringNatal Moon rashi, the reference point every gochara house count in this response is taken from. Always English.
subject.janmaNakshatra requiredstringNatal Moon nakshatra, the reference point the tarabala is counted from. Canonical Sanskrit.
subject.janmaNakshatraNumber requirednumberJanma Nakshatra number 1 to 27, counted from Ashwini.
subject.moonLongitude requirednumberSidereal longitude of the natal Moon in degrees. The single value both reference points are derived from, so any disagreement with a reference chart can be traced to its source rather than to a verdict.
panchanga requiredobjectThe four panchanga limbs, each resolved at sunrise and each carrying the instant it gives way, so a client can label the whole day rather than asserting one value for it.
panchanga.vara requiredstringWeekday of the panchanga day. The Hindu vara runs sunrise to sunrise, so it can differ from the civil weekday of the same date before dawn. Always English.
panchanga.varaSanskrit requiredstringThe same weekday under its Sanskrit name.
panchanga.paksha requiredstringLunar fortnight at sunrise: Shukla for the waxing half, Krishna for the waning half.
panchanga.tithi requiredobjectTithi (lunar day) running at sunrise, with the instant it ends. The tithi is the 12-degree step of the Moon away from the Sun, so its length varies through the month.
panchanga.tithi.number requirednumbertithi number in its own cycle, resolved at sunrise.
panchanga.tithi.name requiredstringName of the tithi running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
panchanga.tithi.validTo requiredstringISO instant this tithi ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
panchanga.tithi.next requiredstringThe tithi that follows, so the rest of the day can be labelled without a second request.
panchanga.tithi.timescale requiredstring enumHow long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
panchanga.nakshatra requiredobjectNakshatra the Moon occupies at sunrise, with the instant it ends. This is the sky-wide limb; for what it means to THIS native, read the tara array.
panchanga.nakshatra.number requirednumbernakshatra number in its own cycle, resolved at sunrise.
panchanga.nakshatra.name requiredstringName of the nakshatra running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
panchanga.nakshatra.validTo requiredstringISO instant this nakshatra ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
panchanga.nakshatra.next requiredstringThe nakshatra that follows, so the rest of the day can be labelled without a second request.
panchanga.nakshatra.timescale requiredstring enumHow long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
panchanga.yoga requiredobjectNitya yoga running at sunrise, with the instant it ends. The 27 yogas step through the combined longitude of the Sun and the Moon.
panchanga.yoga.number requirednumberyoga number in its own cycle, resolved at sunrise.
panchanga.yoga.name requiredstringName of the yoga running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
panchanga.yoga.validTo requiredstringISO instant this yoga ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
panchanga.yoga.next requiredstringThe yoga that follows, so the rest of the day can be labelled without a second request.
panchanga.yoga.timescale requiredstring enumHow long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
panchanga.karana requiredobjectKarana running at sunrise, with the instant it ends. A karana is half a tithi, which is why it is the fastest of the four limbs.
panchanga.karana.number requirednumberkarana number in its own cycle, resolved at sunrise.
panchanga.karana.name requiredstringName of the karana running at sunrise. Canonical Sanskrit, so it stays safe to compare against in code.
panchanga.karana.validTo requiredstringISO instant this karana ends. Read from the same transition search POST /panchang/detailed publishes, never recomputed here, so the two endpoints cannot disagree about when the event happens.
panchanga.karana.next requiredstringThe karana that follows, so the rest of the day can be labelled without a second request.
panchanga.karana.timescale requiredstring enumHow long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
grahas requiredarray of objectAll nine transiting grahas, each with its four gate results and the ONE state they produced. The gates run in the order the sources give them: house from the natal Moon, then vedha, then the bindu gate, then the nullifiers of Phaladeepika XXVI.30 to XXVI.32. Obstruction is terminal, so a blocked transit is never rescued by the gates that follow it.
grahas[].graha requiredstringGraha name, Sun through Ketu. Always English, whatever the lang parameter says, so it stays safe to compare against in code.
grahas[].sign requiredstringRashi this graha is transiting on the day being read. Always English.
grahas[].longitude requirednumberSidereal longitude of the transiting graha in degrees, 0 to 360, Lahiri frame.
grahas[].houseFromMoon requirednumberHouse this graha transits counted whole-sign and inclusively from the natal Moon rashi (Janma Rashi), so the Moon rashi itself is 1. This is the reference classical Gochara is reckoned in: Phaladeepika XXVI.1 opens the transit chapter by saying that of all the Lagnas only the Moon Lagna matters for transit results. A reading counted from the Lagna instead answers a different question and every verdict below would be wrong.
grahas[].timescale requiredstring enumHow long this component holds one verdict. Present on every component because this reading joins two genres classical literature keeps in separate books: a gochara verdict lasts as long as the graha stays in a rashi, which is years for Saturn, while a tarabala changes overnight. Without it a Saturn verdict that reads identically for nine hundred days would sit under one date field beside a limb that turns over at dawn.
grahas[].favourable requiredbooleanGate 1. Whether houseFromMoon is on this graha classical favourable list (Phaladeepika XXVI.2). The baseline verdict, before vedha, bindus or the nullifiers have had their say.
grahas[].favourableHouses requiredarray of numberGate 1 evidence: the whole favourable list for this graha, so the baseline verdict can be checked in place without a second request or a table lookup.
grahas[].vedhaHouse requirednumbernullGate 2. The house whose occupation by another graha cancels this transit (Phaladeepika XXVI.3-8). Null when the transit is not favourable to begin with, since there is nothing for an obstruction to cancel.
grahas[].obstructedBy requiredarray of stringGate 2. Grahas actually standing in vedhaHouse, with the mutual exemptions already applied. Empty when nothing obstructs. A non-empty list makes the state "obstructed", which is a THIRD outcome rather than a smaller number: the texts cancel the promised good outright rather than discounting it.
grahas[].vedhaExempt requiredarray of stringGate 2. Grahas that cannot obstruct this one however they transit, from the two mutual exemptions the texts name: the Sun and Saturn do not obstruct each other, and neither do the Moon and Mercury.
grahas[].binduCount requirednumbernullGate 3. Bindus this graha holds in the whole sign it is transiting, 0 to 8, or null for Rahu and Ketu, which have no Bhinnashtakavarga and therefore SKIP this gate entirely rather than scoring zero. The gate reads the number two ways: a favourable house carrying fewer than 4 bindus under delivers, and an unfavourable house carrying a strict majority of the eight contributors, 5 or more, is turned good by Phaladeepika XXVI.41. Exactly 4 fires neither rule, which is the literal reading of both phrasings rather than a rounding choice. WHOSE READING THE NUMBER IS, stated because generalising it is ours: B.V. Raman prints 4 once and prints it about the MOON, then generalises the PRINCIPLE to every graha in the next sentence without repeating any number, and Phaladeepika XXVI.41 is general across grahas and also states no number. Applying 4 to all nine bodies is RoxyAPI reading the general rule through the one worked example the author gave it, and it is not a universally stated classical threshold.
grahas[].kaksha requiredobjectGochara Kaksha: the ashtakavarga-qualified reading of this transit. The sign says where a graha is, this says whether the exact stretch it currently occupies is one its own Bhinnashtakavarga supports, which is the classical way of refining a transit verdict from sign-level to under four degrees.
grahas[].kaksha.number requirednumberKaksha number 1-8 within the current sign. Each sign divides into eight kakshas of 3 degrees 45 minutes, crossed in order, so this is how far through the sign the graha has travelled.
grahas[].kaksha.lord requiredstringGraha ruling this kaksha. The eight lords run Saturn, Jupiter, Mars, Sun, Venus, Mercury, Moon, Lagna from the start of every sign, ordered by how long each takes to cross a sign.
grahas[].kaksha.startDegree requirednumberDegree within the sign where this kaksha begins (0, 3.75, 7.5 and so on).
grahas[].kaksha.endDegree requirednumberDegree within the sign where this kaksha ends.
grahas[].kaksha.bindu requiredbooleannullWhether this kaksha lord gave the transiting graha a bindu in the sign being transited, which is the Gochara Kaksha verdict: true reads as a favourable stretch of the transit, false as an unfavourable one. Null means the question does not apply rather than that the answer is no, because Rahu and Ketu have no Bhinnashtakavarga to read. Never render null as unfavourable.
grahas[].kaksha.binduCount requirednumbernullBindus the transiting graha holds in this whole sign, 0-8, or null for Rahu and Ketu. Context for the verdict, since the same kaksha reads differently in a sign worth 7 than in one worth 1.
grahas[].dignity requiredstring,null enumGate 4. Dignity of the graha in the sign it is transiting, or null for Rahu and Ketu which have none. Feeds the Phaladeepika XXVI.31 shield ("exalted" or "own" does no harm in an untoward bhava) and the XXVI.32 weakness ("debilitated" or "enemy" voids a good transit). One of exalted, own, debilitated, enemy, neutral.
grahas[].combust requiredbooleannullGate 4. Whether the graha is combust at the transit moment, or null for the Sun and the two nodes where the question does not arise at all. Combustion voids a good transit under Phaladeepika XXVI.32 and aggravates a bad one.
grahas[].aspectedByBenefic requiredarray of stringGate 4. Transiting natural benefics casting graha drishti on this graha. Under Phaladeepika XXVI.30 a benefic sight on a BAD result is what voids it. Read as drishti from the other TRANSITING grahas, which is a school choice this endpoint makes and states: the sloka sits between the vedha rules and the rules about the transiting graha own condition.
grahas[].aspectedByMalefic requiredarray of stringGate 4. Transiting natural malefics casting graha drishti on this graha. A malefic sight on a GOOD result voids it under Phaladeepika XXVI.30. Rahu and Ketu never appear here: they cast no drishti in this package, which is its own documented school choice, although they can be aspected.
grahas[].aspectedByEnemy requiredarray of stringGate 4. Transiting natural enemies of this graha casting graha drishti on it. Phaladeepika XXVI.30 voids the result either way for an enemy sight, whichever direction the baseline verdict pointed.
grahas[].state requiredstring enumThe single outcome the four gates produced for this graha, and the only field the score counts. "favourable" is the house list holding with nothing cancelling it, "underdelivered" is a favourable house below the bindu delivery floor, "obstructed" is vedha, "void" is an aspect, a dignity shield or a weakness emptying the result of effect, "aggravated" is the one compounding rule in the chapter, and "unfavourable" is a house that was never on the list. Canonical English machine values: every one is a classical outcome word rather than an invented label, which is why none carries a translated sibling.
grahas[].stateSource requiredstringThe rule that decided the state, named so a verdict can be checked against its sloka without leaving the payload.
tara requiredarray of objectTarabala for THIS native, as an array of windows rather than one value, because the Moon can change nakshatra inside a panchanga day and the reference panchangs print two windows when it does. Three windows happen and are returned when they do. One entry means the tara held all day.
tara[].validFrom requiredstringISO instant this tarabala window opens.
Example response
{
  "frames": {
    "natal": {
      "ayanamsa": "lahiri",
      "ayanamsaDegrees": 23.64094017088563,
      "at": "1984-11-02T20:05:00.000Z",
      "governs": [
        "subject",
        "grahas"
      ]
    },
    "transit": {
      "ayanamsa": "lahiri",
      "ayanamsaDegrees": 24.22902171512637,
      "at": "2026-06-20T23:55:43.685Z",
      "governs": [
        "grahas",
        "panchanga"
      ]
    },
    "kp": {
      "ayanamsa": "kp-newcomb",
      "ayanamsaDegrees": 23.5444031708357,
      "at": "1984-11-03T00:00:00.000Z",
      "governs": [
        "grahas",
        "areas.finance"
      ]
    }
  },
  "date": "2026-06-21",
  "dayStart": "2026-06-20T23:55:43.685Z",
  "dayEnd": "2026-06-21T23:55:56.962Z",
  "subject": {
    "janmaRashi": "Aquarius",
    "janmaNakshatra": "Shatabhisha",
    "janmaNakshatraNumber": 24,
    "moonLongitude": 312.4808
  },
  "panchanga": {
    "vara": "Sunday",
    "varaSanskrit": "Ravivara",
    "paksha": "Shukla",
    "tithi": {
      "number": 7,
      "name": "Saptamī",
      "validTo": "2026-06-21T09:51:02.874Z",
      "next": "Aṣṭamī",
      "timescale": "days"
    },
    "nakshatra": {
      "number": 11,
      "name": "Purva Phalguni",
      "validTo": "2026-06-21T04:01:32.171Z",
      "next": "Uttara Phalguni",
      "timescale": "days"
    },
    "yoga": {
      "number": 16,
      "name": "Siddhi",
      "validTo": "2026-06-21T05:51:32.757Z",
      "next": "Vyatipaata",
      "timescale": "days"
    },
    "karana": {
      "number": 6,
      "name": "Vanij",
      "validTo": "2026-06-21T09:51:02.874Z",
      "next": "Vishti",
      "timescale": "hours"
    }
  },
  "grahas": [
    {
      "graha": "Moon",
      "sign": "Leo",
      "longitude": 144.4294,
      "houseFromMoon": 7,
      "timescale": "days",
      "favourable": true,
      "favourableHouses": [
        1,
        3
      ],
      "vedhaHouse": 2,
      "obstructedBy": [
        "Saturn"
      ],
      "vedhaExempt": [
        "Mercury"
      ],
      "binduCount": 6,
      "kaksha": {
        "number": 3,
        "lord": "Mars",
        "startDegree": 7.5,
        "endDegree": 11.25,
        "bindu": true,
        "binduCount": 5
      },
      "dignity": "neutral",
      "combust": false,
      "aspectedByBenefic": [],
      "aspectedByMalefic": [
        "Mars"
      ],
      "aspectedByEnemy": [],
      "state": "obstructed",
      "stateSource": "Phaladeepika XXVI.3-8, the paired vedha house is occupied"
    }
  ],
  "tara": [
    {
      "validFrom": "2026-06-20T23:55:43.685Z",
      "validTo": "2026-06-21T04:01:32.171Z",
      "timescale": "days",
      "moonNakshatra": "Purva Phalguni",
      "number": 6,
      "name": "Sadhaka",
      "quality": "favourable"
    }
  ],
  "chandrabala": [
    {
      "validFrom": "2026-06-20T23:55:43.685Z",
      "validTo": "2026-06-21T10:10:08.968Z",
      "timescale": "days",
      "moonSign": "Leo",
      "houseFromMoon": 7,
      "favourable": true,
      "ashtamaChandra": false
    }
  ],
  "dasha": [
    {
      "level": "antardasha",
      "lord": "Rahu",
      "startDate": "2024-08-10T12:05:00.000Z",
      "endDate": "2027-06-17T12:05:00.000Z",
      "timescale": "years"
    }
  ],
  "areas": {
    "finance": {
      "score": 67,
      "band": "strong",
      "positive": 6,
      "negative": 3,
      "natal": [
        {
          "id": "daridra",
          "name": "Daridra Yoga",
          "quality": "Negative",
          "present": true,
          "evidence": "Daridra Yoga holds on 1 of the 8 rules evaluated. daridra-7 (BPHS 42.6): the Lagna lord Sun is joined by Saturn (the 6th lord) and receives drishti from no natural benefic. Nine of the eleven catalogued Daridra rows are evaluated, as eight rules: daridra-4 and daridra-5 are the two halves of BPHS 42.4. daridra-8 and daridra-9 are excluded because B.V. Raman is their only authority, and an unverified rule may not decide a verdict."
        }
      ]
    }
  },
  "score": 50,
  "verdict": "moderate",
  "tally": [
    {
      "state": "void",
      "count": 2
    }
  ],
  "evaluated": 11,
  "degraded": [
    {
      "component": "areas.finance.score",
      "reason": "polar-latitude"
    }
  ],
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Get basic Panchang - Tithi Nakshatra Yoga Karana Calculator

POST /api/v2/vedic-astrology/panchang/basic

Calculate Panchang elements (Hindu calendar) for any date: Tithi (lunar day), Nakshatra (lunar mansion), Yoga, and Karana. Daily panchang API for determining auspicious timings (muhurta), festival dates, and planetary influences. Tithi calculator with Shukla/Krishna paksha. Accurate nakshatra today with ruling planet. Essential for Hindu calendar integration, muhurta selection, and Vedic timekeeping in astrology apps.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Date in YYYY-MM-DD format. Panchang elements (Tithi, Nakshatra, Yoga, Karana) are calculated for this date.
time requiredstring (time)Time in HH:MM:SS format (24-hour). Determines the exact Moon and Sun positions for tithi and nakshatra calculation.
latitude requirednumberObserver latitude in decimal degrees. Determines sunrise/sunset times which define the Vara (weekday) and muhurta boundaries.
longitude requirednumberObserver longitude in decimal degrees. Affects local time calculations for sunrise/sunset-dependent panchang elements.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST).
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/panchang/basic" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2025-12-17","time":"12:00:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
tithi requiredobjectLunar day (tithi) information with interpretations. Central panchang element for determining auspicious timings.
tithi.number requiredintegerTithi number (1-30). 1-15 are Shukla Paksha (waxing), 16-30 are Krishna Paksha (waning). Purnima is 15, Amavasya is 30.
tithi.name requiredstringSanskrit name of the tithi (lunar day). One of 30 tithis in the lunar month cycle.
tithi.paksha requiredstring enumLunar fortnight: Shukla (waxing, bright half) or Krishna (waning, dark half).
tithi.percent requirednumberPercentage of the current tithi elapsed (0-100). Useful for determining tithi strength and transition proximity.
tithi.deitystringPresiding deity of this tithi from Vedic tradition.
tithi.rulingPlanetstringPlanetary ruler of this tithi. Influences the day energy and activities.
tithi.elementstringElemental quality of this tithi (Fire, Earth, Air, Water, Ether).
nakshatra requiredobjectNakshatra (lunar mansion) information with interpretations
nakshatra.number requiredintegerNakshatra index (1-27) in the zodiac sequence starting from Ashwini. Each nakshatra spans 13 degrees 20 minutes.
nakshatra.name requiredstringSanskrit name of the nakshatra (lunar mansion). One of 27 nakshatras spanning the zodiac belt.
nakshatra.lord requiredstringPlanetary ruler of this nakshatra. Determines Vimshottari dasha lord and influences nakshatra characteristics.
nakshatra.pada requiredintegerPada (quarter, 1-4) of the nakshatra. Each nakshatra has 4 padas spanning 3 degrees 20 minutes each. Determines the navamsha sign and fine-tunes nakshatra predictions.
nakshatra.deitystringPresiding deity of this nakshatra from Vedic mythology. Influences spiritual qualities and karmic themes.
Show all fieldsShow fewer fields
FieldTypeDescription
nakshatra.symbolstringTraditional symbol representing this nakshatra. Reflects core energy and life themes.
nakshatra.characteristicsstringPersonality traits and behavioral tendencies when the Moon occupies this nakshatra. Useful for daily panchang readings.
yoga requiredobjectNitya Yoga information. Yoga is the third panchang element, derived from combined Sun-Moon longitude.
yoga.number requiredintegerNitya Yoga index (1-27). Calculated from the sum of Sun and Moon sidereal longitudes divided by 13 degrees 20 minutes.
yoga.name requiredstringSanskrit name of the Nitya Yoga. One of 27 yogas formed by combined Sun-Moon motion, each with distinct auspiciousness.
yoga.characteristicsstringCharacteristics and auspiciousness of this yoga for activity planning.
karana requiredobjectKarana (half-tithi) information. Fourth panchang element, changes twice per tithi.
karana.number requiredintegerKarana index. There are 11 karanas total (4 fixed + 7 movable) cycling through 60 half-tithis per lunar month.
karana.name requiredstringSanskrit name of the karana. 7 movable karanas (Bava through Naga) repeat 8 times, plus 4 fixed karanas.
karana.typestringKarana type: Movable (repeating, generally auspicious) or Fixed (occur once per month).
karana.characteristicsstringActivity suitability and characteristics of this karana for muhurta selection.
sunLongitude requirednumberSidereal longitude of the Sun in degrees (0-360). Used for tithi and yoga calculations.
moonLongitude requirednumberSidereal longitude of the Moon in degrees (0-360). Moon moves ~13 degrees per day through the nakshatras.
Example response
{
  "tithi": {
    "number": 5,
    "name": "Panchami",
    "paksha": "Shukla",
    "percent": 67.5,
    "deity": "Vishnu",
    "rulingPlanet": "Sun",
    "element": "Fire"
  },
  "nakshatra": {
    "number": 1,
    "name": "Ashwini",
    "lord": "Ketu",
    "pada": 2,
    "deity": "Ashwini Kumaras",
    "symbol": "Horse Head",
    "characteristics": "Quick, healing energy"
  },
  "yoga": {
    "number": 1,
    "name": "Vishkumbha",
    "characteristics": "Auspicious for new beginnings"
  },
  "karana": {
    "number": 7,
    "name": "Bava",
    "type": "Movable",
    "characteristics": "Good for travel and movement"
  },
  "sunLongitude": 265.42,
  "moonLongitude": 315.67
}

Try it

JSON, as the example above shows it.
Not sent

Get detailed Panchang with Rahu Kaal, Yamaganda, Gulika

POST /api/v2/vedic-astrology/panchang/detailed

Complete daily panchang with all five limbs (Tithi, Nakshatra, Yoga, Karana, Vara) plus sunrise, sunset, moonrise, moonset times. Includes inauspicious periods (Rahu Kaal, Yamaganda, Gulika Kaal) and auspicious windows (Abhijit Muhurta, Brahma Muhurta). Current planetary hora with start/end times. Essential for muhurta selection, daily horoscope apps, Hindu calendar integration, and electional astrology. Accurate calculations based on observer location.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Date in YYYY-MM-DD format. A single-digit month or day is accepted and zero-padded (2026-3-5 becomes 2026-03-05). Impossible calendar dates are rejected. Calculations that read planetary positions support 1550-01-02 to 2650-01-22; outside that span they answer 400 with code date_out_of_range, and a calculation that reads a window around the date (a sunrise search, a run of days) may answer the same 400 for a date within a few days of either end.
latitude requirednumberObserver latitude in decimal degrees. Determines sunrise and sunset times which define day/night boundaries for muhurta calculations.
longitude requirednumberObserver longitude in decimal degrees. Affects local time calculations for sunrise, sunset, and muhurta period boundaries.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Send the timezone that matches the coordinates: sunrise, sunset and every muhurta boundary are found by searching forward from local midnight, so the default anchors the search to an Indian day. Omitting it for a location outside IST returns a correctly ordered set of periods for the wrong window, shifted by the difference between 5.5 and the real offset. Defaults to 5.5 (IST).
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/panchang/detailed" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-02-03","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
date requiredstringDate for which panchang is calculated.
location requiredobjectLocation coordinates used for all time-based calculations.
location.latitude requirednumberObserver latitude used for sunrise/sunset calculation.
location.longitude requirednumberObserver longitude used for sunrise/sunset calculation.
location.timezone requirednumberTimezone offset from UTC in hours.
vara requiredobjectVara (weekday) information based on Hindu sunrise calendar.
vara.name requiredstringWeekday name in English. Vara begins at local sunrise, not at midnight, so a time before sunrise belongs to the previous vara.
vara.sanskritName requiredstringVara name transliterated from Sanskrit: Ravivara, Somavara, Mangalavara, Budhavara, Guruvara, Shukravara, Shanivara. Use this rather than name for a Jyotish-facing reading, since it is the form the classical texts use and it does not change with the lang parameter.
vara.lord requiredstringRuling planet of the day (Vara lord). Influences day-level auspiciousness.
sunrise requiredstringLocal sunrise in the requested timezone as YYYY-MM-DDTHH:MM:SS, with no zone suffix. Marks the start of the Hindu day.
sunset requiredstringLocal sunset in the requested timezone as YYYY-MM-DDTHH:MM:SS, with no zone suffix. Marks the transition to night muhurtas.
moonrise requiredstringnullMoonrise time in the requested timezone. Can be null if Moon does not rise on this date.
moonset requiredstringnullMoonset time in the requested timezone. Can be null if Moon does not set on this date.
moonSign requiredobjectMoon sign (Chandra Rashi) at sunrise. Central to Vedic astrology. determines daily emotional tone, Chandrabalam, and Tarabalam.
Show all fieldsShow fewer fields
FieldTypeDescription
moonSign.name requiredstringMoon rashi (sidereal zodiac sign) at sunrise.
moonSign.sanskritName requiredstringSanskrit name of the Moon rashi.
sunSign requiredobjectSun sign (Surya Rashi) at sunrise. Determines the solar month (Saura Masa) in the Hindu calendar. Changes approximately once a month (Sankranti).
sunSign.name requiredstringSun rashi (sidereal zodiac sign) at sunrise.
sunSign.sanskritName requiredstringSanskrit name of the Sun rashi.
sunNakshatra requiredobjectSun nakshatra at sunrise. The Sun spends approximately 13-14 days in each nakshatra. Used for Surya-based muhurta and festival calculations.
sunNakshatra.number requiredintegerSun nakshatra number (1-27).
sunNakshatra.name requiredstringName of the nakshatra the Sun occupies.
sunNakshatra.lord requiredstringRuling planet (lord) of the Sun nakshatra.
sunNakshatra.pada requiredintegerPada (quarter) of the Sun nakshatra.
tithi requiredobjectLunar day (tithi) information with interpretations. Central panchang element for determining auspicious timings.
tithi.number requiredintegerTithi number (1-30). 1-15 are Shukla Paksha (waxing), 16-30 are Krishna Paksha (waning). Purnima is 15, Amavasya is 30.
tithi.name requiredstringSanskrit name of the tithi (lunar day). One of 30 tithis in the lunar month cycle.
tithi.paksha requiredstring enumLunar fortnight: Shukla (waxing, bright half) or Krishna (waning, dark half).
tithi.percent requirednumberPercentage of the current tithi elapsed (0-100). Useful for determining tithi strength and transition proximity.
tithi.deitystringPresiding deity of this tithi from Vedic tradition.
tithi.rulingPlanetstringPlanetary ruler of this tithi. Influences the day energy and activities.
tithi.elementstringElemental quality of this tithi (Fire, Earth, Air, Water, Ether).
nakshatra requiredobjectNakshatra (lunar mansion) information with interpretations
nakshatra.number requiredintegerNakshatra index (1-27) in the zodiac sequence starting from Ashwini. Each nakshatra spans 13 degrees 20 minutes.
nakshatra.name requiredstringSanskrit name of the nakshatra (lunar mansion). One of 27 nakshatras spanning the zodiac belt.
nakshatra.lord requiredstringPlanetary ruler of this nakshatra. Determines Vimshottari dasha lord and influences nakshatra characteristics.
nakshatra.pada requiredintegerPada (quarter, 1-4) of the nakshatra. Each nakshatra has 4 padas spanning 3 degrees 20 minutes each. Determines the navamsha sign and fine-tunes nakshatra predictions.
nakshatra.deitystringPresiding deity of this nakshatra from Vedic mythology. Influences spiritual qualities and karmic themes.
nakshatra.symbolstringTraditional symbol representing this nakshatra. Reflects core energy and life themes.
nakshatra.characteristicsstringPersonality traits and behavioral tendencies when the Moon occupies this nakshatra. Useful for daily panchang readings.
yoga requiredobjectNitya Yoga information. Yoga is the third panchang element, derived from combined Sun-Moon longitude.
yoga.number requiredintegerNitya Yoga index (1-27). Calculated from the sum of Sun and Moon sidereal longitudes divided by 13 degrees 20 minutes.
yoga.name requiredstringSanskrit name of the Nitya Yoga. One of 27 yogas formed by combined Sun-Moon motion, each with distinct auspiciousness.
yoga.characteristicsstringCharacteristics and auspiciousness of this yoga for activity planning.
karana requiredobjectKarana (half-tithi) information. Fourth panchang element, changes twice per tithi.
karana.number requiredintegerKarana index. There are 11 karanas total (4 fixed + 7 movable) cycling through 60 half-tithis per lunar month.
karana.name requiredstringSanskrit name of the karana. 7 movable karanas (Bava through Naga) repeat 8 times, plus 4 fixed karanas.
karana.typestringKarana type: Movable (repeating, generally auspicious) or Fixed (occur once per month).
karana.characteristicsstringActivity suitability and characteristics of this karana for muhurta selection.
hora requiredobjectCurrent planetary hora. Used for electional astrology and muhurta selection.
hora.current requiredstringPlanet ruling the current hora (planetary hour). Each hora lasts ~1 hour.
hora.number requirednumberHora number within the day sequence (1-24).
hora.start requiredstringStart time of the current hora, as local civil time in the requested timezone offset. The first hora of any day begins at local sunrise, so this equals the sunrise field when the hora number is 1.
hora.end requiredstringEnd time of the current hora, as local civil time in the requested timezone offset. Day horas and night horas have different lengths, so a hora is only approximately 60 minutes.
rahuKaal requiredobjectRahu Kaal, inauspicious period ruled by Rahu. Avoid starting new ventures. Calculated from sunrise duration divided into 8 parts.
rahuKaal.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
rahuKaal.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
yamaganda requiredobjectYamaganda, inauspicious period ruled by Yama (lord of death). Avoid important activities.
yamaganda.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
yamaganda.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
gulika requiredobjectGulika Kaal, inauspicious period ruled by Saturn son Gulika. Considered harmful for initiating work.
gulika.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
gulika.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
abhijitMuhurta requiredobjectnullAbhijit Muhurta (Abhijit Muhurat), the most auspicious ~48-minute window around solar noon, the 8th of 15 day muhurtas. Ideal for starting new ventures, signing contracts, and performing rituals when no other shubh muhurat is available. Null on Wednesdays because Abhijit coincides with Dur Muhurta on that weekday per Muhurta Chintamani.
abhijitMuhurta.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
abhijitMuhurta.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
brahmaMuhurta requiredobjectBrahma Muhurta, sacred pre-dawn period approximately 96 minutes before sunrise (14th of 15 night muhurtas). Considered the best time for meditation, mantra japa, Vedic study, and spiritual sadhana. Referenced in Ashtanga Hridaya and Dharmashastra texts.
brahmaMuhurta.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
brahmaMuhurta.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
vijayaMuhurta requiredobjectVijaya Muhurta (Vijay Muhurat), the 11th of 15 day muhurtas between sunrise and sunset. Auspicious for journeys, legal proceedings, competitions, warfare, and any activity requiring victory or success. Used in electional astrology (muhurta shastra) for timing important undertakings.
vijayaMuhurta.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
vijayaMuhurta.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
nishitaMuhurta requiredobjectNishita Muhurta (Nishith Kaal), the 8th of 15 night muhurtas from sunset to next sunrise, occurring around midnight. Sacred period for worship of Lord Shiva, especially on Maha Shivaratri. Also significant for Janmashtami midnight celebrations and tantric sadhana.
nishitaMuhurta.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
nishitaMuhurta.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
godhuliMuhurta requiredobjectnullGodhuli Muhurta (cow dust time), 12 minutes before sunset to 12 minutes after sunset. Universally auspicious for any activity, especially marriages and grihapravesha. No blemish from tithi, vara, nakshatra, karana, or yoga applies during Godhuli. Null only in polar regions where sun does not set.
godhuliMuhurta.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
godhuliMuhurta.end requiredstringPeriod end time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
pratahSandhya requiredobjectnullPratah Sandhya, morning twilight junction period for Sandhyavandanam prayer. Spans 3 night ghatis before sunrise to sunrise. Duration varies by location and season based on ratrimana (night duration). One of the three daily Sandhya prayer times prescribed in Dharmashastra.
pratahSandhya.start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on the input timezone offset.
Example response
{
  "date": "2026-02-03",
  "location": {
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5
  },
  "vara": {
    "name": "Tuesday",
    "sanskritName": "Mangalavara",
    "lord": "Mars"
  },
  "sunrise": "2026-02-03T07:12:00",
  "sunset": "2026-02-03T18:32:00",
  "moonrise": "2026-02-03T20:03:00",
  "moonset": "2026-02-03T08:10:00",
  "moonSign": {
    "name": "Capricorn",
    "sanskritName": "Makara"
  },
  "sunSign": {
    "name": "Aquarius",
    "sanskritName": "Kumbha"
  },
  "sunNakshatra": {
    "number": 21,
    "name": "Dhanishtha",
    "lord": "Mars",
    "pada": 3
  },
  "tithi": {
    "number": 5,
    "name": "Panchami",
    "paksha": "Shukla",
    "percent": 67.5,
    "deity": "Vishnu",
    "rulingPlanet": "Sun",
    "element": "Fire"
  },
  "nakshatra": {
    "number": 1,
    "name": "Ashwini",
    "lord": "Ketu",
    "pada": 2,
    "deity": "Ashwini Kumaras",
    "symbol": "Horse Head",
    "characteristics": "Quick, healing energy"
  },
  "yoga": {
    "number": 1,
    "name": "Vishkumbha",
    "characteristics": "Auspicious for new beginnings"
  },
  "karana": {
    "number": 7,
    "name": "Bava",
    "type": "Movable",
    "characteristics": "Good for travel and movement"
  },
  "hora": {
    "current": "Mars",
    "number": 5,
    "start": "2026-02-03T07:08:00",
    "end": "2026-02-03T08:02:00"
  },
  "rahuKaal": {
    "start": "2026-02-03T09:00:00",
    "end": "2026-02-03T10:30:00"
  },
  "yamaganda": {
    "start": "2026-02-03T09:00:00",
    "end": "2026-02-03T10:30:00"
  },
  "gulika": {
    "start": "2026-02-03T09:00:00",
    "end": "2026-02-03T10:30:00"
  },
  "brahmaMuhurta": {
    "start": "2026-02-03T09:00:00",
    "end": "2026-02-03T10:30:00"
  },
  "vijayaMuhurta": {
    "start": "2026-02-03T09:00:00",
    "end": "2026-02-03T10:30:00"
  },
  "nishitaMuhurta": {
    "start": "2026-02-03T09:00:00",
    "end": "2026-02-03T10:30:00"
  },
  "durMuhurta": [
    {
      "start": "2026-02-03T09:00:00",
      "end": "2026-02-03T10:30:00"
    }
  ],
  "varjyam": [
    {
      "start": "2026-02-03T09:00:00",
      "end": "2026-02-03T10:30:00"
    }
  ],
  "amritKalam": [
    {
      "start": "2026-02-03T09:00:00",
      "end": "2026-02-03T10:30:00"
    }
  ],
  "chandrabalam": {
    "favorableRashis": [
      "Aries",
      "Taurus"
    ],
    "ashtamaChandraRashi": "Pisces"
  },
  "tarabalam": {
    "favorableNakshatras": [
      "Bharani",
      "Rohini"
    ],
    "unfavorableNakshatras": [
      "Krittika",
      "Mrigashira"
    ]
  },
  "panchaka": {
    "active": true,
    "type": "Mrityu",
    "startsAt": "2026-06-06T19:03:00",
    "endsAt": "2026-06-11T08:15:00"
  },
  "bhadra": {
    "active": true,
    "startsAt": "2026-06-10T13:53:00",
    "endsAt": "2026-06-11T00:58:00"
  },
  "transitions": {
    "tithi": {
      "endsAt": "2026-02-03T14:53:00",
      "next": "Dvadashi"
    },
    "yoga": {
      "endsAt": "2026-02-03T10:15:00",
      "next": "Shobhana"
    },
    "karana": {
      "endsAt": "2026-02-03T08:30:00",
      "next": "Balava"
    },
    "nakshatra": {
      "endsAt": "2026-02-03T16:22:00",
      "next": "Jyeshtha",
      "nextPada": 1
    },
    "moonSign": {
      "current": "Libra",
      "changesAt": "2026-02-04T01:11:00",
      "next": "Scorpio"
    }
  }
}

Try it

JSON, as the example above shows it.
Not sent

Get Choghadiya - 8 Muhurta divisions of day and night

POST /api/v2/vedic-astrology/panchang/choghadiya

Calculate Choghadiya (Chaughadia) muhurta timings for any date and location. Divides day (sunrise to sunset) and night (sunset to next sunrise) into 8 equal auspicious/inauspicious periods. Each period ruled by a planet: Udveg (Sun, bad), Amrit (Moon, good), Rog (Mars, bad), Labh (Mercury, good), Shubh (Jupiter, good), Char (Venus, good), Kaal (Saturn, bad). Essential for muhurta selection, daily planning, and traditional Hindu timekeeping. Choghadiya calculator API, daily muhurat timings, auspicious time finder.

Request body

FieldTypeDescription
date requiredstring (date)Date in YYYY-MM-DD format. A single-digit month or day is accepted and zero-padded (2026-3-5 becomes 2026-03-05). Impossible calendar dates are rejected. Calculations that read planetary positions support 1550-01-02 to 2650-01-22; outside that span they answer 400 with code date_out_of_range, and a calculation that reads a window around the date (a sunrise search, a run of days) may answer the same 400 for a date within a few days of either end.
latitude requirednumberObserver latitude in decimal degrees. Determines sunrise and sunset times which define day/night boundaries for muhurta calculations.
longitude requirednumberObserver longitude in decimal degrees. Affects local time calculations for sunrise, sunset, and muhurta period boundaries.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Used for accurate sunrise/sunset calculation and output time formatting. Essential for correct Choghadiya periods outside IST. Defaults to 5.5 (IST).
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/panchang/choghadiya" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-02-03","latitude":17.385044,"longitude":78.486671}'

Response fields

FieldTypeDescription
date requiredstringCalendar date the choghadiya muhurta table was computed for, YYYY-MM-DD, echoed back from the request. The day periods run from that date sunrise to its sunset, and the night periods run on to the next sunrise.
dayChoghadiya requiredarray of object8 daytime choghadiya periods (sunrise to sunset)
dayChoghadiya[].name requiredstring enumChoghadiya muhurta name. Auspicious: Amrit (Moon), Shubh (Jupiter), Labh (Mercury), Char (Venus). Inauspicious: Udveg (Sun), Rog (Mars), Kaal (Saturn).
dayChoghadiya[].lord requiredstringRuling planet of this Choghadiya period. Planet determines the quality and suitability of activities during this muhurta.
dayChoghadiya[].effect requiredstring enumAuspiciousness of this period. Good periods (Amrit, Shubh, Labh, Char) are suitable for important activities. Bad periods (Udveg, Rog, Kaal) should be avoided.
dayChoghadiya[].start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on input timezone offset.
dayChoghadiya[].end requiredstringPeriod end time in ISO 8601 format. Each Choghadiya period is one-eighth of the day or night duration.
nightChoghadiya requiredarray of object8 nighttime choghadiya periods (sunset to next sunrise)
nightChoghadiya[].name requiredstring enumChoghadiya muhurta name. Auspicious: Amrit (Moon), Shubh (Jupiter), Labh (Mercury), Char (Venus). Inauspicious: Udveg (Sun), Rog (Mars), Kaal (Saturn).
nightChoghadiya[].lord requiredstringRuling planet of this Choghadiya period. Planet determines the quality and suitability of activities during this muhurta.
nightChoghadiya[].effect requiredstring enumAuspiciousness of this period. Good periods (Amrit, Shubh, Labh, Char) are suitable for important activities. Bad periods (Udveg, Rog, Kaal) should be avoided.
nightChoghadiya[].start requiredstringPeriod start time in ISO 8601 format. Timezone-adjusted based on input timezone offset.
nightChoghadiya[].end requiredstringPeriod end time in ISO 8601 format. Each Choghadiya period is one-eighth of the day or night duration.
Example response
{
  "date": "2026-02-03",
  "dayChoghadiya": [
    {
      "name": "Shubh",
      "lord": "Jupiter",
      "effect": "Good",
      "start": "2026-02-03T01:10:00",
      "end": "2026-02-03T02:30:00"
    }
  ],
  "nightChoghadiya": [
    {
      "name": "Shubh",
      "lord": "Jupiter",
      "effect": "Good",
      "start": "2026-02-03T01:10:00",
      "end": "2026-02-03T02:30:00"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get Hora - 24 Planetary Hours (12 day + 12 night)

POST /api/v2/vedic-astrology/panchang/hora

Calculate all 24 Hora (planetary hour) periods for any date and location. Day is divided into 12 equal horas from sunrise to sunset, night into 12 equal horas from sunset to next sunrise. Each hora is ruled by a planet in the Chaldean sequence starting from the day lord. Hora timings API, planetary hours calculator, Vedic hora chart, electional astrology timing.

Request body

FieldTypeDescription
date requiredstring (date)Date in YYYY-MM-DD format. A single-digit month or day is accepted and zero-padded (2026-3-5 becomes 2026-03-05). Impossible calendar dates are rejected. Calculations that read planetary positions support 1550-01-02 to 2650-01-22; outside that span they answer 400 with code date_out_of_range, and a calculation that reads a window around the date (a sunrise search, a run of days) may answer the same 400 for a date within a few days of either end.
latitude requirednumberObserver latitude in decimal degrees. Determines sunrise and sunset times which define day/night boundaries for muhurta calculations.
longitude requirednumberObserver longitude in decimal degrees. Affects local time calculations for sunrise, sunset, and muhurta period boundaries.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Used for accurate sunrise/sunset calculation and output time formatting. Essential for correct Hora periods outside IST. Defaults to 5.5 (IST).
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/panchang/hora" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-02-03","latitude":17.385044,"longitude":78.486671}'

Response fields

FieldTypeDescription
date requiredstringDate for which hora periods were calculated.
dayHoras requiredarray of object12 daytime hora periods from sunrise to sunset. Duration varies by season.
dayHoras[].planet requiredstringRuling planet of this hora period. Follows the Chaldean planetary order: Sun, Venus, Mercury, Moon, Saturn, Jupiter, Mars.
dayHoras[].number requirednumberHora period number within the day or night segment (1-12).
dayHoras[].start requiredstringStart time of the hora period in ISO 8601 format.
dayHoras[].end requiredstringEnd time of the hora period in ISO 8601 format.
nightHoras requiredarray of object12 nighttime hora periods from sunset to next sunrise. Duration varies by season.
nightHoras[].planet requiredstringRuling planet of this hora period. Follows the Chaldean planetary order: Sun, Venus, Mercury, Moon, Saturn, Jupiter, Mars.
nightHoras[].number requirednumberHora period number within the day or night segment (1-12).
nightHoras[].start requiredstringStart time of the hora period in ISO 8601 format.
nightHoras[].end requiredstringEnd time of the hora period in ISO 8601 format.
Example response
{
  "date": "2026-02-03",
  "dayHoras": [
    {
      "planet": "Jupiter",
      "number": 1,
      "start": "2026-02-03T01:10:00",
      "end": "2026-02-03T02:05:00"
    }
  ],
  "nightHoras": [
    {
      "planet": "Jupiter",
      "number": 1,
      "start": "2026-02-03T01:10:00",
      "end": "2026-02-03T02:05:00"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Check Manglik Dosha - Mangal Dosha Calculator API

POST /api/v2/vedic-astrology/dosha/manglik

Detect Manglik dosha (Kuja dosha, Mars dosha) based on Mars position in inauspicious houses (1, 2, 4, 7, 8, 12) from Lagna. Accurate mangal dosha calculator for matrimonial compatibility checks in Vedic astrology. Returns severity levels (Mild/Moderate/Severe) and cancellation factors. Essential for kundli matching for marriage, manglik compatibility, and marriage astrology in matrimonial sites. Includes exceptions that reduce manglik dosha effects.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dosha/manglik" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
present requiredbooleanWhether Manglik dosha (Kuja dosha) is present based on Mars placement from Lagna
severitystring enumManglik dosha intensity, Mild (houses 2, 12), Moderate (houses 4, 7), Severe (houses 1, 8)
description requiredstringHuman-readable Manglik dosha analysis with Mars house placement
exceptionsarray of stringClassical cancellation factors that reduce Manglik dosha severity (own sign, exaltation, benefic aspects)
remediesarray of stringTraditional Vedic remedies for Manglik dosha mitigation based on severity level
effectsobjectManglik dosha effects on marriage, personality, and relationships
effects.marriage requiredstringImpact of Manglik dosha on marriage and marital harmony
effects.personality requiredstringInfluence on temperament and behavioral traits
effects.timing requiredstringAge-related intensity and Mars maturity effects
effects.relationships requiredstringImpact on interpersonal and spousal relationships
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "present": true,
  "severity": "Mild",
  "description": "Manglik Dosha present. Mars in house 12 creates matrimonial afflictions.",
  "exceptions": [
    "Mars in own sign (reduces severity)"
  ],
  "remedies": [
    "Chant Hanuman Chalisa daily",
    "Visit Hanuman temple on Tuesdays"
  ],
  "effects": {
    "marriage": "Delays in marriage, marital discord, separation, or multiple marriages",
    "personality": "Aggressive behavior, impatience, dominance, short temper",
    "timing": "Effects significantly reduce after age 28 (Mars maturity age)",
    "relationships": "Conflicts with spouse, power struggles, lack of harmony"
  }
}

Try it

JSON, as the example above shows it.
Not sent

Check Kalsarpa Dosha - Kalsarpa Yoga Calculator API

POST /api/v2/vedic-astrology/dosha/kalsarpa

Detect Kalsarpa dosha (Kalsarpa yoga) when all 7 planets are hemmed between Rahu-Ketu axis. Accurate kalsarpa dosha calculator identifying 12 types (Ananta, Kulik, Vasuki, Shankhapala, Padma, Mahapadma, Takshak, Karkotak, Shankhachud, Ghatak, Vishdhar, Sheshnag). Returns severity and effects based on Rahu house position. Essential for Vedic astrology dosha analysis, birth chart evaluation, and matrimonial compatibility. Considered significant dosha affecting life obstacles and spiritual growth.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dosha/kalsarpa" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
present requiredbooleanWhether Kalsarpa dosha (Kalsarpa yoga) is present, all planets hemmed between Rahu-Ketu axis
severitystring enumKalsarpa dosha intensity based on Rahu-Ketu house positions
typestringOne of 12 Kalsarpa types based on Rahu house position (Ananta, Kulik, Vasuki, Shankhapala, Padma, Mahapadma, Takshak, Karkotak, Shankhachud, Ghatak, Vishdhar, Sheshnag)
description requiredstringHuman-readable Kalsarpa dosha analysis with Rahu-Ketu axis details
remediesarray of stringTraditional Vedic remedies for Kalsarpa dosha including puja, mantras, and spiritual practices
effectsobjectKalsarpa dosha effects on career, health, mindset, and relationships
effects.duration requiredstringWhen Kalsarpa effects are most active in Vimshottari dasha
effects.career requiredstringImpact on professional growth and career progress
effects.health requiredstringPhysical and mental health implications
effects.relationships requiredstringImpact on family bonds and personal relationships
effects.mindset requiredstringPsychological and emotional effects
Show all fieldsShow fewer fields
FieldTypeDescription
effects.positive requiredstringPotential spiritual and personal growth benefits
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "present": true,
  "severity": "Moderate",
  "type": "Vasuki Kalsarpa",
  "description": "Vasuki Kalsarpa Dosha present. All planets hemmed between Rahu (house 3) and Ketu.",
  "remedies": [
    "Perform Kaal Sarp Dosh Puja at Trimbakeshwar or Ujjain",
    "Chant Mahamrityunjaya Mantra daily"
  ],
  "effects": {
    "duration": "Effects active during Rahu and Ketu Mahadasha/Antardasha periods",
    "career": "Obstacles in progress, sudden setbacks, delayed success",
    "health": "Chronic health issues, accidents, mental stress",
    "relationships": "Family disputes, separation from loved ones",
    "mindset": "Anxiety, fear, nightmares, psychological struggles",
    "positive": "Can bring spiritual inclination and inner strength when managed well"
  }
}

Try it

JSON, as the example above shows it.
Not sent

Check Sadhesati - Sade Sati Calculator API (Saturn Transit)

POST /api/v2/vedic-astrology/dosha/sadhesati

Calculate Sadhesati (Sade Sati) periods when Saturn transits 12th, 1st, and 2nd houses from natal Moon. Accurate sade sati calculator with current status and phase identification (Rising/Peak/Setting). Shani sadhesati 7.5 year period tracker. Returns Saturn transit dates and effects on life. Essential for Saturn transit analysis, sadhesati remedies timing, and understanding challenging Saturn periods in Vedic astrology. Important for timing major life decisions.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/dosha/sadhesati" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
present requiredbooleanWhether Sade Sati is currently active, Saturn transiting 12th, 1st, or 2nd house from natal Moon
severitystring enumSadhesati intensity: Moderate for Rising/Setting phases, Severe for Peak phase (Saturn over natal Moon)
typestringCurrent Sadhesati phase: Rising (12th house), Peak (1st house), or Setting (2nd house)
description requiredstringHuman-readable Sadhesati analysis with current Saturn transit phase relative to natal Moon
remediesarray of stringTraditional Vedic remedies for Shani Sade Sati including Shani mantras, donations, and worship
effectsobjectSadhesati effects by transit phase with general and phase-specific impacts
effects.general requiredstringOverall impact of Saturn transit during Sade Sati period
effects.phases requiredobjectPhase-specific effects for the current Sadhesati stage (Rising/Peak/Setting)
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "present": true,
  "severity": "Severe",
  "type": "Peak phase (1st house)",
  "description": "Sadhesati active. Peak phase (1st house) - Saturn transiting relative to natal Moon.",
  "remedies": [
    "Chant Shani Mantra 108 times daily",
    "Light mustard oil lamp under peepal tree on Saturdays"
  ],
  "effects": {
    "general": "Overall period brings karmic lessons, maturity, and eventual growth through challenges",
    "phases": {
      "Peak phase (1st house)": "Health issues, relationship problems, career obstacles, maximum hardships"
    }
  }
}

Try it

JSON, as the example above shows it.
Not sent

List all planetary yogas - 301 entry Vedic Yoga Glossary

GET /api/v2/vedic-astrology/yoga

Browse the 301-entry Vedic planetary-yoga glossary. Returns id and name for every cataloged yoga (Raja, Dhana, Pancha Mahapurusha, Nabhasa, Chandra-Mangala, and more). This is a dictionary lookup, not chart-driven detection: it does not inspect a birth chart. Use GET /yoga/{id} for the full glossary entry, or POST /yoga/detect to run all 48 detection rules against a specific kundli. Ideal for yoga-browser UIs, search, and progressive data loading.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
family querystring enumFilter the catalog to one Nabhasa family: asraya (3), dala (2), akriti (20) or sankhya (7). Omit for the full catalog. `classical` is accepted but matches nothing here, because it is a detection-verdict value for single-combination yogas rather than a catalog grouping.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/yoga" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
yogas requiredarray of objectArray of planetary yogas with basic identifiers, narrowed by `family` when that filter is supplied. Use GET /yoga/{id} for formation rules, effects, and quality classification.
yogas[].id requiredstringUnique yoga identifier in lowercase kebab-case. Use this to fetch full details via GET /yoga/{id}.
yogas[].name requiredstringTraditional Sanskrit name of the planetary yoga combination.
yogas[].familystring enumNabhasa family, present only on the 32 Nabhasa distribution yogas and absent on every other catalog row. Never translated, so it groups identically under any lang.
total requirednumberNumber of yogas in this response, which is the filtered count when `family` is supplied and the full catalog size otherwise. Includes Raj Yogas, Dhan Yogas, Pancha Mahapurusha Yogas, Nabhasa Yogas, and more.
Example response
{
  "yogas": [
    {
      "id": "gajakesari",
      "name": "Gajakesari Yoga",
      "family": "akriti"
    }
  ],
  "total": 300
}

Try it

Not sent

Get yoga details by ID - Vedic Yoga Glossary Entry

GET /api/v2/vedic-astrology/yoga/{id}

Look up the dictionary entry for a specific named yoga from the 301-entry Vedic planetary-yoga glossary. Returns formation conditions, life results, and quality classification (Positive/Negative/Both). This is a glossary lookup against the static catalog; it does NOT analyze a birth chart. For chart-driven present/absent verdicts on the 48 detection-grade yogas (Gajakesari, the Pancha Mahapurusha set, all 32 Nabhasa distribution yogas, and the wealth and poverty verdicts) call POST /yoga/detect with birth data.

Parameters

ParameterTypeDescription
id required pathstring enumYoga identifier (lowercase, hyphenated)
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/yoga/gajakesari" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
id requiredstringGlossary id (lowercase, kebab-case) matching an entry in the 301-entry planetary-yoga catalog. Use with GET /yoga/{id} to retrieve the full glossary text.
name requiredstringClassical Sanskrit name of the yoga as referenced in BPHS (Brihat Parashara Hora Shastra), Phaladeepika, and B.V. Raman *Three Hundred Important Combinations*.
description requiredstringBrief classical formation rule. Identifies the planetary placement, lordship, dignity, aspect pattern, sign modality, or whole-chart bhava distribution required for the yoga to form.
result requiredstringClassical phala (life-effect) description of the yoga when present, sourced from the parashari and phaladeepika tradition.
quality requiredstring enumOverall nature. Auspicious yogas (Pancha Mahapurusha, Gajakesari) bestow benefits; inauspicious yogas (Kemadruma) indicate challenges; Both denotes context-dependent effects.
familystring enumNabhasa family this yoga belongs to, present only on the 32 Nabhasa distribution yogas: asraya (3, sign modality), dala (2, benefic or malefic kendra tenancy), akriti (20, bhava shape) and sankhya (7, count of occupied rasis). Absent on every other glossary row, which is most of the catalog, since those are single-combination yogas outside the Nabhasa scheme. Group or filter the catalog on this key; it is never translated.
Example response
{
  "id": "gajakesari",
  "name": "Gajakesari Yoga",
  "description": "Jupiter in kendra from Moon",
  "result": "Gajakesari Yoga is one of the most powerful yogas...",
  "quality": "Positive",
  "family": "akriti"
}

Try it

Not sent

Detect classical Vedic yogas in a birth chart

POST /api/v2/vedic-astrology/yoga/detect

Chart-driven detection of 48 classical Vedic yogas. Twelve conjunction and dignity yogas: Gajakesari (parashara three-rule definition), Sunapha, Anapha, Dhurdhura, Kemadruma, Chandra Mangala, Budha-Aditya, and the five Pancha Mahapurusha yogas (Ruchaka, Bhadra, Hamsa, Malavya, Sasa). Plus all 32 Nabhasa distribution yogas, which describe how the seven visible grahas are spread across the whole chart rather than any single conjunction, across four families: Asraya (Rajju, Musala, Nala), Dala (Mala, Sarpa), Akriti (Gada, Shakata, Vihaga, Shringataka, Hala, Vajra, Yava, Kamala, Vapi, Yupa, Shara, Shakti, Danda, Nauka, Kuta, Chhatra, Dhanusha, Ardhachandra, Chakra, Samudra) and Sankhya (Gola, Yuga, Shoola, Kedara, Pasa, Damini, Veena). Plus four wealth and poverty verdicts, each ONE answer over a whole family of classical rules: Dhana Yoga over the eleven catalogued wealth combinations of BPHS ch. 41, Daridra Yoga over the poverty combinations of BPHS ch. 42 and Phaladeepika ch. 6, Lakshmi Yoga (BPHS ch. 36), and Dhana Malika (Jataka Parijata ch. 7). Their evidence names every rule that matched and the exact condition it matched on, so a wealth reading cites the combination rather than a label, and a rule resting on a single authority is excluded from the verdict and says so rather than quietly counting. Each yoga is returned with an `id`, `name`, a `present` boolean, a `quality` (Positive, Negative, or Both, i.e. auspicious, inauspicious, or context-dependent), and a classical-text `evidence` string naming the rule that triggered or failed (kendra position, dignity, malefic drishti, lordship, retrograde state, sign modality, bhava distribution). Nabhasa results also apply the four classical precedence norms, so a yoga that matched its own rule but was outranked by a stronger family is returned as absent with evidence naming the norm that silenced it, letting you explain a verdict rather than only report it. There is no separate major/minor flag; `quality` is the auspiciousness axis. Unlike GET /yoga and GET /yoga/{id} which are dictionary lookups, this endpoint computes the kundli from birth data and runs the detection rules. Sources: BPHS ch. 35 and ch. 75, Mantreswara Phaladeepika ch. 6, B.V. Raman Three Hundred Important Combinations.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/yoga/detect" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
yogas requiredarray of objectArray of 48 detected yogas, always the full set so a caller can render absent verdicts too. Every entry carries a `present` boolean and a `quality` (Positive, Negative, or Both = auspicious, inauspicious, or context-dependent); filter on present === true for active yogas. Evidence text names the rule that triggered or failed, or the precedence norm that outranked it.
yogas[].id requiredstringGlossary id (lowercase, kebab-case) matching an entry in the 301-entry planetary-yoga catalog. Use with GET /yoga/{id} to retrieve the full glossary text.
yogas[].name requiredstringClassical Sanskrit name of the yoga as referenced in BPHS (Brihat Parashara Hora Shastra), Phaladeepika, and B.V. Raman *Three Hundred Important Combinations*.
yogas[].description requiredstringBrief classical formation rule. Identifies the planetary placement, lordship, dignity, aspect pattern, sign modality, or whole-chart bhava distribution required for the yoga to form.
yogas[].result requiredstringClassical phala (life-effect) description of the yoga when present, sourced from the parashari and phaladeepika tradition.
yogas[].quality requiredstring enumOverall nature. Auspicious yogas (Pancha Mahapurusha, Gajakesari) bestow benefits; inauspicious yogas (Kemadruma) indicate challenges; Both denotes context-dependent effects.
yogas[].family requiredstring enumClassical grouping, ALWAYS present on a detection verdict: one of the four Nabhasa families (asraya, dala, akriti, sankhya) or classical for the twelve single-combination yogas such as Gajakesari and the Pancha Mahapurusha. Group the verdict list on this key to render a Nabhasa result the way the tradition arranges it. Never translated, so grouping works identically under any lang.
yogas[].present requiredbooleanTrue if every classical condition for the yoga is satisfied by the given chart. False means one of TWO different things: the rule failed, or the rule held and a stronger family outranked it. Read `suppressedBy` to tell those apart, which is exact and locale-independent; `evidence` says the same thing in English prose.
yogas[].suppressedBystring enumSet ONLY when this yoga matched its own classical rule and was then silenced by a higher-ranking family, so `present` is false for a reason a practitioner reads very differently from a failed rule. Names the family that took precedence, under the four classical norms: Akriti outranks Asraya, and Akriti, Asraya and Dala each outrank Sankhya. Absent means the rule genuinely did not hold.
yogas[].evidencestringHuman-readable rationale naming the specific rule that triggered or failed the detection, including planetary positions, dignity, kendradhipati status, lordship, malefic drishti, sign modality, or whole-chart bhava distribution. For a Nabhasa yoga that matched its own rule but was outranked, this names the precedence norm that silenced it, for example that an Akriti yoga outranks Asraya or that any other Nabhasa family suppresses Sankhya. English in every language, like the per-graha stateSource on POST /daily, because it is provenance to be checked against a text rather than display copy.
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
total requirednumberCount of yogas where present === true in this chart. Range 0-48, though real charts sit in the low single digits: the Nabhasa families are mutually constrained by the precedence norms, and most shape yogas are rare.
Show all fieldsShow fewer fields
FieldTypeDescription
birthDetails requiredobjectEcho of the resolved birth data used for detection. Timezone is the numeric offset that the chart engine consumed (IANA names are resolved upstream).
birthDetails.date requiredstringBirth date the kundli was cast for, YYYY-MM-DD, echoed back from the request.
birthDetails.time requiredstringBirth time the kundli was cast for, 24-hour HH:MM:SS, echoed back from the request. Lagna moves roughly one rashi every two hours, so this is what pins the bhava-dependent yogas.
birthDetails.latitude requirednumberBirth latitude in decimal degrees, echoed back from the request. Feeds the local sidereal time behind the Lagna.
birthDetails.longitude requirednumberBirth longitude in decimal degrees, echoed back from the request. East is positive, west is negative.
birthDetails.timezone requirednumberNumeric UTC offset in decimal hours that the chart engine actually consumed. An IANA name sent on the request is resolved to its DST-correct offset upstream, so this is always a number.
Example response
{
  "yogas": [
    {
      "id": "gajakesari",
      "name": "Gajakesari Yoga",
      "description": "Jupiter in kendra from Moon",
      "result": "Gajakesari Yoga is one of the most powerful yogas...",
      "quality": "Positive",
      "family": "akriti",
      "present": true,
      "suppressedBy": "akriti",
      "evidence": "Jupiter in kendra from Moon, not retrograde, no malefic drishti. Strengtheners: Moon out of 6/8/12 (house 4); Moon 5 houses from Sun; Moon not in Scorpio."
    }
  ],
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "total": 4,
  "birthDetails": {
    "date": "1990-07-04",
    "time": "10:12:00",
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5
  }
}

Try it

JSON, as the example above shows it.
Not sent

Get KP-Newcomb ayanamsa - Dynamic daily calculation

GET /api/v2/vedic-astrology/kp/ayanamsa

Get the KP-Newcomb (Krishnamurti) ayanamsa for any instant, computed continuously from Newcomb precession theory rather than looked up in a preset table, so it tracks the exact moment you ask for instead of the calendar year. Supply date alone for midnight UTC, or add time and timezone to pin a birth moment exactly. This is the precession offset subtracted from a tropical longitude to obtain the sidereal one, and it is what makes a KP chart reproduce the reference software your practitioners already use. Returns the same value every KP endpoint applies internally. Use it as a dynamic KP Newcomb ayanamsa calculator when you need the Krishnamurti ayanamsa for today, for a birth moment, or for any instant a chart is being rectified against.

Parameters

ParameterTypeDescription
date querystring (date)Date for ayanamsa calculation in YYYY-MM-DD format. Defaults to today if not provided. Ayanamsa changes by ~0.01 degrees per month due to the precession of Earth.
time querystring (time)Time of day in 24-hour HH:MM:SS format, interpreted in the timezone below. Omit for midnight UTC. The ayanamsa moves about 0.14 arcseconds across a day, so supplying the time matters only when reconciling a chart against reference software to the arcsecond.
timezone querystringIANA name (e.g. "Asia/Kolkata", "America/New_York"), decimal hours (e.g. 5.5 for IST, -5 for EST), or a fixed UTC offset (e.g. "+05:30"). IANA resolved to the offset in force at the given date and the time field above. Defaults to 0 (UTC).
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/kp/ayanamsa" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
date requiredstringDate for which ayanamsa was calculated
instant requiredstringThe exact UTC instant the value was computed for, after applying the time and timezone. Echoed so a client reconciling to the arcsecond can confirm the moment rather than infer it from the date alone. Equals midnight UTC of the date when no time was supplied.
ayanamsa requirednumberKP-Newcomb ayanamsa value in degrees
type requiredstringAyanamsa type identifier
formula requiredstringMathematical basis for ayanamsa calculation
calculated requiredstringUTC timestamp when calculation was performed
Example response
{
  "date": "2025-12-26",
  "instant": "2025-12-26T03:30:00.000Z",
  "ayanamsa": 24.22233926,
  "type": "kp-newcomb",
  "formula": "Newcomb precession theory",
  "calculated": "2025-12-26T10:30:00Z"
}

Try it

Not sent

Get KP planetary positions with sub-lords

POST /api/v2/vedic-astrology/kp/planets

Get planetary positions with detailed KP star-lord and sub-lord calculations for precise event timing and significator analysis. Returns all 9 planets (Sun through Ketu) with nakshatra, star-lord, sub-lord, and KP horary numbers (1-249). Essential for KP astrology software, significator analysis, and event prediction. Use it as a star lord and sub lord calculator wherever Krishnamurti Paddhati planet positions drive the reading.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format
time requiredstring (time)Birth time in 24-hour HH:MM:SS format
latitude requirednumberBirth location latitude in decimal degrees
longitude requirednumberBirth location longitude in decimal degrees
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST) for Vedic astrology.
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/planets" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
ayanamsa requirednumberApplied ayanamsa value in degrees
planets requiredarray of object
planets[].planet requiredstringVedic graha name (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu).
planets[].longitude requirednumberKP sidereal longitude in degrees (0-360). Used to determine Placidus house placement and KP subdivision (sign, star, sub).
planets[].sign requiredstringZodiac sign (rashi) this planet occupies in the sidereal zodiac.
planets[].signLord requiredstringRashi lord (sign ruler). First level of the KP significator hierarchy. Its house ownership determines L4 significations.
planets[].nakshatra requiredstringNakshatra (lunar mansion) this planet occupies. One of 27 nakshatras, each spanning 13 degrees 20 minutes.
planets[].nakshatraNumber requirednumberNakshatra sequence number (1-27). Ashwini=1 through Revati=27.
planets[].nakshatraLord requiredstringNakshatra lord (star ruler) from the Vimshottari dasha sequence. Determines the nature of results this planet delivers in KP.
planets[].pada requirednumberNakshatra pada/quarter (1-4)
planets[].starLord requiredstringStar-lord (same as nakshatra lord in KP system)
planets[].subLord requiredstringSub-lord based on 249-level KP subdivision
planets[].subSubLord requiredstringSub-sub lord (SSL) based on 2241-level KP subdivision. Third level of Vimshottari dasha proportions.
planets[].kpNumber requirednumberKP horary number (1-249)
Show all fieldsShow fewer fields
FieldTypeDescription
planets[].retrograde requiredbooleanWhether planet is in retrograde motion
Example response
{
  "ayanamsa": 24.22233926,
  "planets": [
    {
      "planet": "Sun",
      "longitude": 108.23,
      "sign": "Cancer",
      "signLord": "Moon",
      "nakshatra": "Pushya",
      "nakshatraNumber": 8,
      "nakshatraLord": "Saturn",
      "pada": 2,
      "starLord": "Saturn",
      "subLord": "Mercury",
      "subSubLord": "Venus",
      "kpNumber": 45,
      "retrograde": false
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get KP Placidus house cusps with sub-lords

POST /api/v2/vedic-astrology/kp/cusps

Calculate unequal Placidus house cusps with ruling sign-lord, nakshatra-lord, and sub-lord for each cusp. Dynamic KP-Newcomb or custom ayanamsa support. Used in KP horary astrology, cusp sub-lord analysis, and birth chart rectification. Returns all 12 house cusps with KP sub-division details. Use it as a Placidus house cusp calculator that also carries the star lord and sub lord of each cusp, which is what Krishnamurti Paddhati horary work reads first.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format
time requiredstring (time)Birth time in 24-hour HH:MM:SS format
latitude requirednumberBirth location latitude in decimal degrees
longitude requirednumberBirth location longitude in decimal degrees
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST) for Vedic astrology.
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/cusps" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
ayanamsa requirednumberApplied ayanamsa value in degrees
houseSystem requiredstringHouse system used for calculations
cusps requiredarray of object
cusps[].house requirednumberHouse number (1-12)
cusps[].longitude requirednumberCusp longitude in degrees (0-360)
cusps[].sign requiredstringZodiac sign of the cusp
cusps[].signLord requiredstringRashi lord (sign ruler) of this cusp. In KP, the cusp sign lord is a significator for this house.
cusps[].nakshatra requiredstringNakshatra (lunar mansion) at this cusp degree. The cusp nakshatra lord and sublord together determine the houses complete significator chain.
cusps[].nakshatraLord requiredstringNakshatra lord (star ruler) of the cusp. One of 9 Vimshottari dasha lords. Determines which planet activates this cusp in KP predictions.
cusps[].pada requirednumberNakshatra pada/quarter (1-4)
cusps[].starLord requiredstringStar-lord (nakshatra lord)
cusps[].subLord requiredstringSub-lord based on KP 249-level subdivision
cusps[].subSubLord requiredstringSub-sub lord (SSL) based on 2241-level KP subdivision. Third level of Vimshottari dasha proportions.
cusps[].kpNumber requirednumberKP horary number (1-249)
Show all fieldsShow fewer fields
FieldTypeDescription
houseThemes requiredobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focus requiredstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
Example response
{
  "ayanamsa": 24,
  "houseSystem": "placidus",
  "cusps": [
    {
      "house": 1,
      "longitude": 89.45,
      "sign": "Cancer",
      "signLord": "Moon",
      "nakshatra": "Ashlesha",
      "nakshatraLord": "Mercury",
      "pada": 3,
      "starLord": "Mercury",
      "subLord": "Venus",
      "subSubLord": "Mars",
      "kpNumber": 32
    }
  ],
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Generate complete KP birth chart

POST /api/v2/vedic-astrology/kp/chart

Generate authentic Krishnamurti Paddhati birth charts with Placidus house cusps, star-lord and sub-lord calculations. Supports custom ayanamsa and dynamic KP-Newcomb ayanamsa calculation. Returns complete chart with all 9 planets (Sun through Ketu), Ascendant, 12 Placidus house cusps, nakshatra details, star-lords, sub-lords, and KP horary numbers (1-249). Perfect for KP astrology software, horary prediction apps, and event timing analysis. One call is a complete Krishnamurti Paddhati chart generator, returning the Placidus cusps and the planets with their sub lords together.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. CRITICAL for accurate Lagna and house calculations.
latitude requirednumberBirth location latitude in decimal degrees
longitude requirednumberBirth location longitude in decimal degrees
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST) for Vedic astrology.
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/chart" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
meta requiredobjectChart metadata including birth data, ayanamsa, and house system.
meta.date requiredstringBirth date in YYYY-MM-DD format used for this KP chart calculation.
meta.time requiredstringBirth time in HH:MM:SS format used for Lagna and Placidus cusp calculations.
meta.latitude requirednumberBirth location latitude in decimal degrees. Determines Placidus house cusps and Ascendant.
meta.longitude requirednumberBirth location longitude in decimal degrees. Affects local sidereal time for house calculations.
meta.timezone requirednumberTimezone offset from UTC in decimal hours used for time conversion.
meta.ayanamsa requirednumberKP Newcomb ayanamsa value in degrees. Precession correction applied to convert tropical to sidereal positions.
meta.ayanamsaType requiredstringAyanamsa system used, echoing the ayanamsa field of the request: "kp-newcomb", "kp-old", "lahiri", "raman" or "custom".
meta.houseSystem requiredstringHouse system used (Placidus, standard for KP astrology).
ascendant requiredobjectAscendant (Lagna) details with full KP stellar hierarchy.
ascendant.longitude requirednumberSidereal longitude of Ascendant (Lagna) in degrees.
ascendant.sign requiredstringZodiac sign of the Ascendant.
ascendant.signLord requiredstringRuling planet of the Ascendant sign (the rashi lord). In KP this is the weakest of the four lords, ranked below the star lord and sub lord, but it still sets the broad temperament of the Lagna.
ascendant.nakshatra requiredstringNakshatra (star) of the Ascendant.
Show all fieldsShow fewer fields
FieldTypeDescription
ascendant.nakshatraLord requiredstringLord of the Ascendant nakshatra.
ascendant.pada requirednumberNakshatra pada (1-4) of the Ascendant.
ascendant.starLord requiredstringKP star lord of the Ascendant position.
ascendant.subLord requiredstringKP sub lord of the Ascendant. crucial for KP predictions. The Ascendant sub lord determines overall life promise.
ascendant.subSubLord requiredstringKP sub-sub lord (SSL) of the Ascendant. Third level of the Vimshottari subdivision hierarchy, used for fine-tuning predictions.
ascendant.kpNumber requirednumberKP number (1-249) for the Ascendant degree.
cusps requiredarray of objectAll 12 Placidus house cusps with KP stellar hierarchy. Cusp sub lords are the primary predictive tool in KP astrology.
cusps[].house requirednumberHouse number (1-12).
cusps[].longitude requirednumberPlacidus cusp longitude in sidereal degrees.
cusps[].sign requiredstringZodiac sign at the cusp.
cusps[].signLord requiredstringLord of the zodiac sign at the cusp (house owner).
cusps[].nakshatra requiredstringNakshatra at the cusp degree.
cusps[].nakshatraLord requiredstringLord of the nakshatra at the cusp.
cusps[].pada requirednumberNakshatra pada (1-4) at the cusp.
cusps[].starLord requiredstringKP star lord of the cusp.
cusps[].subLord requiredstringKP sub lord of the cusp. the deciding factor for house-level predictions in KP astrology.
cusps[].subSubLord requiredstringKP sub-sub lord (SSL) of the cusp. Third level of Vimshottari subdivision for fine-grained cusp analysis.
cusps[].kpNumber requirednumberKP number (1-249) for the cusp degree.
planets requiredarray of objectPositions of all 7 visible planets with complete KP stellar breakdown.
planets[].planet requiredstringPlanet name (Sun through Saturn, 7 visible planets).
planets[].longitude requirednumberSidereal longitude in degrees (KP ayanamsa corrected).
planets[].sign requiredstringZodiac sign the planet occupies.
planets[].signLord requiredstringRashi lord (sign ruler). First level of the KP significator hierarchy. Its house ownership determines L4 significations.
planets[].house requirednumberHouse number (1-12) based on Placidus cusps.
planets[].nakshatra requiredstringNakshatra the planet occupies.
planets[].nakshatraLord requiredstringNakshatra lord (same as star lord).
planets[].pada requirednumberNakshatra pada (1-4).
planets[].starLord requiredstringKP star lord, determines primary house signification.
planets[].subLord requiredstringKP sub lord, the decisive factor. Planet gives results of the houses signified by its sub lord.
planets[].subSubLord requiredstringKP sub-sub lord (SSL) of the planet. Third level of Vimshottari subdivision for precise timing analysis.
planets[].kpNumber requirednumberKP number (1-249).
planets[].retrograde requiredbooleanTrue if planet is retrograde. Retrograde planets may delay or deny results in KP system.
nodes requiredobjectLunar nodes (Rahu and Ketu) with KP stellar hierarchy. Nodes are powerful agents that amplify the significations of their dispositors.
nodes.rahu requiredobjectRahu (North Lunar Node), shadow planet, always retrograde, acts as agent of its sign lord and star lord.
nodes.rahu.longitude requirednumberSidereal longitude of Rahu (North Node).
nodes.rahu.sign requiredstringZodiac sign Rahu occupies.
nodes.rahu.signLord requiredstringRashi lord of the sign Rahu occupies. Rahu has no sign of its own and acts as agent of this lord.
nodes.rahu.house requirednumberOccupied house number (1-12) based on Placidus cusps.
nodes.rahu.nakshatra requiredstringNakshatra of Rahu.
nodes.rahu.pada requirednumberNakshatra pada (1-4) of Rahu.
nodes.rahu.starLord requiredstringKP star lord of Rahu.
nodes.rahu.subLord requiredstringKP sub lord of Rahu.
nodes.rahu.subSubLord requiredstringKP sub-sub lord (SSL) of Rahu.
nodes.rahu.kpNumber requirednumberKP number (1-249) locating Rahu in the 249-division sub-lord scheme. Each of the 249 divisions maps to a unique sign, star lord and sub lord triple, so one integer pins the position precisely enough for KP event timing.
nodes.ketu requiredobjectKetu (South Lunar Node), shadow planet, spiritual karmic indicator.
nodes.ketu.longitude requirednumberSidereal longitude of Ketu (South Node). Always 180 degrees from Rahu.
nodes.ketu.sign requiredstringZodiac sign Ketu occupies.
nodes.ketu.signLord requiredstringRashi lord of the sign Ketu occupies. Ketu has no sign of its own and acts as agent of this lord.
nodes.ketu.house requirednumberOccupied house number (1-12) based on Placidus cusps.
nodes.ketu.nakshatra requiredstringNakshatra of Ketu.
nodes.ketu.pada requirednumberNakshatra pada (1-4) of Ketu.
nodes.ketu.starLord requiredstringKP star lord of Ketu.
nodes.ketu.subLord requiredstringKP sub lord of Ketu.
nodes.ketu.subSubLord requiredstringKP sub-sub lord (SSL) of Ketu.
nodes.ketu.kpNumber requirednumberKP number (1-249) locating Ketu in the 249-division sub-lord scheme. Each of the 249 divisions maps to a unique sign, star lord and sub lord triple, so one integer pins the position precisely enough for KP event timing.
significators requiredobjectKP significators for event prediction and timing. Shows which planets signify each house (house-wise) and which houses each planet signifies (planet-wise). Strength order: Level 1 (planets in star of occupant) > Level 2 (occupants) > Level 3 (planets in star of owner) > Level 4 (house owner).
significators.houseWise requiredarray of object
significators.houseWise[].house requirednumberHouse number 1-12
significators.houseWise[].significators requiredarray of object
significators.houseWise[].significators[].level requirednumberKP significator strength level (1-4). L1: planets in star of occupant (strongest). L2: occupant itself. L3: planets in star of owner. L4: sign owner. Lower number = stronger signification for this house.
significators.houseWise[].significators[].description requiredstringHuman-readable label for this KP significator level.
significators.houseWise[].significators[].planets requiredarray of stringPlanets signifying this house at this strength level.
significators.houseWise[].all requiredarray of stringThe four levels flattened, strongest first, repeats included: a planet that reaches the house at two levels appears once per level, so the length counts level hits. The levels beside it are the per-level view.
significators.planetWise requiredarray of object
significators.planetWise[].planet requiredstringVedic graha (planet) being analyzed for its house significations.
significators.planetWise[].signifies requiredarray of object
Example response
{
  "meta": {
    "date": "1990-07-04",
    "time": "10:12:00",
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5,
    "ayanamsa": 23.63165599,
    "ayanamsaType": "kp-newcomb",
    "houseSystem": "placidus"
  },
  "ascendant": {
    "longitude": 138.4755,
    "sign": "Leo",
    "signLord": "Sun",
    "nakshatra": "Purva Phalguni",
    "nakshatraLord": "Venus",
    "pada": 2,
    "starLord": "Venus",
    "subLord": "Rahu",
    "subSubLord": "Jupiter",
    "kpNumber": 95
  },
  "cusps": [
    {
      "house": 7,
      "longitude": 318.4755,
      "sign": "Aquarius",
      "signLord": "Saturn",
      "nakshatra": "Shatabhisha",
      "nakshatraLord": "Rahu",
      "pada": 4,
      "starLord": "Rahu",
      "subLord": "Moon",
      "subSubLord": "Jupiter",
      "kpNumber": 215
    }
  ],
  "planets": [
    {
      "planet": "Venus",
      "longitude": 47.2732,
      "sign": "Taurus",
      "signLord": "Venus",
      "house": 9,
      "nakshatra": "Rohini",
      "nakshatraLord": "Moon",
      "pada": 3,
      "starLord": "Moon",
      "subLord": "Saturn",
      "subSubLord": "Rahu",
      "kpNumber": 32,
      "retrograde": false
    }
  ],
  "nodes": {
    "rahu": {
      "longitude": 285.0726,
      "sign": "Capricorn",
      "signLord": "Saturn",
      "house": 5,
      "nakshatra": "Shravana",
      "pada": 2,
      "starLord": "Moon",
      "subLord": "Jupiter",
      "subSubLord": "Sun",
      "kpNumber": 193
    },
    "ketu": {
      "longitude": 105.0726,
      "sign": "Cancer",
      "signLord": "Moon",
      "house": 11,
      "nakshatra": "Pushya",
      "pada": 4,
      "starLord": "Saturn",
      "subLord": "Jupiter",
      "subSubLord": "Jupiter",
      "kpNumber": 72
    }
  },
  "significators": {
    "houseWise": [
      {
        "house": 7,
        "significators": [
          {
            "level": 1,
            "description": "Planets in star of occupant",
            "planets": [
              "Venus",
              "Mars"
            ]
          }
        ],
        "all": [
          "Venus",
          "Mars"
        ]
      }
    ],
    "planetWise": [
      {
        "planet": "Venus",
        "signifies": [
          {
            "level": 1,
            "houses": [
              7,
              2
            ]
          }
        ],
        "allHouses": [
          7,
          2
        ]
      }
    ]
  },
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Get KP ruling planets with optional significators

POST /api/v2/vedic-astrology/kp/ruling-planets

Calculate the 5 ruling planets at any moment using Krishnamurti Paddhati horary astrology. Returns Day Lord, Moon Sign/Star/Sub Lord, Lagna Sign/Star/Sub Lord. Optionally provide birth data (birthDate, birthTime) to include significators showing which houses each ruling planet signifies in the birth chart, which is essential for KP prediction.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
latitude requirednumberObserver latitude in decimal degrees
longitude requirednumberObserver longitude in decimal degrees
timezonenumber or stringTimezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC. IANA resolved to the DST-correct offset based on birthDate or datetime. Defaults to 5.5.
datetimestring (date-time)ISO 8601 datetime (YYYY-MM-DDTHH:MM:SS) for ruling planets. Defaults to current time. Interpreted as local time when a non-zero timezone is provided (a trailing Z is accepted but ignored); with timezone 0 it is UTC.
birthDatestring (date)Birth date (YYYY-MM-DD) to calculate significators. If provided with birthTime, response includes which houses each ruling planet signifies.
birthTimestring (time)Birth time (HH:MM:SS) for significator calculation. Required if birthDate is provided.
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/ruling-planets" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
datetime requiredstringCalculation datetime (ISO 8601)
location requiredobjectObserver location coordinates
location.latitude requirednumberObserver latitude in decimal degrees, echoed back from the request. Sets the local sidereal time behind the KP ascendant and therefore the Lagna sublord.
location.longitude requirednumberObserver longitude in decimal degrees, echoed back from the request. East is positive, west is negative.
location.timezone requirednumberNumeric UTC offset in decimal hours the calculation consumed. An IANA name sent on the request is resolved to its DST-correct offset upstream, so this is always a number.
dayLord requiredstringLord of the weekday (Sun=Sunday through Saturn=Saturday)
moonSignLord requiredstringLord of the zodiac sign where Moon is placed
moonStarLord requiredstringLord of the nakshatra where Moon is placed
moonSublord requiredstringSub-lord of the KP division where Moon is placed
moonSubSublord requiredstringSub-sub lord (SSL) of the KP division where Moon is placed
lagnaSignLord requiredstringLord of the rising zodiac sign (Ascendant)
lagnaStarLord requiredstringLord of the nakshatra where Ascendant falls
lagnaSublord requiredstringSub-lord of the KP division where Ascendant falls
lagnaSubSublord requiredstringSub-sub lord (SSL) of the KP division where Ascendant falls
Show all fieldsShow fewer fields
FieldTypeDescription
rulingPlanets requiredarray of stringUnique ruling planets in order of strength. Strongest planet appears first.
significatorsarray of objectHouses signified by each ruling planet (only when birthDate and birthTime provided). Based on 4-level KP significator hierarchy from birth chart.
significators[].planet requiredstringPlanet abbreviation.
significators[].signifies requiredarray of numberHouses this planet signifies, ordered by KP 4-level strength: L1 (planet in star of occupant, strongest), L2 (planet occupies), L3 (planet in star of owner), L4 (planet owns). First element is the strongest signification, not the occupied house.
houseThemesobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focusstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
Example response
{
  "datetime": "2025-01-15T10:30:00.000Z",
  "location": {
    "latitude": 28.6139,
    "longitude": 77.209,
    "timezone": 5.5
  },
  "dayLord": "Mercury",
  "moonSignLord": "Jupiter",
  "moonStarLord": "Saturn",
  "moonSublord": "Mercury",
  "moonSubSublord": "Venus",
  "lagnaSignLord": "Venus",
  "lagnaStarLord": "Mercury",
  "lagnaSublord": "Jupiter",
  "lagnaSubSublord": "Saturn",
  "rulingPlanets": [
    "Mercury",
    "Saturn"
  ],
  "significators": [
    {
      "planet": "Mercury",
      "signifies": [
        1,
        3
      ]
    },
    {
      "planet": "Saturn",
      "signifies": [
        1,
        4
      ]
    }
  ],
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Get KP ruling planets with significators at intervals

POST /api/v2/vedic-astrology/kp/ruling-planets-interval

Calculate ruling planets and their KP significators at regular time intervals using Krishnamurti Paddhati prashna (horary) astrology. For each interval, a full Placidus house chart is erected and significators are computed using the 4-level KP hierarchy: Level 1 (strongest) planets in star of house occupant, Level 2 occupants, Level 3 planets in star of house owner, Level 4 house owner. Returns Day Lord (sunrise-based Hindu Vara), Moon Sign/Star/Sub/Sub-Sub Lords, Lagna Sign/Star/Sub/Sub-Sub Lords, unique ruling planets set, and per-ruling-planet house significations. No birth data needed, significators come from each moments sky chart. Use for birth time rectification, muhurta selection, and KP horary number analysis.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
startDatetime requiredstring (date-time)Start of the interval range in ISO 8601 (YYYY-MM-DDTHH:MM:SS). Interpreted as local time when a non-zero timezone is provided (a trailing Z is accepted but ignored); with timezone 0 it is UTC.
endDatetime requiredstring (date-time)End of the interval range in ISO 8601 (YYYY-MM-DDTHH:MM:SS). Interpreted as local time when a non-zero timezone is provided (a trailing Z is accepted but ignored); with timezone 0 it is UTC.
intervalMinutes requiredintegerInterval between calculations in minutes (1-1440). Use 1-5 for birth time rectification.
latitude requirednumberObserver latitude in decimal degrees
longitude requirednumberObserver longitude in decimal degrees
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. When non-zero, all datetimes are treated as local time in this timezone (Z suffix is ignored). Output times are also converted to this timezone. Defaults to 5.5 (IST).
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/ruling-planets-interval" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"startDatetime":"2026-02-03T00:00:00Z","endDatetime":"2026-02-03T01:00:00Z","intervalMinutes":5,"latitude":17.385044,"longitude":78.486671}'

Response fields

FieldTypeDescription
startDatetime requiredstringStart of the KP ruling planets interval range (ISO 8601).
endDatetime requiredstringEnd of the KP ruling planets interval range (ISO 8601).
intervalMinutes requirednumberTime gap between consecutive ruling planet calculations in minutes.
location requiredobjectObserver location coordinates used for erecting the Placidus prashna chart at each interval.
location.latitude requirednumberObserver latitude used for Placidus house and Lagna (Ascendant) calculation.
location.longitude requirednumberObserver longitude used for local sidereal time and Ascendant degree.
location.timezone requirednumberTimezone offset applied to output times and sunrise-based Day Lord calculation.
totalIntervals requirednumberTotal number of intervals returned
intervals requiredarray of objectRuling planets with significators at each interval
intervals[].date requiredstringUTC date for this interval (YYYY-MM-DD).
intervals[].time requiredstringUTC time for this interval (HH:MM, 24-hour).
intervals[].datetime requiredstringFull ISO 8601 timestamp for this interval.
intervals[].dayLord requiredstringRuling planet of the weekday based on Hindu sunrise Vara. Changes at local sunrise, not midnight.
intervals[].moonSignLord requiredstringLord of the zodiac sign (rashi) where Moon is placed at this moment.
Show all fieldsShow fewer fields
FieldTypeDescription
intervals[].moonStarLord requiredstringLord of the nakshatra (star, 1 of 27) where Moon is placed. Follows Vimshottari dasha sequence.
intervals[].moonSublord requiredstringKP sublord of Moons exact position within the nakshatra subdivision (1 of 249).
intervals[].moonSubSublord requiredstringKP sub-sublord (SSL) of Moons position. Finest subdivision for precise timing.
intervals[].lagnaSignLord requiredstringLord of the Ascendant (Lagna) zodiac sign. Changes roughly every 2 hours as houses rotate.
intervals[].lagnaStarLord requiredstringLord of the nakshatra where the Ascendant degree falls.
intervals[].lagnaSublord requiredstringKP sublord of the Ascendant degree. Changes every few minutes. key for birth time rectification.
intervals[].lagnaSubSublord requiredstringKP sub-sublord of the Ascendant. Most granular level for pinpointing exact moments.
intervals[].rulingPlanets requiredarray of stringUnique set of ruling planets derived from Day Lord, Moon Sign/Star Lords, and Lagna Sign/Star Lords. In KP astrology, events manifest when dasha/transit planets match these ruling planets.
intervals[].significators requiredarray of objectKP significators for each ruling planet calculated from this moments Placidus chart. Shows which houses (1-12) each ruling planet signifies right now. Significators change as the Ascendant rotates through signs.
intervals[].significators[].planet requiredstringRuling planet name.
intervals[].significators[].signifies requiredarray of numberUnique house numbers this planet signifies, ordered by strength. Uses 4-level KP hierarchy: Level 1 (strongest) planets in star of occupant, Level 2 occupants, Level 3 planets in star of owner, Level 4 owner.
intervals[].moonSignLordSignifies requiredobjectKP 4-level significator breakdown for the Moon Sign Lord planet. Shows which houses the Moon rashi lord activates at this moment, broken down by strength tier.
intervals[].moonSignLordSignifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
intervals[].moonSignLordSignifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
intervals[].moonSignLordSignifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
intervals[].moonSignLordSignifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
intervals[].moonStarLordSignifies requiredobjectKP 4-level significator breakdown for the Moon Star Lord (nakshatra lord) planet. The star lord determines the nature of results Moon delivers.
intervals[].moonStarLordSignifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
intervals[].moonStarLordSignifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
intervals[].moonStarLordSignifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
intervals[].moonStarLordSignifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
intervals[].moonSublordSignifies requiredobjectKP 4-level significator breakdown for the Moon Sub Lord planet. The sub lord determines whether Moon-related events will manifest.
intervals[].moonSublordSignifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
intervals[].moonSublordSignifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
intervals[].moonSublordSignifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
intervals[].moonSublordSignifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
intervals[].moonSignifies requiredobjectKP 4-level significator breakdown for Moon itself. Shows which bhavas Moon directly activates based on its position and star lord in the current moment chart.
intervals[].moonSignifies.L1 requiredarray of integerLevel 1, the strongest signification (grade A). Houses influenced because this planet sits in the nakshatra (star) of a planet occupying those houses. For Rahu and Ketu, also includes the L1 houses of their agent planets (conjoined, aspecting, sign lord).
intervals[].moonSignifies.L2 requiredarray of integerLevel 2 (grade B). The house this planet physically occupies. For Rahu and Ketu, also includes houses occupied by their agent planets.
intervals[].moonSignifies.L3 requiredarray of integerLevel 3 (grade C). Houses influenced because this planet sits in the nakshatra of the sign lord (owner) of those houses. For Rahu and Ketu, also includes the L3 houses of their agent planets.
intervals[].moonSignifies.L4 requiredarray of integerLevel 4, the weakest signification (grade D). Houses this planet rules by zodiac sign ownership, up to 2 for Sun through Saturn and 3 where a sign is intercepted. Rahu and Ketu own no sign, so their L4 comes entirely from their agent planets.
houseThemes requiredobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focus requiredstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
Example response
{
  "startDatetime": "2026-02-03T00:00:00Z",
  "endDatetime": "2026-02-03T01:00:00Z",
  "intervalMinutes": 5,
  "location": {
    "latitude": 17.385044,
    "longitude": 78.486671,
    "timezone": 5.5
  },
  "totalIntervals": 13,
  "intervals": [
    {
      "date": "2026-02-03",
      "time": "00:00",
      "datetime": "2026-02-03T00:00:00.000Z",
      "dayLord": "Moon",
      "moonSignLord": "Sun",
      "moonStarLord": "Ketu",
      "moonSublord": "Moon",
      "moonSubSublord": "Venus",
      "lagnaSignLord": "Jupiter",
      "lagnaStarLord": "Sun",
      "lagnaSublord": "Venus",
      "lagnaSubSublord": "Rahu",
      "rulingPlanets": [
        "Sun",
        "Jupiter"
      ],
      "significators": [
        {
          "planet": "Jupiter",
          "signifies": [
            3,
            1
          ]
        }
      ],
      "moonSignLordSignifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "moonStarLordSignifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "moonSublordSignifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      },
      "moonSignifies": {
        "L1": [
          11,
          6
        ],
        "L2": [
          11
        ],
        "L3": [
          3,
          8
        ],
        "L4": [
          5,
          6
        ]
      }
    }
  ],
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Find KP sublord changes

POST /api/v2/vedic-astrology/kp/sublord-changes

Track when planets cross KP sublord boundaries (1-249 divisions) for precise Krishnamurti Paddhati event timing. Returns exact timestamps when a planet transitions between sublords, essential for prashna kundali analysis and dasha predictions. Use this to find favorable windows when benefic sublords are active. Supports Sun, Moon, Mars, Mercury, Jupiter, Venus, and Saturn tracking over any window up to 365 days.

Request body

FieldTypeDescription
planet requiredstring enumPlanet to track (case-insensitive). Valid values: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn
startDate requiredstring (date)First day of the search (YYYY-MM-DD), a calendar day in `timezone`.
endDate requiredstring (date)Last day of the search, inclusive (YYYY-MM-DD), a calendar day in `timezone`. Not before startDate, at most 365 days after it.
timezonenumber or stringIANA name (e.g. "America/New_York", "Europe/London"), a fixed offset like "+05:30", OR decimal hours from UTC. One offset is taken from startDate (DST-correct for that date) and used for the whole range, so a window crossing a daylight-saving change is read on the earlier offset throughout; send a fixed offset if you need that explicit. The two dates are read as calendar days in this timezone and output times are converted to it, so one date with 5.5 is that whole Indian day. Defaults to 0 (UTC).
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/sublord-changes" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"planet":"Moon","startDate":"2025-01-01","endDate":"2025-01-31"}'

Response fields

FieldTypeDescription
planet requiredstringVedic graha tracked for KP sublord transitions across the 249-division zodiac.
startDate requiredstringBeginning of the sublord change search range (YYYY-MM-DD).
endDate requiredstringEnd of the sublord change search range (YYYY-MM-DD).
totalChanges requirednumberTotal Krishnamurti sublord transitions detected. The Moon, the fastest body, crosses about 9 sublords a day.
changes requiredarray of objectChronological list of KP sublord boundary crossings. Each entry marks when the tracked graha moves from one Krishnamurti subdivision to the next in the 249-part zodiac.
changes[].date requiredstringDate of the sublord boundary crossing (YYYY-MM-DD). Adjusted to requested timezone.
changes[].time requiredstringSublord transition time (HH:MM, 24-hour): the instant is found to the second and shown to the minute it falls in. Adjusted to requested timezone.
changes[].datetime requiredstringFull datetime of the KP sublord change. Adjusted to requested timezone for prashna kundali timing.
changes[].fromKp requirednumberPrevious KP number (1-249) in the Vimshottari-based zodiac subdivision the planet occupied.
changes[].toKp requirednumberNew KP number (1-249) the planet enters. Each number maps to a unique star lord and sublord combination.
changes[].fromSublord requiredstringKP sublord planet before transition. The sublord determines whether an event signified by the star lord will manifest.
changes[].toSublord requiredstringNew KP sublord planet after transition. A change in sublord shifts the houses signified by the tracked planet.
changes[].fromNakshatraLord requiredstringNakshatra lord (star lord) before transition. Follows the Vimshottari dasha sequence of 9 planets.
changes[].toNakshatraLord requiredstringNakshatra lord after transition. Changes only when the planet crosses a nakshatra boundary (every 13d20m).
Example response
{
  "planet": "Moon",
  "startDate": "2025-01-01",
  "endDate": "2025-01-31",
  "totalChanges": 42,
  "changes": [
    {
      "date": "2025-01-15",
      "time": "13:53",
      "datetime": "2025-01-15T13:53:00",
      "fromKp": 45,
      "toKp": 46,
      "fromSublord": "Mercury",
      "toSublord": "Ketu",
      "fromNakshatraLord": "Mars",
      "toNakshatraLord": "Mars"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Find KP rasi ingress times

POST /api/v2/vedic-astrology/kp/rasi-changes

Track when planets enter new zodiac signs (rasi) with precise ingress timestamps. Essential for Vedic astrology transit analysis, muhurta selection, and predictive horoscope readings. Returns exact times when planets cross sign boundaries (0, 30, 60 degrees etc). Use for tracking Sun sankranti dates, Moon sign changes for panchang, or outer planet transits for yearly predictions.

Request body

FieldTypeDescription
planet requiredstring enumPlanet to track (case-insensitive). Valid values: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn
startDate requiredstring (date)First day of the search (YYYY-MM-DD), a calendar day in `timezone`.
endDate requiredstring (date)Last day of the search, inclusive (YYYY-MM-DD), a calendar day in `timezone`. Not before startDate, at most 365 days after it.
timezonenumber or stringIANA name (e.g. "America/New_York", "Europe/London"), a fixed offset like "+05:30", OR decimal hours from UTC. One offset is taken from startDate (DST-correct for that date) and used for the whole range, so a window crossing a daylight-saving change is read on the earlier offset throughout; send a fixed offset if you need that explicit. The two dates are read as calendar days in this timezone and output times are converted to it, so one date with 5.5 is that whole Indian day. Defaults to 0 (UTC).
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/rasi-changes" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"planet":"Sun","startDate":"2025-01-01","endDate":"2025-12-31"}'

Response fields

FieldTypeDescription
planet requiredstringVedic graha being tracked for rasi parivartan (sign ingress) events.
startDate requiredstringBeginning of the rasi change search range (YYYY-MM-DD).
endDate requiredstringEnd of the rasi change search range (YYYY-MM-DD).
totalChanges requirednumberTotal rasi parivartan events detected in the date range. Moon averages 12-13 per month, Sun once per month.
changes requiredarray of objectChronological list of rasi parivartan (zodiac sign change) events with precise ingress timestamps. Each entry marks when the tracked graha crosses a 30-degree sign boundary.
changes[].date requiredstringDate of the rasi ingress event (YYYY-MM-DD). Adjusted to requested timezone for local panchang use.
changes[].time requiredstringIngress time (HH:MM, 24-hour): the instant is found to the second and shown to the minute it falls in. Adjusted to requested timezone.
changes[].datetime requiredstringFull rasi parivartan datetime. Adjusted to requested timezone for transit calendar integration.
changes[].fromSign requiredstringZodiac sign (rashi) the planet is leaving. One of 12 sidereal signs using KP ayanamsa.
changes[].fromSignLord requiredstringRashi lord (planetary ruler) of the departing sign. Determines the Vimshottari dasha connection.
changes[].toSign requiredstringNew zodiac sign entered by the planet. Marks the beginning of a new transit phase in Vedic gochar analysis.
changes[].toSignLord requiredstringRashi lord of the newly entered sign. Key for KP significator analysis and dasha-transit matching.
Example response
{
  "planet": "Sun",
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "totalChanges": 12,
  "changes": [
    {
      "date": "2025-01-14",
      "time": "08:00",
      "datetime": "2025-01-14T08:00:00",
      "fromSign": "Sagittarius",
      "fromSignLord": "Jupiter",
      "toSign": "Capricorn",
      "toSignLord": "Saturn"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get KP planets at time intervals

POST /api/v2/vedic-astrology/kp/planets-interval

Calculate positions of all 9 planets (Sun through Saturn, Rahu, Ketu) at regular time intervals with full KP hierarchy: sign lord, star lord, sublord, and sub-sublord. Returns longitude, zodiac sign, nakshatra, sublord, sub-sublord, and KP number (1-249) for each planet at each timestamp. Ideal for tracking planetary motion, finding optimal muhurta windows, analyzing transit patterns, and building KP ephemeris tables. Maximum range of 7 days with 15-minute to 24-hour intervals.

Request body

FieldTypeDescription
startDatetime requiredstring (date-time)Start datetime in ISO 8601 (YYYY-MM-DDTHH:MM:SS). Interpreted as local time when a non-zero timezone is provided (a trailing Z is accepted but ignored); with timezone 0 it is UTC.
endDatetime requiredstring (date-time)End datetime in ISO 8601 (YYYY-MM-DDTHH:MM:SS). Maximum 7 days from start. Interpreted as local time when a non-zero timezone is provided (a trailing Z is accepted but ignored); with timezone 0 it is UTC.
intervalMinutes requirednumberTime between calculations in minutes. Range: 15 (quarter-hourly) to 1440 (daily).
latitude requirednumberObserver latitude in decimal degrees (for future Lagna calculations)
longitude requirednumberObserver longitude in decimal degrees (for future Lagna calculations)
timezonenumber or stringIANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC. IANA resolved to the DST-correct offset for the startDatetime date. When non-zero, all datetimes are treated as local time in this timezone (Z suffix is ignored). Defaults to 0 (UTC).
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/planets-interval" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"startDatetime":"2025-01-15T00:00:00Z","endDatetime":"2025-01-15T23:59:00Z","intervalMinutes":60,"latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
startDatetime requiredstringStart of the KP ephemeris interval range (ISO 8601).
endDatetime requiredstringEnd of the KP ephemeris interval range (ISO 8601).
intervalMinutes requirednumberTime gap between consecutive planetary snapshots in minutes. Determines the granularity of the KP transit table.
totalIntervals requirednumberTotal number of time points calculated (inclusive of both start and end).
ayanamsa requiredstringAyanamsa system used for this calculation. "kp-newcomb" = KP-Newcomb (dynamic), "kp-old" = Krishnamurti original (constant rate), "lahiri" = Lahiri/Chitrapaksha.
ayanamsaValue requirednumberAyanamsa value in degrees used for sidereal conversion. Verify this against your reference source to confirm correct ayanamsa is applied.
intervals requiredarray of objectArray of planetary snapshots at each time interval
intervals[].date requiredstringDate for this data point (YYYY-MM-DD). Adjusted to requested timezone.
intervals[].time requiredstringTime for this data point (HH:MM). Adjusted to requested timezone.
intervals[].datetime requiredstringFull datetime for this data point. Adjusted to requested timezone.
intervals[].planets requiredobjectPlanet positions keyed by planet name (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu)
Example response
{
  "startDatetime": "2025-01-15T00:00:00Z",
  "endDatetime": "2025-01-15T23:59:00Z",
  "intervalMinutes": 60,
  "totalIntervals": 24,
  "ayanamsa": "kp-newcomb",
  "ayanamsaValue": 24.2223,
  "intervals": [
    {
      "date": "2025-01-15",
      "time": "00:00",
      "datetime": "2025-01-15T00:00:00",
      "planets": {
        "Sun": {
          "longitude": 270.7362,
          "degreeInSign": 0.7362,
          "sign": "Capricorn",
          "signLord": "Saturn",
          "nakshatra": "Uttara Ashadha",
          "nakshatraLord": "Sun",
          "sublord": "Rahu",
          "subSublord": "Venus",
          "kpNumber": 188,
          "isRetrograde": false
        }
      }
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Cast a KP horary (Prashna) chart from a number 1-249 - KP Horary API

POST /api/v2/vedic-astrology/kp/horary

Cast a Krishnamurti Paddhati horary chart, also called Prashna, from a number between 1 and 249 given by the querent plus the moment and place the question is judged. NO BIRTH DETAILS ARE NEEDED, which is what makes horary the KP answer when birth time is unknown or unreliable. The number maps to one of the 249 KP sub divisions and sets the Ascendant; the twelve Placidus cusps follow from that Ascendant at the given latitude, and every planetary position comes from the real sky at the moment of the question. Returns the Ascendant with its sub lord, all twelve cusps with star lord and sub lord, the nine grahas placed against those cusps, the five ruling planets for validating the chart, and four-level significators for judging which houses each graha supports. KP horary API, Prashna kundali calculator, 249 horary number chart, Krishnamurti Paddhati horary, cusp sub lord question answering.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
horaryNumber requiredintegerHorary number from 1 to 249, given by the querent while focused on their question. It maps to one of the 249 KP sub divisions of the zodiac, and that division sets the Ascendant of the chart. The querent should give the first number that comes to mind and use it once for that question; the astrologer never chooses it. Numbers outside 1 to 249 are rejected rather than wrapped, because a wrapped number would silently answer a different question.
date requiredstring (date)Date the question was taken up for judgment, YYYY-MM-DD. Not a birth date: a horary chart needs no birth details at all, which is the point of the method.
time requiredstring (time)Time the question was taken up for judgment, 24-hour HH:MM:SS. In KP practice this is the moment the astrologer receives and understands the question, not the moment the querent first thought of it. It sets every planetary position and all twelve cusps except the Ascendant.
latitude requirednumberLatitude where the question is judged, decimal degrees. The house cusps are Placidus and therefore latitude dependent, so this is the place of judgment, not the querent birthplace.
longitude requirednumberLongitude where the question is judged, decimal degrees.
timezonenumber or stringTimezone: IANA name (e.g. "Asia/Kolkata") OR decimal hours from UTC. Defaults to 5.5.
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula (most common for KP). "kp-old" uses the Krishnamurti original table. "lahiri" uses Lahiri/Chitrapaksha ayanamsa matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa, about 1.45 degrees below Lahiri. "custom" allows providing your own value via ayanamsaValue. Defaults to "kp-newcomb".
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/horary" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"horaryNumber":108,"date":"2026-03-08","time":"14:30:00","latitude":19.076,"longitude":72.8777}'

Response fields

FieldTypeDescription
horaryNumber requiredintegerThe number that was asked for, echoed so a stored chart is self describing.
questionTime requiredstringUTC instant the chart was cast for, resolved from the date, time and timezone.
ayanamsaType requiredstringSidereal frame used, echoed back.
ayanamsaDegrees requirednumberDegrees subtracted from every tropical longitude to produce this chart. Compare it against your reference software before treating a placement difference as a disagreement.
ascendant requiredobjectThe Ascendant the horary number produced. This is the ONLY part of the chart that comes from the number; everything else comes from the sky at the moment of the question.
ascendant.longitude requirednumberSidereal longitude of the horary Ascendant, taken as the MIDPOINT of the sub division the number names.
ascendant.degreeInSign requirednumberDegrees into the sign, 0 to 30, which is what a chart displays.
ascendant.sign requiredstringZodiac sign (rashi) of this point.
ascendant.star requiredstringNakshatra (star) this point falls in.
ascendant.starLord requiredstringNakshatra lord (star lord), the second level of the KP hierarchy.
ascendant.subLord requiredstringSub lord, the decisive level in KP. A cusp sub lord is what answers the question: it is read for whether the matter is promised, before any timing is attempted.
ascendant.kpNumber requiredintegerKP horary number 1 to 249 of the sub division holding this point. Matches the standard published KP table.
ascendant.spanFrom requirednumberSidereal longitude where this numbered sub division begins.
ascendant.spanTo requirednumberSidereal longitude where it ends. The Ascendant sits midway between this and spanFrom.
Show all fieldsShow fewer fields
FieldTypeDescription
cusps requiredarray of objectTwelve Placidus cusps, house 1 first. House 1 is the horary Ascendant; the other eleven follow from the house frame that Ascendant implies at this latitude.
cusps[].house requiredintegerHouse (bhava) number 1 to 12.
cusps[].longitude requirednumberSidereal longitude of the cusp.
cusps[].sign requiredstringZodiac sign (rashi) of this point.
cusps[].star requiredstringNakshatra (star) this point falls in.
cusps[].starLord requiredstringNakshatra lord (star lord), the second level of the KP hierarchy.
cusps[].subLord requiredstringSub lord, the decisive level in KP. A cusp sub lord is what answers the question: it is read for whether the matter is promised, before any timing is attempted.
cusps[].kpNumber requiredintegerKP horary number 1 to 249 of the sub division holding this point. Matches the standard published KP table.
planets requiredarray of objectThe nine grahas at the moment of the question, placed against the horary cusps. These come from the real sky, not from the number.
planets[].planet requiredstringGraha name.
planets[].longitude requirednumberSidereal longitude at the moment of the question.
planets[].house requiredintegerPlacidus house the graha occupies in this horary chart, counted against the cusps above rather than by whole sign.
planets[].isRetrograde requiredbooleanRetrograde motion flag.
planets[].subSubLord requiredstringSub-sub lord, the fourth KP level, used to refine timing.
planets[].sign requiredstringZodiac sign (rashi) of this point.
planets[].star requiredstringNakshatra (star) this point falls in.
planets[].starLord requiredstringNakshatra lord (star lord), the second level of the KP hierarchy.
planets[].subLord requiredstringSub lord, the decisive level in KP. A cusp sub lord is what answers the question: it is read for whether the matter is promised, before any timing is attempted.
planets[].kpNumber requiredintegerKP horary number 1 to 249 of the sub division holding this point. Matches the standard published KP table.
rulingPlanets requiredobjectRuling planets at the moment of the question. NOTE the lagna values here are from the TIME-based ascendant, which is the classical ruling-planet definition, not from the horary number.
rulingPlanets.dayLord requiredstringLord of the Hindu weekday, counted from sunrise.
rulingPlanets.moonSignLord requiredstringSign lord of the Moon.
rulingPlanets.moonStarLord requiredstringStar lord of the Moon.
rulingPlanets.moonSublord requiredstringSub lord of the Moon.
rulingPlanets.moonSubSublord requiredstringSub-sub lord of the Moon.
rulingPlanets.lagnaSignLord requiredstringSign lord of the ascendant at the question moment.
rulingPlanets.lagnaStarLord requiredstringStar lord of that ascendant.
rulingPlanets.lagnaSublord requiredstringSub lord of that ascendant.
rulingPlanets.lagnaSubSublord requiredstringSub-sub lord of that ascendant.
rulingPlanets.rulingPlanets requiredarray of stringThe distinct ruling planets in KP order of strength. They validate the chart: when they repeat the significators of the houses the question needs, the judgment is considered reliable.
significators requiredobjectKP significators for event prediction and timing. Shows which planets signify each house (house-wise) and which houses each planet signifies (planet-wise). Strength order: Level 1 (planets in star of occupant) > Level 2 (occupants) > Level 3 (planets in star of owner) > Level 4 (house owner).
significators.houseWise requiredarray of object
significators.houseWise[].house requirednumberHouse number 1-12
significators.houseWise[].significators requiredarray of object
significators.houseWise[].significators[].level requirednumberKP significator strength level (1-4). L1: planets in star of occupant (strongest). L2: occupant itself. L3: planets in star of owner. L4: sign owner. Lower number = stronger signification for this house.
significators.houseWise[].significators[].description requiredstringHuman-readable label for this KP significator level.
significators.houseWise[].significators[].planets requiredarray of stringPlanets signifying this house at this strength level.
significators.houseWise[].all requiredarray of stringThe four levels flattened, strongest first, repeats included: a planet that reaches the house at two levels appears once per level, so the length counts level hits. The levels beside it are the per-level view.
significators.planetWise requiredarray of object
significators.planetWise[].planet requiredstringVedic graha (planet) being analyzed for its house significations.
significators.planetWise[].signifies requiredarray of object
significators.planetWise[].signifies[].level requirednumberKP significator strength level (1-4). L1 strongest, L4 weakest.
significators.planetWise[].signifies[].houses requiredarray of numberHouse numbers this planet signifies at this strength level.
significators.planetWise[].allHouses requiredarray of numberThe four levels flattened, strongest first, repeats included: a house appears once per level the planet reaches it at, so the length counts level hits. The levels beside it are the per-level view.
houseThemes requiredobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focus requiredstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
Example response
{
  "horaryNumber": 108,
  "questionTime": "2026-03-08T09:00:00.000Z",
  "ayanamsaType": "kp-newcomb",
  "ayanamsaDegrees": 24.2247,
  "ascendant": {
    "longitude": 154,
    "degreeInSign": 4,
    "sign": "Virgo",
    "star": "Uttara Phalguni",
    "starLord": "Sun",
    "subLord": "Saturn",
    "kpNumber": 108,
    "spanFrom": 153,
    "spanTo": 155.1111
  },
  "cusps": [
    {
      "house": 6,
      "longitude": 210.44,
      "sign": "Virgo",
      "star": "Uttara Phalguni",
      "starLord": "Sun",
      "subLord": "Saturn",
      "kpNumber": 108
    }
  ],
  "planets": [
    {
      "planet": "Jupiter",
      "longitude": 95.31,
      "house": 11,
      "isRetrograde": false,
      "subSubLord": "Venus",
      "sign": "Virgo",
      "star": "Uttara Phalguni",
      "starLord": "Sun",
      "subLord": "Saturn",
      "kpNumber": 108
    }
  ],
  "rulingPlanets": {
    "dayLord": "Sun",
    "moonSignLord": "Venus",
    "moonStarLord": "Rahu",
    "moonSublord": "Jupiter",
    "moonSubSublord": "Saturn",
    "lagnaSignLord": "Mercury",
    "lagnaStarLord": "Sun",
    "lagnaSublord": "Venus",
    "lagnaSubSublord": "Mars",
    "rulingPlanets": [
      "Sun",
      "Venus"
    ]
  },
  "significators": {
    "houseWise": [
      {
        "house": 7,
        "significators": [
          {
            "level": 1,
            "description": "Planets in star of occupant",
            "planets": [
              "Venus",
              "Mars"
            ]
          }
        ],
        "all": [
          "Venus",
          "Mars"
        ]
      }
    ],
    "planetWise": [
      {
        "planet": "Venus",
        "signifies": [
          {
            "level": 1,
            "houses": [
              7,
              2
            ]
          }
        ],
        "allHouses": [
          7,
          2
        ]
      }
    ]
  },
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Daily finance score from four KP sub lord layers - KP Daily Finance API

POST /api/v2/vedic-astrology/kp/daily-finance

A Krishnamurti Paddhati daily finance reading for one native on one date. Four KP layers are each scored against the money houses and weighed into one number: the cusp sub lords of the gain and loss houses (structural promise), the four running Vimshottari lords at the reading moment (timing), the ruling planets of that moment (the pulse), and the sub lord windows the Moon passes through across the civil day (the hour hand), with the best and worst windows named. Weights cusps 30, dasha 40, rulingPlanets 15, moonWindows 15. Every input is the shipped KP arithmetic: Placidus cusps, the 249 sub lord table, the four tier significator rule, the Vimshottari chain to the sookshma level, all in the one ayanamsa you choose. Every row prints its planet, its standing against the two sets and its score, so the number can be audited rather than trusted. The house groups, the classification, the inversion on the loss cusps, the retrograde penalty, the level weights and the layer weights are a KP practitioner convention adopted as the published convention of this route: no classical KP text weighs these four layers against each other, and every table behind the number is printed so the result can be checked line by line rather than trusted. The score measures what the method outputs for the day, never the probability of a gain or a loss. Override the two house groups to run your own school.

Request body

FieldTypeDescription
birthDate requiredstring (date)Birth date, YYYY-MM-DD. Fixes the Placidus cusps, the four tier significators and the Vimshottari balance every layer reads.
birthTime requiredstring (time)Birth time, HH:MM:SS, 24 hour, local to the birth place. The cusp sub lords move about one sub every four minutes of clock time, so this is the input the whole reading is most sensitive to.
latitude requirednumberBirth latitude in decimal degrees. Sets the Placidus cusps; also the place the ruling planets and the Moon windows are read at.
longitude requirednumberBirth longitude in decimal degrees, east positive.
timezonenumber or stringTimezone as an IANA name (Asia/Kolkata) or decimal hours from UTC. Applies to the birth time, to the reading date and time, and to every local timestamp in the response. IANA names resolve to the offset in force on the date being read.
datestring (date)Civil date to read, YYYY-MM-DD in the request timezone. Defaults to today (UTC). The Moon windows cover this date from midnight to midnight.
timestring (time)Reading moment on that date, HH:MM:SS local. The ruling planets and the running sookshma lord are read at this instant. Defaults to 12:00:00; pass a market open or any hour for an intraday read.
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the Rahu and Ketu positions. Mean is the traditional Vedic default and what printed panchangs use; the choice can move a KP sub-lord in narrow boundary cases, where a span can be as small as 0.5 degrees. Defaults to "mean".
gainHousesarray of integerHouses whose significators count as gain, 1 to 12. Defaults to the convention, 2 and 11. Override it to run your own school: the two lists may not share a house.
lossHousesarray of integerHouses whose significators count as loss, 1 to 12. Defaults to the convention, 6 and 8 and 12. Override it to run your own school: the two lists may not share a house.
weightsobjectLayer weights in percent, all four required, summing to 100. Defaults to the convention, cusps 30, dasha 40, rulingPlanets 15, moonWindows 15. Seventy percent of the default sits on the cusps and the outer dasha levels, which hold for months, so a chart reads inside a narrow band all month and the bands separate charts more than days. Move weight onto rulingPlanets and moonWindows for a reading that turns with the day.
weights.cusps requirednumberPercent of the final score the cusps layer carries.
weights.dasha requirednumberPercent of the final score the dasha layer carries.
Show all fieldsShow fewer fields
FieldTypeDescription
weights.rulingPlanets requirednumberPercent of the final score the rulingPlanets layer carries.
weights.moonWindows requirednumberPercent of the final score the moonWindows layer carries.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/kp/daily-finance" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"birthDate":"1990-06-15","birthTime":"07:30:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
date requiredstringThe civil date read.
readingAt requiredstringThe reading moment, local datetime in the request timezone. The ruling planets and the dasha lords are read here.
ayanamsastring enumAyanamsa system for sidereal conversion. "kp-newcomb" uses the KP-Newcomb dynamic formula, the most common choice for KP astrology. "kp-old" uses the Krishnamurti original table from KP Reader-1 with constant precession rate. "lahiri" uses Lahiri/Chitrapaksha ayanamsa, matching most traditional Vedic software. "raman" uses the B.V. Raman ayanamsa from Hindu Predictive Astrology, a recognised traditional school that sits about 1.45 degrees below Lahiri. Defaults to "kp-newcomb".
ayanamsaDegrees requirednumberDegrees subtracted from the tropical longitudes, resolved at the birth date. One frame for the whole reading: cusps, significators, Vimshottari balance, ruling planets and Moon windows alike.
houses requiredobject
houses.gain requiredarray of numberThe gain houses this reading used, the request override or the convention.
houses.loss requiredarray of numberThe loss houses this reading used, the request override or the convention.
significators requiredobject
significators.gain requiredarray of stringEvery planet that signifies at least one gain house at any tier. The set every row is judged against.
significators.loss requiredarray of stringEvery planet that signifies at least one loss house at any tier. A planet in both sets reads "mixed" everywhere.
significators.byHouse requiredarray of objectThe per-house evidence the two sets are built from, so any row can be traced to the tier that put its planet in a set.
significators.byHouse[].house requirednumberThe house, 1 to 12.
significators.byHouse[].group requiredstring enumWhich set this house feeds. Canonical English machine value.
significators.byHouse[].significators requiredarray of stringThe four tier significators of the house, strongest tier first: planets in the star of an occupant, occupants, planets in the star of the sign lord, the sign lord. A planet appears once per tier it reaches the house at, exactly as the KP chart route lists them.
Show all fieldsShow fewer fields
FieldTypeDescription
layers requiredobject
layers.cusps requiredobjectStructural promise: each cusp of the two groups judged by its sub lord, the loss cusps inverted, the mean over the rows.
layers.cusps.layer requiredstring enumWhich layer this is. Canonical English machine value, the same as its key.
layers.cusps.weight requirednumberPercent of the final score this layer carries. The four weights are cusps 30, dasha 40, rulingPlanets 15, moonWindows 15.
layers.cusps.score requirednumberThe layer on its own, 0 to 100, one decimal: the mean of its rows, or for the dasha layer the level-weighted sum. The final score is the weight-sum of the four layer scores.
layers.cusps.rows requiredarray of object
layers.cusps.rows[].inGain requiredbooleanWhether the planet signifies at least one gain house at any of the four tiers.
layers.cusps.rows[].inLoss requiredbooleanWhether the planet signifies at least one loss house at any of the four tiers.
layers.cusps.rows[].verdict requiredstring enumThe one classification every layer uses: "favourable" when the planet signifies a gain house and no loss house (100), "mixed" when it signifies both (50), "unfavourable" when it signifies a loss house and no gain house (0), "neutral" when it signifies neither (50). Canonical English machine value.
layers.cusps.rows[].house requirednumberThe cusp judged, 1 to 12.
layers.cusps.rows[].longitude requirednumberSidereal longitude of the cusp in the requested ayanamsa, degrees.
layers.cusps.rows[].signLord requiredstringLord of the sign the cusp falls in.
layers.cusps.rows[].starLord requiredstringLord of the nakshatra the cusp falls in.
layers.cusps.rows[].subLord requiredstringThe KP sub lord of the cusp, the one lord that decides whether the house delivers. It is the planet the row classifies.
layers.cusps.rows[].inverted requiredbooleanTrue on a loss house, where the verdict score is inverted: a loss cusp whose sub lord signifies only loss scores 100, because a denied loss is good news for the native.
layers.cusps.rows[].score requirednumberThe verdict score, 100 / 50 / 0 / 50, after the inversion on a loss house.
layers.dasha requiredobjectTiming: the four running Vimshottari lords at the reading moment, in the same sidereal frame as the chart, each judged and penalised if retrograde, then weighed by level.
layers.dasha.layer requiredstring enumWhich layer this is. Canonical English machine value, the same as its key.
layers.dasha.weight requirednumberPercent of the final score this layer carries. The four weights are cusps 30, dasha 40, rulingPlanets 15, moonWindows 15.
layers.dasha.score requirednumberThe layer on its own, 0 to 100, one decimal: the mean of its rows, or for the dasha layer the level-weighted sum. The final score is the weight-sum of the four layer scores.
layers.dasha.rows requiredarray of object
layers.dasha.rows[].inGain requiredbooleanWhether the planet signifies at least one gain house at any of the four tiers.
layers.dasha.rows[].inLoss requiredbooleanWhether the planet signifies at least one loss house at any of the four tiers.
layers.dasha.rows[].verdict requiredstring enumThe one classification every layer uses: "favourable" when the planet signifies a gain house and no loss house (100), "mixed" when it signifies both (50), "unfavourable" when it signifies a loss house and no gain house (0), "neutral" when it signifies neither (50). Canonical English machine value.
layers.dasha.rows[].level requiredstring enumWhich Vimshottari level this lord runs, outermost first.
layers.dasha.rows[].lord requiredstringThe running lord at this level.
layers.dasha.rows[].startDate requiredstringISO instant the period began.
layers.dasha.rows[].endDate requiredstringISO instant the period ends.
layers.dasha.rows[].retrograde requiredbooleanWhether the lord is retrograde in transit at the reading moment. Rahu and Ketu always are. Costs 10 points, floored at 0.
layers.dasha.rows[].score requirednumberThe verdict score after the retrograde penalty.
layers.dasha.rows[].weight requirednumberPercent of the dasha layer this level carries, the finer levels weighed more: mahadasha 10, antardasha 20, pratyantardasha 30, sookshmaDasha 40.
layers.rulingPlanets requiredobjectThe pulse of the moment: the KP ruling planets at the reading moment, each once, judged and penalised if retrograde, the mean over the rows.
layers.rulingPlanets.layer requiredstring enumWhich layer this is. Canonical English machine value, the same as its key.
layers.rulingPlanets.weight requirednumberPercent of the final score this layer carries. The four weights are cusps 30, dasha 40, rulingPlanets 15, moonWindows 15.
layers.rulingPlanets.score requirednumberThe layer on its own, 0 to 100, one decimal: the mean of its rows, or for the dasha layer the level-weighted sum. The final score is the weight-sum of the four layer scores.
layers.rulingPlanets.rows requiredarray of object
layers.rulingPlanets.rows[].inGain requiredbooleanWhether the planet signifies at least one gain house at any of the four tiers.
layers.rulingPlanets.rows[].inLoss requiredbooleanWhether the planet signifies at least one loss house at any of the four tiers.
layers.rulingPlanets.rows[].verdict requiredstring enumThe one classification every layer uses: "favourable" when the planet signifies a gain house and no loss house (100), "mixed" when it signifies both (50), "unfavourable" when it signifies a loss house and no gain house (0), "neutral" when it signifies neither (50). Canonical English machine value.
layers.rulingPlanets.rows[].planet requiredstringOne ruling planet of the reading moment, listed once: the day lord, the sign and star lords of the Moon, and the sign and star lords of the ascendant.
layers.rulingPlanets.rows[].retrograde requiredbooleanWhether the planet is retrograde in transit at the reading moment. Costs 10 points, floored at 0.
layers.rulingPlanets.rows[].score requirednumberThe verdict score after the penalty.
layers.moonWindows requiredobjectThe hour hand: every stretch of the civil day over which the Moon holds one sub lord, each judged, the mean over the windows. Window boundaries are found by bisection and printed to the second.
layers.moonWindows.layer requiredstring enumWhich layer this is. Canonical English machine value, the same as its key.
layers.moonWindows.weight requirednumberPercent of the final score this layer carries. The four weights are cusps 30, dasha 40, rulingPlanets 15, moonWindows 15.
layers.moonWindows.score requirednumberThe layer on its own, 0 to 100, one decimal: the mean of its rows, or for the dasha layer the level-weighted sum. The final score is the weight-sum of the four layer scores.
layers.moonWindows.rows requiredarray of object
layers.moonWindows.rows[].inGain requiredbooleanWhether the planet signifies at least one gain house at any of the four tiers.
layers.moonWindows.rows[].inLoss requiredbooleanWhether the planet signifies at least one loss house at any of the four tiers.
layers.moonWindows.rows[].verdict requiredstring enumThe one classification every layer uses: "favourable" when the planet signifies a gain house and no loss house (100), "mixed" when it signifies both (50), "unfavourable" when it signifies a loss house and no gain house (0), "neutral" when it signifies neither (50). Canonical English machine value.
layers.moonWindows.rows[].from requiredstringLocal datetime the window opens, in the request timezone.
layers.moonWindows.rows[].to requiredstringLocal datetime the window closes. The last window of the day closes at the next midnight.
layers.moonWindows.rows[].subLord requiredstringThe KP sub lord the Moon holds through this window, the planet the row classifies.
layers.moonWindows.rows[].score requirednumberThe verdict score of the window.
score requirednumberThe weight-sum of the four layer scores, 0 to 100, one decimal: cusps 30, dasha 40, rulingPlanets 15, moonWindows 15, each divided by 100. Recomputable from the layers printed above. The house groups, the classification, the inversion on the loss cusps, the retrograde penalty, the level weights and the layer weights are a KP practitioner convention adopted as the published convention of this route: no classical KP text weighs these four layers against each other, and every table behind the number is printed so the result can be checked line by line rather than trusted. The score measures what the method outputs for the day, never the probability of a gain or a loss.
band requiredstring enumThe score as one of five bands, each entered at its edge: "strong" from 70, "favourable" from 55, "mixed" from 45, "caution" from 30, "unfavourable" below 30. "mixed" is the ordinary day. Canonical English machine values.
bestWindow requiredobjectnullThe favourable Moon window of the day, the longest when several qualify, or null when the day has none. The one stretch the method backs outright.
bestWindow.inGain requiredbooleanWhether the planet signifies at least one gain house at any of the four tiers.
bestWindow.inLoss requiredbooleanWhether the planet signifies at least one loss house at any of the four tiers.
bestWindow.verdict requiredstring enumThe one classification every layer uses: "favourable" when the planet signifies a gain house and no loss house (100), "mixed" when it signifies both (50), "unfavourable" when it signifies a loss house and no gain house (0), "neutral" when it signifies neither (50). Canonical English machine value.
bestWindow.from requiredstringLocal datetime the window opens, in the request timezone.
bestWindow.to requiredstringLocal datetime the window closes. The last window of the day closes at the next midnight.
bestWindow.subLord requiredstringThe KP sub lord the Moon holds through this window, the planet the row classifies.
bestWindow.score requirednumberThe verdict score of the window.
worstWindows requiredarray of objectEvery unfavourable Moon window of the day, in clock order.
worstWindows[].inGain requiredbooleanWhether the planet signifies at least one gain house at any of the four tiers.
Example response
{
  "date": "2026-09-14",
  "readingAt": "2026-09-14T12:00:00",
  "ayanamsa": "kp-newcomb",
  "ayanamsaDegrees": 23.6267,
  "houses": {
    "gain": [
      2,
      11
    ],
    "loss": [
      6,
      8
    ]
  },
  "significators": {
    "gain": [
      "Mercury",
      "Rahu"
    ],
    "loss": [
      "Sun",
      "Mars"
    ],
    "byHouse": [
      {
        "house": 11,
        "group": "gain",
        "significators": [
          "Mars",
          "Venus"
        ]
      }
    ]
  },
  "layers": {
    "cusps": {
      "layer": "cusps",
      "weight": 30,
      "score": 50,
      "rows": [
        {
          "inGain": true,
          "inLoss": true,
          "verdict": "mixed",
          "house": 2,
          "longitude": 110.4536,
          "signLord": "Moon",
          "starLord": "Mercury",
          "subLord": "Venus",
          "inverted": false,
          "score": 50
        }
      ]
    },
    "dasha": {
      "layer": "dasha",
      "weight": 40,
      "score": 50,
      "rows": [
        {
          "inGain": true,
          "inLoss": true,
          "verdict": "mixed",
          "level": "antardasha",
          "lord": "Rahu",
          "startDate": "2025-03-18T00:00:00.000Z",
          "endDate": "2028-01-23T00:00:00.000Z",
          "retrograde": true,
          "score": 40,
          "weight": 20
        }
      ]
    },
    "rulingPlanets": {
      "layer": "rulingPlanets",
      "weight": 15,
      "score": 50,
      "rows": [
        {
          "inGain": true,
          "inLoss": true,
          "verdict": "mixed",
          "planet": "Saturn",
          "retrograde": true,
          "score": 0
        }
      ]
    },
    "moonWindows": {
      "layer": "moonWindows",
      "weight": 15,
      "score": 50,
      "rows": [
        {
          "inGain": true,
          "inLoss": true,
          "verdict": "mixed",
          "from": "2026-09-14T06:14:00",
          "to": "2026-09-14T10:23:00",
          "subLord": "Venus",
          "score": 50
        }
      ]
    }
  },
  "score": 43.4,
  "band": "caution",
  "worstWindows": [
    {
      "inGain": true,
      "inLoss": true,
      "verdict": "mixed",
      "from": "2026-09-14T06:14:00",
      "to": "2026-09-14T10:23:00",
      "subLord": "Venus",
      "score": 50
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get planetary aspects (Drishti) - Mutual aspects between all planets

POST /api/v2/vedic-astrology/aspects

Calculate all planetary aspects (Drishti) for a given time. Returns full aspects (7th house for all planets) and special aspects (Mars 4th/8th, Jupiter 5th/9th, Saturn 3rd/10th). Includes aspect table grouped by planet, mutual aspects, and individual aspect details with orb calculation. Essential for birth chart analysis, compatibility checking, and transit predictions. Planetary aspects API, drishti calculator, vedic astrology aspects, graha drishti.

Request body

FieldTypeDescription
date requiredstring (date)Date in YYYY-MM-DD format. Planetary positions are calculated for this date to determine mutual aspects (drishti).
time requiredstring (time)Time in HH:MM:SS format (24-hour). Exact time affects fast-moving planets (Moon, Mercury) and aspect orbs.
latitude requirednumberObserver latitude in decimal degrees. Used for Lagna calculation which affects house-based aspect analysis.
longitude requirednumberObserver longitude in decimal degrees. Affects local sidereal time for positional calculations.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/aspects" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-02-03","time":"12:00:00","latitude":17.385044,"longitude":78.486671}'

Response fields

FieldTypeDescription
datetime requiredstringChart time the aspects were calculated for, echoed back as the local wall clock of the request (ISO 8601, no offset). This is the `date` and `time` you sent, NOT a UTC instant: hold them fixed and vary `timezone` and every longitude moves while this field does not. Combine it with the `timezone` you sent to recover the absolute moment.
planets requiredarray of objectSidereal positions of all 9 planets at the given time.
planets[].name requiredstringPlanet name (Sun through Ketu, all 9 Vedic grahas).
planets[].longitude requirednumberSidereal longitude in degrees (0-360).
planets[].sign requiredstringVedic zodiac sign (rashi) the planet occupies.
aspects requiredarray of objectComplete list of all Vedic aspects (drishti) between planets. Includes full (7th) and special aspects (Mars 4th/8th, Jupiter 5th/9th, Saturn 3rd/10th).
aspects[].aspectingPlanet requiredstringPlanet casting the aspect (graha drishti).
aspects[].aspectedPlanet requiredstringPlanet receiving the aspect.
aspects[].aspectType requiredstring enumVedic aspect type. All planets have 7th aspect. Special aspects: Mars 4th/8th, Jupiter 5th/9th, Saturn 3rd/10th.
aspects[].strength requirednumberAspect strength percentage (0-100). 100 = exact aspect, decreases with orb distance.
aspects[].orb requirednumberAngular distance from exact aspect in degrees. Smaller orb = more potent aspect.
aspectTable requiredarray of objectAspect table grouped by aspecting planet. useful for rendering aspect grids in astrology software.
aspectTable[].planet requiredstringPlanet casting aspects.
aspectTable[].aspects requiredarray of objectAll aspects cast by this planet.
Show all fieldsShow fewer fields
FieldTypeDescription
aspectTable[].aspects[].planet requiredstringPlanet being aspected.
aspectTable[].aspects[].aspectType requiredstringVedic aspect house (7th, 4th, 8th, 5th, 9th, 3rd, 10th, or conjunction).
aspectTable[].aspects[].strength requirednumberAspect strength percentage.
mutualAspects requiredarray of objectPairs of planets aspecting each other simultaneously. Mutual aspects amplify planetary influence significantly.
mutualAspects[].planet1 requiredstringFirst planet in the mutual aspect pair.
mutualAspects[].planet2 requiredstringSecond planet in the mutual aspect pair.
mutualAspects[].aspectType requiredstringThe aspect type shared mutually. Mutual aspects are especially strong in Vedic astrology.
Example response
{
  "datetime": "1990-06-15T14:30:00",
  "planets": [
    {
      "name": "Mars",
      "longitude": 285.67,
      "sign": "Capricorn"
    }
  ],
  "aspects": [
    {
      "aspectingPlanet": "Mars",
      "aspectedPlanet": "Moon",
      "aspectType": "7th",
      "strength": 100,
      "orb": 2.5
    }
  ],
  "aspectTable": [
    {
      "planet": "Mars",
      "aspects": [
        {
          "planet": "Jupiter",
          "aspectType": "8th",
          "strength": 85
        }
      ]
    }
  ],
  "mutualAspects": [
    {
      "planet1": "Mars",
      "planet2": "Saturn",
      "aspectType": "7th"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Monthly Planetary Aspects - Major and minor aspect events for a month

POST /api/v2/vedic-astrology/aspects/monthly

Calculate all planetary aspect events (excluding Moon) for a given month. Detects 22 aspect types. 5 major (conjunction, opposition, trine, square, sextile) and 17 minor (vigintile, semi-sextile, undecile, semi-quintile, novile, semi-square, septile, quintile, binovile, centile, biseptile, tredecile, sesqui-square, bi-quintile, quincunx, triseptile, quadranovile). Returns exact date and time of closest approach using ternary search refinement. Uses degree-based aspect methodology on sidereal positions (Lahiri ayanamsa). Omit year and month to get the month in progress, so a published aspect calendar stays current without a redeploy. For Moon-specific aspects, use the /aspects/lunar endpoint. Essential for transit timing, muhurta selection, and monthly astrological forecasting. Monthly planetary aspects API, graha drishti calendar, mutual aspect ephemeris, minor aspects.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
yearintegerYear for monthly analysis (1551 to 2649). Defaults to the current year (UTC).
monthintegerMonth number (1-12). Defaults to the current month (UTC).
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Output times are converted to this timezone. Defaults to 0 (UTC).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/aspects/monthly" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":2026,"month":2,"timezone":5.5,"coordinateSystem":"sidereal"}'

Response fields

FieldTypeDescription
year requirednumberYear of the aspect analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
month requirednumberMonth of the aspect analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
timezone requirednumberTimezone offset from UTC in hours that the event dates and times are reported in. Echoes the requested timezone.
events requiredarray of objectAll planetary aspect events detected during the month, sorted chronologically by closest approach date.
events[].planet1 requiredstringFirst planet forming the aspect. One of the Navagraha, Sun through Ketu. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planet1Localized for anything a reader sees.
events[].planet1LocalizedstringFirst planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet1 exactly.
events[].planet2 requiredstringSecond planet forming the aspect. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
events[].planet2LocalizedstringSecond planet name in the requested language, for display. Present only when lang is set to a language other than English.
events[].aspect requiredstringAspect type. major: conjunction (0 deg), opposition (180 deg), trine (120 deg), square (90 deg), sextile (60 deg). Minor: vigintile (18 deg), semi-sextile (30 deg), undecile (32.73 deg), semi-quintile (36 deg), novile (40 deg), semi-square (45 deg), septile (51.43 deg), quintile (72 deg), binovile (80 deg), centile (100 deg), biseptile (102.86 deg), tredecile (108 deg), sesqui-square (135 deg), bi-quintile (144 deg), quincunx (150 deg), triseptile (154.29 deg), quadranovile (160 deg).
events[].date requiredstringDate when the aspect is closest to exact (YYYY-MM-DD). Adjusted to requested timezone.
events[].time requiredstringTime when the aspect is closest to exact (HH:MM, 24-hour). Adjusted to requested timezone.
events[].datetime requiredstringFull datetime when aspect is closest to exact. Adjusted to requested timezone.
events[].orb requirednumberAngular distance from exact aspect in degrees at closest approach. Smaller orb indicates a more powerful aspect.
events[].distance requirednumberActual angular distance between the two planets in degrees at closest approach.
Show all fieldsShow fewer fields
FieldTypeDescription
events[].planet1Longitude requirednumberSidereal longitude of the first planet at time of aspect (Lahiri ayanamsa).
events[].planet2Longitude requirednumberSidereal longitude of the second planet at time of aspect.
Example response
{
  "year": 2026,
  "month": 2,
  "timezone": 5.5,
  "events": [
    {
      "planet1": "Mars",
      "planet1Localized": "Marte",
      "planet2": "Venus",
      "planet2Localized": "Venus",
      "aspect": "conjunction",
      "date": "2026-02-15",
      "time": "14:32",
      "datetime": "2026-02-15T14:32:00",
      "orb": 0.45,
      "distance": 120.45,
      "planet1Longitude": 285.67,
      "planet2Longitude": 285.22
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Monthly Lunar Aspects - Moon aspect events with all planets for a month

POST /api/v2/vedic-astrology/aspects/lunar

Track all lunar aspect events for a given month including major and minor aspects. The Moon traverses approximately 13 degrees per day, forming 22 aspect types with each planet. 5 major (conjunction, opposition, trine, square, sextile) and 17 minor (vigintile, semi-sextile, undecile, semi-quintile, novile, semi-square, septile, quintile, binovile, centile, biseptile, tredecile, sesqui-square, bi-quintile, quincunx, triseptile, quadranovile). Returns exact date and time of each Moon aspect event with ternary search refinement to the minute. Omit year and month to get the month in progress, so a published lunar calendar stays current without a redeploy. Essential for muhurta selection, daily panchang analysis, and chandra gochar predictions. Monthly lunar aspects API, Moon transit calendar, chandra drishti ephemeris, minor lunar aspects.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
yearintegerYear for monthly analysis (1551 to 2649). Defaults to the current year (UTC).
monthintegerMonth number (1-12). Defaults to the current month (UTC).
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Output times are converted to this timezone. Defaults to 0 (UTC).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/aspects/lunar" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":2026,"month":2,"timezone":5.5,"coordinateSystem":"sidereal"}'

Response fields

FieldTypeDescription
year requirednumberYear of the lunar aspect analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
month requirednumberMonth of the lunar aspect analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
timezone requirednumberTimezone offset from UTC in hours that the event dates and times are reported in. Echoes the requested timezone.
events requiredarray of objectAll Moon aspect events during the month, sorted chronologically. Moon completes one full cycle in approximately 27 days.
events[].planet requiredstringPlanet that the Moon forms an aspect with. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
events[].planetLocalizedstringPlanet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly.
events[].aspect requiredstringAspect type. major: conjunction, opposition, trine, square, sextile. Minor: vigintile, semi-sextile, undecile, semi-quintile, novile, semi-square, septile, quintile, binovile, centile, biseptile, tredecile, sesqui-square, bi-quintile, quincunx, triseptile, quadranovile.
events[].date requiredstringDate of closest approach for this lunar aspect (YYYY-MM-DD). Adjusted to requested timezone.
events[].time requiredstringTime of closest approach for this lunar aspect (HH:MM, 24-hour). Adjusted to requested timezone.
events[].datetime requiredstringFull datetime of closest approach. Adjusted to requested timezone.
events[].orb requirednumberAngular distance from exact lunar aspect in degrees. Smaller orb = stronger Moon influence.
events[].distance requirednumberActual angular distance between Moon and the aspected planet in degrees.
events[].moonLongitude requirednumberSidereal longitude of the Moon at the time of aspect (Lahiri ayanamsa).
events[].planetLongitude requirednumberSidereal longitude of the aspected planet at the time of aspect.
Example response
{
  "year": 2026,
  "month": 2,
  "timezone": 5.5,
  "events": [
    {
      "planet": "Jupiter",
      "planetLocalized": "Júpiter",
      "aspect": "trine",
      "date": "2026-02-10",
      "time": "14:32",
      "datetime": "2026-02-10T14:32:00",
      "orb": 0.32,
      "distance": 120.32,
      "moonLongitude": 154.82,
      "planetLongitude": 274.67
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Transit Analysis - Compare current planets to natal chart (Gochar)

POST /api/v2/vedic-astrology/transit

Analyze planetary transits (Gochar) over natal chart positions. Each transiting graha comes back with TWO whole-sign house numbers, because the two readings answer different questions: houseFromMoon is counted from the natal Moon sign (Janma Rashi), which is the reference classical Gochara uses, and natalHouse is counted from the Lagna. Also returns graha drishti onto the natal grahas (7th for every graha, plus Mars 4th and 8th, Jupiter 5th and 9th, Saturn 3rd and 10th), degree-based angular aspects with orbs, the Gochara Kaksha verdict, and highlighted transits from the slow-moving grahas (Jupiter, Saturn, Rahu, Ketu). Essential for timing predictions, event forecasting, and understanding current planetary influences. Transit analysis API, gochar calculator, vedic transit predictions, Chandra Lagna gochara, graha drishti.

Request body

FieldTypeDescription
birthDate requiredstring (date)Birth date in YYYY-MM-DD format. Used to calculate the natal chart against which transits are analyzed.
birthTime requiredstring (time)Birth time in HH:MM:SS format (24-hour). Critical for accurate natal Lagna and Placidus house cusps which determine transit house placements.
transitDate requiredstring (date)Transit date to analyze in YYYY-MM-DD format. Planetary positions on this date are overlaid on the natal chart.
transitTimestring (time)Transit time in HH:MM:SS format (24-hour). Affects fast-moving planets like Moon. Defaults to noon.
latitude requirednumberObserver latitude in decimal degrees. Determines Placidus house cusps for natal chart house assignments.
longitude requirednumberObserver longitude in decimal degrees. Affects local sidereal time for Lagna and house calculations.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/transit" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"birthDate":"1990-07-04","birthTime":"10:12:00","transitDate":"2026-02-03","latitude":17.385044,"longitude":78.486671}'

Response fields

FieldTypeDescription
frame requiredobjectThe zodiac frame every longitude in this response was computed in, so a cached or forwarded payload is self describing. Sidereal requests report the Lahiri ayanamsa, read at the birth instant; the transit positions use the same named frame resolved at their own instant, which moves by about 50 arcseconds a year. A tropical request reports "tropical" with 0 degrees subtracted, which is the one case a Vedic table can otherwise be rendered in the wrong zodiac with nothing on screen saying so.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
birthDatetime requiredstringBirth datetime used for the natal chart, echoed as the local civil date and time supplied in the request (YYYY-MM-DDTHH:MM:SS). Combine it with the timezone field to recover the UTC instant.
transitDatetime requiredstringTransit datetime being analyzed, echoed as the local civil date and time supplied in the request (YYYY-MM-DDTHH:MM:SS). Gochar positions are computed for this moment and overlaid on the natal chart.
natalPlanets requiredarray of objectAll 9 planetary positions from the natal (birth) chart.
natalPlanets[].name requiredstringGraha name, Sun through Ketu. The Lagna is not one of these entries; it is a house frame rather than a body, and the natal house numbers on every entry are counted from it.
natalPlanets[].longitude requirednumberSidereal longitude in degrees (0-360) using Lahiri ayanamsa.
natalPlanets[].sign requiredstringVedic zodiac sign (rashi) the planet occupies in the birth chart.
natalPlanets[].house requirednumberBhava (house) number 1-12, counted whole-sign from the Lagna (house 1 is the Lagna rashi).
transitingPlanets requiredarray of objectCurrent planetary positions overlaid on the natal chart with house placements, aspects, and the Gochara Kaksha verdict for each graha.
transitingPlanets[].name requiredstringTransiting planet name.
transitingPlanets[].longitude requirednumberCurrent sidereal longitude of the transiting planet.
transitingPlanets[].sign requiredstringCurrent zodiac sign of the transiting planet.
Show all fieldsShow fewer fields
FieldTypeDescription
transitingPlanets[].natalHouse requirednumberWhich natal house (whole-sign bhava counted from the Lagna) this graha is currently transiting through. This is the Lagna reading of the transit, which is what a transit chart drawn over the birth chart shows. For the house classical Gochara is judged from, read houseFromMoon instead.
transitingPlanets[].houseFromMoon requirednumberWhich house this graha is transiting counted from the natal Moon sign (Janma Rashi), 1-12 whole-sign and counted inclusively, so the Moon sign itself is 1. This is the number classical Gochara is reckoned in: Phaladeepika chapter 26 opens by saying that of all the Lagnas only the Moon Lagna matters for transit results, and the Vedha and Ashtakavarga transit rules are counted from the Moon throughout. The reference sign is the sign of the Moon entry in natalPlanets, so a client can label the column without a second request.
transitingPlanets[].aspectsToNatal requiredarray of objectDegree-based angular aspects between this transiting graha and the natal grahas. Western vocabulary, kept for callers who read a chart that way; drishtiToNatal is the Vedic answer to the same question.
transitingPlanets[].aspectsToNatal[].natalPlanet requiredstringNatal planet being aspected by this transiting planet.
transitingPlanets[].aspectsToNatal[].aspectType requiredstringDegree-based angular aspect between the two longitudes: conjunction, opposition, trine, square, or sextile. This is the Western aspect vocabulary and it is offered for charts read that way. Parashari jyotish has no sextile, square or trine, so for the Vedic reading use drishtiToNatal, which reports graha drishti by house count.
transitingPlanets[].aspectsToNatal[].orb requirednumberAngular distance from exact aspect in degrees. Smaller orb = stronger influence.
transitingPlanets[].drishtiToNatal requiredarray of objectGraha drishti cast by this transiting graha onto the natal grahas, the Vedic reading of transit-to-natal aspects. Rahu and Ketu cast none. Empty when this graha reaches no occupied natal sign.
transitingPlanets[].drishtiToNatal[].natalPlanet requiredstringNatal graha receiving the drishti from this transiting graha.
transitingPlanets[].drishtiToNatal[].aspectType requiredstring enumWhich house the drishti falls on, counted whole-sign and inclusively from the transiting graha. Every graha aspects the 7th; Mars adds the 4th and 8th, Jupiter the 5th and 9th, Saturn the 3rd and 10th. Same vocabulary the /aspects endpoint returns, so the two can be compared directly.
transitingPlanets[].drishtiToNatal[].strength requirednumberDrishti strength as a percentage. Full and special aspects are 100; the partial quarter, half and three-quarter sights are not reported.
transitingPlanets[].drishtiToNatal[].orb requirednumberGap between the two degrees-in-sign, in degrees. Graha drishti is whole-sign and does not depend on this, so read it as how exact the sight is inside the pair of rashis rather than as a condition for the aspect.
transitingPlanets[].kaksha requiredobjectGochara Kaksha: the ashtakavarga-qualified reading of this transit. The sign says where a graha is, this says whether the exact stretch it currently occupies is one its own Bhinnashtakavarga supports, which is the classical way of refining a transit verdict from sign-level to under four degrees.
transitingPlanets[].kaksha.number requirednumberKaksha number 1-8 within the current sign. Each sign divides into eight kakshas of 3 degrees 45 minutes, crossed in order, so this is how far through the sign the graha has travelled.
transitingPlanets[].kaksha.lord requiredstringGraha ruling this kaksha. The eight lords run Saturn, Jupiter, Mars, Sun, Venus, Mercury, Moon, Lagna from the start of every sign, ordered by how long each takes to cross a sign.
transitingPlanets[].kaksha.startDegree requirednumberDegree within the sign where this kaksha begins (0, 3.75, 7.5 and so on).
transitingPlanets[].kaksha.endDegree requirednumberDegree within the sign where this kaksha ends.
transitingPlanets[].kaksha.bindu requiredbooleannullWhether this kaksha lord gave the transiting graha a bindu in the sign being transited, which is the Gochara Kaksha verdict: true reads as a favourable stretch of the transit, false as an unfavourable one. Null means the question does not apply rather than that the answer is no, because Rahu and Ketu have no Bhinnashtakavarga to read. Never render null as unfavourable.
transitingPlanets[].kaksha.binduCount requirednumbernullBindus the transiting graha holds in this whole sign, 0-8, or null for Rahu and Ketu. Context for the verdict, since the same kaksha reads differently in a sign worth 7 than in one worth 1.
keyTransits requiredarray of objectHighlighted transits from slow-moving planets (Jupiter, Saturn, Rahu, Ketu), most impactful for Gochar analysis.
keyTransits[].planet requiredstringSlow-moving planet (Jupiter, Saturn, Rahu, Ketu) forming a significant transit.
keyTransits[].description requiredstringHuman-readable transit summary, naming the rashi being transited and both house readings: from the Lagna, then from the natal Moon.
keyTransits[].natalHouse requirednumberNatal house being transited by this slow graha, counted whole-sign from the Lagna. Mirrors natalHouse on the matching transitingPlanets entry.
keyTransits[].houseFromMoon requirednumberHouse being transited by this slow graha counted from the natal Moon sign (Janma Rashi), the classical Gochara reference. Mirrors houseFromMoon on the matching transitingPlanets entry.
keyTransits[].aspects requiredarray of stringNotable degree-based angular aspects to natal planets from this slow-moving transiting planet, in Western vocabulary.
keyTransits[].drishti requiredarray of stringGraha drishti this slow-moving transiting graha casts on the natal grahas, the Vedic reading. Empty for Rahu and Ketu, which cast none.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "birthDatetime": "1990-07-04T10:12:00",
  "transitDatetime": "2026-02-03T12:00:00",
  "natalPlanets": [
    {
      "name": "Sun",
      "longitude": 102.34,
      "sign": "Cancer",
      "house": 4
    }
  ],
  "transitingPlanets": [
    {
      "name": "Saturn",
      "longitude": 340.15,
      "sign": "Pisces",
      "natalHouse": 10,
      "houseFromMoon": 7,
      "aspectsToNatal": [
        {
          "natalPlanet": "Moon",
          "aspectType": "square",
          "orb": 2.45
        }
      ],
      "drishtiToNatal": [
        {
          "natalPlanet": "Sun",
          "aspectType": "3rd",
          "strength": 100,
          "orb": 2.5
        }
      ],
      "kaksha": {
        "number": 3,
        "lord": "Mars",
        "startDegree": 7.5,
        "endDegree": 11.25,
        "bindu": true,
        "binduCount": 5
      }
    }
  ],
  "keyTransits": [
    {
      "planet": "Saturn",
      "description": "Saturn transiting Pisces (natal house 10, 4 from the Moon)",
      "natalHouse": 10,
      "houseFromMoon": 4,
      "aspects": [
        "conjunction to natal Sun (orb 4.64°)"
      ],
      "drishti": [
        "3rd drishti to natal Sun"
      ]
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Monthly Transit - Planetary sign changes for an entire month

POST /api/v2/vedic-astrology/transit/monthly

Get all planetary sign (rashi) changes for a given month. Shows when each planet transitions from one zodiac sign to another. Covers all 9 Vedic planets: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Includes starting positions at the beginning of the month. Omit year and month to get the month in progress, so a published gochar calendar stays current without a redeploy. Essential for transit prediction, monthly horoscope generation, and muhurta planning. Monthly planetary transit API, gochar calendar, rashi parivartan dates.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
yearintegerYear for monthly transit analysis (1551 to 2649). Defaults to the current year (UTC).
monthintegerMonth number (1-12) for transit analysis. Defaults to the current month (UTC).
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Output times are converted to this timezone. Defaults to 0 (UTC).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/transit/monthly" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":2026,"month":2,"timezone":5.5,"coordinateSystem":"sidereal"}'

Response fields

FieldTypeDescription
year requirednumberYear of the monthly transit analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
month requirednumberMonth of the monthly transit analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
timezone requirednumberTimezone offset from UTC in hours that the event dates and times are reported in. Echoes the requested timezone.
startingPositions requiredarray of objectPlanetary positions at the beginning of the month (day 1, 00:00 UTC).
startingPositions[].planet requiredstringPlanet (graha) name. One of the 9 Navagraha used in Vedic transit (Gochar) analysis. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
startingPositions[].planetLocalizedstringPlanet name in the requested language, for display. Present only when lang is set to a language other than English.
startingPositions[].sign requiredstringZodiac sign (rashi) the planet occupies at the start of the month. Always English. Use signLocalized for anything a reader sees.
startingPositions[].signLocalizedstringZodiac sign name in the requested language, for display. Present only when lang is set to a language other than English.
startingPositions[].longitude requirednumberSidereal longitude at the start of the month.
transitEvents requiredarray of objectAll sign change events during the month, sorted chronologically. Moon changes sign roughly every 2.25 days, Sun once a month, slow planets less frequently.
transitEvents[].planet requiredstringPlanet that changes sign (rashi) during this month. One of the Navagraha: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
transitEvents[].planetLocalizedstringPlanet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly.
transitEvents[].fromSign requiredstringZodiac sign the planet is leaving (previous rashi). Always English. Use fromSignLocalized for anything a reader sees.
transitEvents[].fromSignLocalizedstringName of the sign being left, in the requested language, for display. Present only when lang is set to a language other than English.
Show all fieldsShow fewer fields
FieldTypeDescription
transitEvents[].toSign requiredstringZodiac sign the planet is entering (new rashi transit). Always English. Use toSignLocalized for anything a reader sees.
transitEvents[].toSignLocalizedstringName of the sign being entered, in the requested language, for display. Present only when lang is set to a language other than English.
transitEvents[].date requiredstringDate of the sign change (YYYY-MM-DD). Adjusted to requested timezone.
transitEvents[].time requiredstringTime of the sign change (HH:MM, 24-hour). Adjusted to requested timezone. Precise to ~1 minute via binary search.
transitEvents[].datetime requiredstringFull datetime of the sign change. Adjusted to requested timezone.
transitEvents[].isRetrograde requiredbooleanWhether the planet is in retrograde motion (vakri) at the time of sign change. A retrograde ingress means the planet is moving backward into the previous sign, which carries different astrological significance than a direct (forward) ingress. Rahu and Ketu are always retrograde.
Example response
{
  "year": 2026,
  "month": 2,
  "timezone": 5.5,
  "startingPositions": [
    {
      "planet": "Sun",
      "planetLocalized": "Sol",
      "sign": "Capricorn",
      "signLocalized": "Capricornio",
      "longitude": 286.45
    }
  ],
  "transitEvents": [
    {
      "planet": "Mars",
      "planetLocalized": "Marte",
      "fromSign": "Gemini",
      "fromSignLocalized": "Géminis",
      "toSign": "Cancer",
      "toSignLocalized": "Cáncer",
      "date": "2026-02-14",
      "time": "14:32",
      "datetime": "2026-02-14T14:32:00",
      "isRetrograde": false
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Declination Parallels - Planets at same or opposite declination

POST /api/v2/vedic-astrology/parallels

Calculate planetary declinations and find parallels (same declination) and contraparallels (opposite declination). Parallels are considered equivalent to conjunctions in strength, contraparallels to oppositions. Returns declination for each planet and all parallel/contraparallel aspects. Declination parallels API, planetary declination calculator, contraparallel aspects.

Request body

FieldTypeDescription
date requiredstring (date)Date in YYYY-MM-DD format. Planetary declinations are calculated for this date to find parallel and contraparallel aspects.
time requiredstring (time)Time in HH:MM:SS format (24-hour). Exact time affects declination values, especially for the fast-moving Moon.
latitude requirednumberBirth latitude in decimal degrees, part of the birth record. Declinations are geocentric, as every published ephemeris prints them, so it does not move them.
longitude requirednumberBirth longitude in decimal degrees, part of the birth record. Declinations are geocentric, so it does not move them; the instant comes from date, time and timezone.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5 (IST).
orbnumberOrb in degrees for parallel/contraparallel detection. Defaults to 1.5°.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/parallels" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-02-03","time":"12:00:00","latitude":17.385044,"longitude":78.486671}'

Response fields

FieldTypeDescription
datetime requiredstringDatetime used for the declination calculation, echoed as the local civil date and time supplied in the request (YYYY-MM-DDTHH:MM:SS). The timezone field of the request is what converts it to the instant the declinations are computed for.
planets requiredarray of objectDeclination and right ascension for each planet at the given moment.
planets[].name requiredstringPlanet name (Sun through Saturn, the 7 visible planets).
planets[].declination requirednumberCelestial declination in degrees. Positive = north of celestial equator, negative = south.
planets[].rightAscension requirednumberRight ascension in degrees (0-360) along the celestial equator.
parallels requiredarray of objectAll parallel and contraparallel aspects found within the specified orb. Parallels are powerful hidden aspects often overlooked in standard chart analysis.
parallels[].planet1 requiredstringFirst planet in the parallel/contraparallel pair.
parallels[].planet2 requiredstringSecond planet in the pair.
parallels[].type requiredstring enumParallel = same declination (acts like conjunction). Contraparallel = opposite declination (acts like opposition).
parallels[].orb requirednumberAngular difference from exact parallel/contraparallel in degrees. Smaller = stronger.
parallels[].dec1 requirednumberDeclination of the first planet in degrees.
parallels[].dec2 requirednumberDeclination of the second planet in degrees.
Example response
{
  "datetime": "1990-07-04T10:12:00",
  "planets": [
    {
      "name": "Sun",
      "declination": -17.23,
      "rightAscension": 285.47
    }
  ],
  "parallels": [
    {
      "planet1": "Venus",
      "planet2": "Mars",
      "type": "parallel",
      "orb": 0.85,
      "dec1": 14.23,
      "dec2": 13.38
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Monthly Declination Parallels - Parallel and contraparallel events for a month

POST /api/v2/vedic-astrology/parallels/monthly

Find all declination parallel and contraparallel events between the 7 visible planets for a given month. Parallels occur when two planets share the same celestial declination (equivalent to conjunction in strength). Contraparallels occur at opposite declinations (equivalent to opposition). Scanned daily at noon UTC. Omit year and month to get the month in progress, so a published parallel calendar stays current without a redeploy. Essential for advanced transit analysis and hidden aspect discovery. Monthly declination parallels API, planetary parallel ephemeris, contraparallel event calendar.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
yearintegerYear for monthly parallel analysis (1551 to 2649). Defaults to the current year (UTC).
monthintegerMonth number (1-12) for parallel analysis. Defaults to the current month (UTC).
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Output times are converted to this timezone. Defaults to 0 (UTC).
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/parallels/monthly" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":2026,"month":2,"timezone":5.5}'

Response fields

FieldTypeDescription
year requirednumberYear of the parallel analysis. Echoes the year that was requested, or the current UTC year when it was omitted.
month requirednumberMonth of the parallel analysis. Echoes the month that was requested, or the current UTC month when it was omitted.
events requiredarray of objectAll parallel and contraparallel events detected during the month, sorted chronologically.
events[].planet1 requiredstringFirst planet in the parallel or contraparallel pair. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planet1Localized for anything a reader sees.
events[].planet1LocalizedstringFirst planet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet1 exactly.
events[].planet2 requiredstringSecond planet in the pair. Always English, whatever the lang parameter says. Use planet2Localized for anything a reader sees.
events[].planet2LocalizedstringSecond planet name in the requested language, for display. Present only when lang is set to a language other than English.
events[].type requiredstring enumParallel = same declination (acts like conjunction in strength). Contraparallel = opposite declination (acts like opposition).
events[].date requiredstringDate of closest declination match (YYYY-MM-DD). Adjusted to requested timezone.
events[].time requiredstringTime of closest declination match (HH:MM, 24-hour). Adjusted to requested timezone.
events[].datetime requiredstringFull datetime of closest declination match. Adjusted to requested timezone.
events[].orb requirednumberDeclination difference from exact parallel/contraparallel in degrees. Smaller = stronger.
events[].dec1 requirednumberDeclination of the first planet in degrees.
events[].dec2 requirednumberDeclination of the second planet in degrees.
Example response
{
  "year": 2026,
  "month": 2,
  "events": [
    {
      "planet1": "Venus",
      "planet1Localized": "Venus",
      "planet2": "Mars",
      "planet2Localized": "Marte",
      "type": "parallel",
      "date": "2026-02-12",
      "time": "09:15",
      "datetime": "2026-02-12T09:15:00",
      "orb": 0.45,
      "dec1": 14.23,
      "dec2": 13.78
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Ecliptic Crossings - When planets cross the ecliptic plane

POST /api/v2/vedic-astrology/ecliptic-crossings

Find all ecliptic plane crossings for visible planets during a given year. An ecliptic crossing occurs when a planetary celestial latitude passes through 0 degrees, crossing from one side of the ecliptic to the other. Ascending crossings (south to north) correspond to the ascending node, descending crossings (north to south) to the descending node. Moon crosses ~2 times per month, outer planets cross less frequently. Returns exact date, time, direction, longitude and zodiac sign in the requested coordinateSystem, sidereal by default. Ecliptic crossing API, planetary node crossing, ascending descending node ephemeris.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
year requiredintegerYear to scan for ecliptic crossings (1551 to 2649).
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Output times are converted to this timezone. Defaults to 0 (UTC).
coordinateSystemstring enumCoordinate system for longitude output. "sidereal" (Nirayana) uses Lahiri ayanamsa, the standard for Vedic astrology. "tropical" (Sayana) uses raw ecliptic longitude matching Western astrology. Defaults to "sidereal".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/ecliptic-crossings" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":2026}'

Response fields

FieldTypeDescription
year requirednumberYear scanned for ecliptic crossings.
timezone requirednumberTimezone offset from UTC in hours that the event dates and times are reported in. Echoes the requested timezone.
events requiredarray of objectAll ecliptic crossing events for visible planets during the year, sorted chronologically.
events[].planet requiredstringPlanet crossing the ecliptic plane. Sun is excluded (always on the ecliptic by definition). Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use planetLocalized for anything a reader sees.
events[].planetLocalizedstringPlanet name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat planet exactly.
events[].date requiredstringDate of the ecliptic crossing (YYYY-MM-DD). Adjusted to requested timezone.
events[].time requiredstringTime of the ecliptic crossing (HH:MM, 24-hour). Adjusted to requested timezone.
events[].datetime requiredstringFull datetime of the ecliptic crossing. Adjusted to requested timezone.
events[].direction requiredstring enumAscending = planet moves from south to north of the ecliptic. Descending = north to south.
events[].longitude requirednumberLongitude of the planet at the moment of crossing, in the requested coordinateSystem: sidereal (Lahiri ayanamsa) by default, tropical when asked.
events[].sign requiredstringZodiac sign the planet occupies at the crossing, read in the same coordinateSystem as longitude: the rashi under sidereal, the tropical sign under tropical. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use signLocalized for anything a reader sees.
events[].signLocalizedstringZodiac sign name in the requested language, for display. Present only when lang is set to a language other than English, since in English it would repeat sign exactly.
Example response
{
  "year": 2026,
  "timezone": 5.5,
  "events": [
    {
      "planet": "Mars",
      "planetLocalized": "Marte",
      "date": "2026-03-15",
      "time": "08:42",
      "datetime": "2026-03-15T08:42:00",
      "direction": "ascending",
      "longitude": 345.67,
      "sign": "Pisces",
      "signLocalized": "Piscis"
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

List all 12 Rashis - Vedic Zodiac Signs Reference

GET /api/v2/vedic-astrology/rashis

Get the complete list of 12 rashis (zodiac signs) in Vedic astrology. Returns Sanskrit names, Western equivalents, sidereal date ranges, symbols, governing Adityas, and personality characteristics for each rashi. Reference data for Mesha through Meen. Essential for zodiac sign lookup tables, astrology apps, and rashi-based UI components.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/rashis" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
[].id requiredstringUnique slug identifier for the rashi. Used in URL paths and cross-references.
[].name requiredstringWestern zodiac sign name corresponding to this Vedic rashi.
[].vedicName requiredstringSanskrit name of the rashi as used in Vedic astrology (Jyotish).
[].dateRange requiredstringApproximate sidereal date range when the Sun transits this rashi.
[].symbol requiredstringTraditional symbol associated with this zodiac sign.
[].energy requiredstringAditya (solar deity) governing this rashi in Vedic tradition.
[].characteristics requiredstringKey personality traits and behavioral tendencies of natives born under this rashi.
Example response
[
  {
    "id": "mesha",
    "name": "Aries",
    "vedicName": "Mesha",
    "dateRange": "Apr 14th - May 14th",
    "symbol": "Ram",
    "energy": "Dhatr Aditya",
    "characteristics": "Creative, idealistic in nature, headstrong, good leader"
  }
]

Try it

Not sent

Get Rashi by ID - Vedic Zodiac Sign Detail

GET /api/v2/vedic-astrology/rashis/{id}

Get detailed information for a single rashi (zodiac sign) by its Vedic ID slug. Returns Sanskrit name, Western equivalent, sidereal date range, symbol, governing Aditya, and personality characteristics.

Parameters

ParameterTypeDescription
id required pathstring enumRashi ID slug. One of: mesha, vrishabha, mithun, karka, simha, kanya, tula, vrischika, dhanu, makar, kumbha, meen.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/rashis/mesha" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
id requiredstringUnique slug identifier for the rashi. Used in URL paths and cross-references.
name requiredstringWestern zodiac sign name corresponding to this Vedic rashi.
vedicName requiredstringSanskrit name of the rashi as used in Vedic astrology (Jyotish).
dateRange requiredstringApproximate sidereal date range when the Sun transits this rashi.
symbol requiredstringTraditional symbol associated with this zodiac sign.
energy requiredstringAditya (solar deity) governing this rashi in Vedic tradition.
characteristics requiredstringKey personality traits and behavioral tendencies of natives born under this rashi.
Example response
{
  "id": "mesha",
  "name": "Aries",
  "vedicName": "Mesha",
  "dateRange": "Apr 14th - May 14th",
  "symbol": "Ram",
  "energy": "Dhatr Aditya",
  "characteristics": "Creative, idealistic in nature, headstrong, good leader"
}

Try it

Not sent

List all 27 Nakshatras - Lunar Mansions Reference

GET /api/v2/vedic-astrology/nakshatras

Get the complete list of 27 nakshatras (lunar mansions) in Vedic astrology. Returns names, zodiac ranges, ruling planets, presiding deities, symbols, personality characteristics, and traditional remedies (mantras, gemstones, rituals) for each nakshatra from Ashwini to Revati. Essential for nakshatra lookup tables, dasha period calculations, muhurta selection, and astrology app reference data.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/nakshatras" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
[].id requiredstringUnique slug identifier for the nakshatra. Used in URL paths and cross-references.
[].name requiredstringNakshatra name as used in Vedic astrology. One of 27 lunar mansions spanning 13 degrees 20 minutes each.
[].number requirednumberSequential number (1-27) of this nakshatra in the zodiac starting from 0 degrees Aries.
[].range requiredstringSidereal longitude range this nakshatra occupies within its zodiac sign.
[].lord requiredstringRuling planet (nakshatra lord) used in Vimshottari dasha calculations. Determines the planetary period sequence.
[].deity requiredstringPresiding deity of the nakshatra. Influences the spiritual qualities and mythology associated with natives.
[].symbol requiredstringTraditional symbol representing this nakshatra. Reflects its core nature and energy.
[].characteristics requiredstringPersonality traits, behavioral tendencies, and life themes for natives born under this nakshatra.
[].remedies requiredobjectTraditional Vedic remedies including mantras, gemstones, and rituals for this nakshatra.
[].remedies.mantras requiredstringRecommended mantras for this nakshatra to enhance positive qualities.
[].remedies.gemstones requiredstringRecommended gemstones aligned with the ruling planet of this nakshatra.
[].remedies.rituals requiredstringSpiritual practices and daily rituals beneficial for natives of this nakshatra.
Example response
[
  {
    "id": "ashwini",
    "name": "Ashwini",
    "number": 1,
    "range": "0 to 13 degrees 20 minutes Aries",
    "lord": "Ketu",
    "deity": "Ashwini Kumaras (celestial healers)",
    "symbol": "Horse's Head",
    "characteristics": "Energetic, pioneering, natural problem-solvers.",
    "remedies": {
      "mantras": "Chanting mantras dedicated to the Ashwini Kumaras can boost healing and vitality.",
      "gemstones": "Cat's eye or garnet to harness Ketu's energy.",
      "rituals": "Early morning meditation and engaging in acts of charity."
    }
  }
]

Try it

Not sent

Get Nakshatra by ID - Lunar Mansion Detail

GET /api/v2/vedic-astrology/nakshatras/{id}

Get detailed information for a single nakshatra (lunar mansion) by its ID slug, one of the 27 nakshatras of Vedic astrology. Returns name, zodiac range, ruling planet, presiding deity, symbol, personality characteristics, and traditional remedies including mantras, gemstones, and rituals.

Parameters

ParameterTypeDescription
id required pathstring enumNakshatra ID slug. Examples: ashwini, bharani, krittika, rohini, mrigashira, ardra, punarvasu, pushya, ashlesha, magha, etc.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/nakshatras/ashwini" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
id requiredstringUnique slug identifier for the nakshatra. Used in URL paths and cross-references.
name requiredstringNakshatra name as used in Vedic astrology. One of 27 lunar mansions spanning 13 degrees 20 minutes each.
number requirednumberSequential number (1-27) of this nakshatra in the zodiac starting from 0 degrees Aries.
range requiredstringSidereal longitude range this nakshatra occupies within its zodiac sign.
lord requiredstringRuling planet (nakshatra lord) used in Vimshottari dasha calculations. Determines the planetary period sequence.
deity requiredstringPresiding deity of the nakshatra. Influences the spiritual qualities and mythology associated with natives.
symbol requiredstringTraditional symbol representing this nakshatra. Reflects its core nature and energy.
characteristics requiredstringPersonality traits, behavioral tendencies, and life themes for natives born under this nakshatra.
remedies requiredobjectTraditional Vedic remedies including mantras, gemstones, and rituals for this nakshatra.
remedies.mantras requiredstringRecommended mantras for this nakshatra to enhance positive qualities.
remedies.gemstones requiredstringRecommended gemstones aligned with the ruling planet of this nakshatra.
remedies.rituals requiredstringSpiritual practices and daily rituals beneficial for natives of this nakshatra.
Example response
{
  "id": "ashwini",
  "name": "Ashwini",
  "number": 1,
  "range": "0 to 13 degrees 20 minutes Aries",
  "lord": "Ketu",
  "deity": "Ashwini Kumaras (celestial healers)",
  "symbol": "Horse's Head",
  "characteristics": "Energetic, pioneering, natural problem-solvers.",
  "remedies": {
    "mantras": "Chanting mantras dedicated to the Ashwini Kumaras can boost healing and vitality.",
    "gemstones": "Cat's eye or garnet to harness Ketu's energy.",
    "rituals": "Early morning meditation and engaging in acts of charity."
  }
}

Try it

Not sent

Get upagraha (sub-planet) positions - Upagraha Calculator API

POST /api/v2/vedic-astrology/upagraha

Calculate all 11 Vedic upagraha (sub-planet) positions per Brihat Parashara Hora Shastra (BPHS). Returns 6 time-based upagrahas (Gulika, Mandi, Kala, Mrityu, Ardhaprahara, Yamaghantaka) derived from the 8-part day/night division, plus 5 Sun-longitude-based upagrahas (Dhuma, Vyatipata, Parivesha, Indra Chapa, Upaketu). Essential for complete kundli analysis, dosha assessment, and advanced chart interpretation. Upagraha calculator API, Gulika Mandi position, sub-planet Vedic astrology.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/upagraha" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
timeBased requiredarray of objectTime-based upagrahas derived from the 8-part division of day or night. Gulika and Mandi are from Saturn segment, others from Sun, Mars, Mercury, Jupiter segments. Positions depend on birth time, location, and weekday.
timeBased[].name requiredstringUpagraha name. Time-based: Gulika, Mandi, Kala, Mrityu, Ardhaprahara, Yamaghantaka. Sun-based: Dhuma, Vyatipata, Parivesha, Indra Chapa, Upaketu.
timeBased[].longitude requirednumberSidereal longitude in degrees (0 to 360). Used for house placement and aspect analysis.
timeBased[].rashi requiredstringZodiac sign (rashi) the upagraha occupies. One of 12 Vedic rashis from Aries to Pisces.
timeBased[].degreeInSign requirednumberDegree position within the occupied rashi (0 to 30).
timeBased[].nakshatra requiredstringNakshatra (lunar mansion) the upagraha occupies. One of 27 Vedic nakshatras.
timeBased[].nakshatraIndex requirednumberNakshatra number (1 to 27). Ashwini = 1, Bharani = 2, through Revati = 27.
timeBased[].nakshatraPada requirednumberPada (quarter) within the nakshatra (1 to 4). Each pada spans 3 degrees 20 minutes.
sunBased requiredarray of objectSun-longitude-based upagrahas (Dhuma group). Pure arithmetic from the Sun sidereal position. Dhuma = Sun + 133d20m, then each derived from the previous.
sunBased[].name requiredstringUpagraha name. Time-based: Gulika, Mandi, Kala, Mrityu, Ardhaprahara, Yamaghantaka. Sun-based: Dhuma, Vyatipata, Parivesha, Indra Chapa, Upaketu.
sunBased[].longitude requirednumberSidereal longitude in degrees (0 to 360). Used for house placement and aspect analysis.
Show all fieldsShow fewer fields
FieldTypeDescription
sunBased[].rashi requiredstringZodiac sign (rashi) the upagraha occupies. One of 12 Vedic rashis from Aries to Pisces.
sunBased[].degreeInSign requirednumberDegree position within the occupied rashi (0 to 30).
sunBased[].nakshatra requiredstringNakshatra (lunar mansion) the upagraha occupies. One of 27 Vedic nakshatras.
sunBased[].nakshatraIndex requirednumberNakshatra number (1 to 27). Ashwini = 1, Bharani = 2, through Revati = 27.
sunBased[].nakshatraPada requirednumberPada (quarter) within the nakshatra (1 to 4). Each pada spans 3 degrees 20 minutes.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "timeBased": [
    {
      "name": "Gulika",
      "longitude": 168.13,
      "rashi": "Virgo",
      "degreeInSign": 18.13,
      "nakshatra": "Chitra",
      "nakshatraIndex": 14,
      "nakshatraPada": 3
    }
  ],
  "sunBased": [
    {
      "name": "Gulika",
      "longitude": 168.13,
      "rashi": "Virgo",
      "degreeInSign": 18.13,
      "nakshatra": "Chitra",
      "nakshatraIndex": 14,
      "nakshatraPada": 3
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get Ashtakavarga (planetary strength) analysis - Ashtakavarga Calculator API

POST /api/v2/vedic-astrology/ashtakavarga

Calculate complete Ashtakavarga analysis per Brihat Parashara Hora Shastra (BPHS). Returns Bhinnashtakavarga (BAV), Sarvashtakavarga (SAV, total 337), Reduced Ashtakavarga (Trikona + Ekadipati Shodhana per Ch. 67-68), and Shodhya Pinda planetary strength (Rashi Pinda + Graha Pinda per Ch. 69). Essential for transit prediction timing, house strength analysis, dasha result evaluation, and planetary strength comparison. Ashtakavarga calculator API, bindu rekha points, Shodhya Pinda, Vedic astrology.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/ashtakavarga" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
bhinnashtakavarga requiredarray of objectIndividual planetary strength grids (Bhinnashtakavarga). Eight entries: one for each of the 7 classical planets plus Lagna. Each entry shows how many of the 8 contributors (7 planets + Lagna) give benefic points to that planet in each of the 12 signs.
bhinnashtakavarga[].planet requiredstringPlanet or Lagna name. Seven classical planets (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn) plus Lagna (Ascendant). Rahu and Ketu are excluded from Ashtakavarga per BPHS.
bhinnashtakavarga[].bindus requiredarray of numberBenefic points (bindus) for each of the 12 signs, ordered Aries through Pisces (index 0 = Aries, index 11 = Pisces). Each value ranges from 0 to 8, representing how many of the 8 contributors (7 planets + Lagna) provide a benefic point for this planet in that sign. Higher bindus indicate stronger planetary support.
bhinnashtakavarga[].total requirednumberSum of bindus across all 12 signs. This total is constant per planet regardless of birth chart: Sun = 48, Moon = 49, Mars = 39, Mercury = 54, Jupiter = 56, Venus = 52, Saturn = 39, Lagna = 49. Useful as a validation checksum.
sarvashtakavarga requiredobjectSarvashtakavarga (SAV) combining all 7 planetary Bhinnashtakavarga scores per sign. Total is always 337.
sarvashtakavarga.bindus requiredarray of numberCombined benefic points per sign from all 7 planets (Lagna excluded from SAV), ordered Aries through Pisces. Higher values indicate stronger signs for transit predictions and house strength analysis. Average is approximately 28 per sign.
sarvashtakavarga.total requirednumberSum of all SAV bindus across 12 signs. Always equals 337 for every birth chart. This mathematical constant serves as a validation checksum for the calculation.
reducedBhinnashtakavarga requiredarray of objectReduced Bhinnashtakavarga after two-step Shodhana (purification) per BPHS Ch. 67-68. Step 1: Trikona Shodhana subtracts minimum bindu among trine groups (1-5-9, 2-6-10, 3-7-11, 4-8-12). Step 2: Ekadipati Shodhana adjusts dual-lordship sign pairs (Mars: Aries/Scorpio, Venus: Taurus/Libra, Mercury: Gemini/Virgo, Jupiter: Sagittarius/Pisces, Saturn: Capricorn/Aquarius). Used as input for Shodhya Pinda planetary strength.
reducedBhinnashtakavarga[].planet requiredstringPlanet or Lagna name. Seven classical planets (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn) plus Lagna (Ascendant). Rahu and Ketu are excluded from Ashtakavarga per BPHS.
reducedBhinnashtakavarga[].bindus requiredarray of numberBenefic points (bindus) for each of the 12 signs, ordered Aries through Pisces (index 0 = Aries, index 11 = Pisces). Each value ranges from 0 to 8, representing how many of the 8 contributors (7 planets + Lagna) provide a benefic point for this planet in that sign. Higher bindus indicate stronger planetary support.
reducedBhinnashtakavarga[].total requirednumberSum of bindus across all 12 signs. This total is constant per planet regardless of birth chart: Sun = 48, Moon = 49, Mars = 39, Mercury = 54, Jupiter = 56, Venus = 52, Saturn = 39, Lagna = 49. Useful as a validation checksum.
Show all fieldsShow fewer fields
FieldTypeDescription
reducedSarvashtakavarga requiredobjectReduced Sarvashtakavarga. Sum of the 7 reduced planetary Bhinnashtakavarga values per sign (Lagna excluded). Indicates relative sign strength after Shodhana purification.
reducedSarvashtakavarga.bindus requiredarray of numberCombined benefic points per sign from all 7 planets (Lagna excluded from SAV), ordered Aries through Pisces. Higher values indicate stronger signs for transit predictions and house strength analysis. Average is approximately 28 per sign.
reducedSarvashtakavarga.total requirednumberSum of all SAV bindus across 12 signs. Always equals 337 for every birth chart. This mathematical constant serves as a validation checksum for the calculation.
shodhyaPinda requiredarray of objectShodhya Pinda planetary strength scores per BPHS Ch. 69. Derived from Reduced Ashtakavarga. Each entry contains Rashi Pinda (sign-weighted strength), Graha Pinda (planet-association-weighted strength), and total Shodhya Pinda. Used for comparing planetary strength, predicting dasha results, and transit analysis.
shodhyaPinda[].planet requiredstringPlanet or Lagna name. Shodhya Pinda is calculated for all 7 classical planets plus Lagna.
shodhyaPinda[].rashiPinda requirednumberRashi Pinda component. Weighted sum of reduced Bhinnashtakavarga bindus per sign multiplied by Rashi Gunakar weights per BPHS Ch. 69. Higher values indicate stronger sign-based planetary strength.
shodhyaPinda[].grahaPinda requirednumberGraha Pinda component. Weighted sum of reduced Bhinnashtakavarga bindus per sign multiplied by the Graha Gunakar of planets occupying each sign (Sun=5, Moon=5, Mars=8, Mercury=5, Jupiter=10, Venus=7, Saturn=5). Reflects planetary association strength.
shodhyaPinda[].shodhyaPinda requirednumberTotal Shodhya Pinda (Rashi Pinda + Graha Pinda). Primary planetary strength score derived from Ashtakavarga reduction. Used for comparing relative strength of planets in a birth chart and predicting dasha period results.
signs requiredarray of string enumSign names in order, for mapping bindus array indices to zodiac signs. Index 0 = Aries through index 11 = Pisces.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "bhinnashtakavarga": [
    {
      "planet": "Sun",
      "bindus": [
        4,
        3
      ],
      "total": 48
    }
  ],
  "sarvashtakavarga": {
    "bindus": [
      28,
      31
    ],
    "total": 337
  },
  "reducedBhinnashtakavarga": [
    {
      "planet": "Sun",
      "bindus": [
        4,
        3
      ],
      "total": 48
    }
  ],
  "reducedSarvashtakavarga": {
    "bindus": [
      28,
      31
    ],
    "total": 337
  },
  "shodhyaPinda": [
    {
      "planet": "Sun",
      "rashiPinda": 123,
      "grahaPinda": 79,
      "shodhyaPinda": 202
    }
  ],
  "signs": [
    "Aries",
    "Taurus"
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get Shadbala (six-fold planetary strength) analysis - Shadbala Calculator API

POST /api/v2/vedic-astrology/shadbala

Calculate complete Shadbala (six-fold planetary strength) per Brihat Parashara Hora Shastra (BPHS) and BV Raman Graha and Bhava Balas. Returns all 6 strength components (Sthana Bala, Dig Bala, Kala Bala, Chesta Bala, Naisargika Bala, Drik Bala) plus Ishta Phala, Kashta Phala, strength ratio, and relative ranking for all 7 classical planets. Essential for evaluating planetary strength in Vedic birth chart analysis, dasha prediction, transit interpretation, and yoga assessment. Shadbala calculator API, planetary strength Vedic astrology, graha bala, Ishta Kashta Phala.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/shadbala" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
balaThemes requiredobjectLocalized name and one-line meaning for each of the six Shadbala components, keyed by the same field names each planet entry uses. Join it to render a readable strength breakdown in any of the eight supported languages instead of showing six untranslated Sanskrit terms.
balaThemes.sthanaBala requiredobjectLocalized label and meaning for one Shadbala component.
balaThemes.sthanaBala.name requiredstringLocalized name of this Shadbala component, suitable for a table header or a bar label.
balaThemes.sthanaBala.meaning requiredstringOne-line localized explanation of what this component measures.
balaThemes.digBala requiredobjectLocalized label and meaning for one Shadbala component.
balaThemes.digBala.name requiredstringLocalized name of this Shadbala component, suitable for a table header or a bar label.
balaThemes.digBala.meaning requiredstringOne-line localized explanation of what this component measures.
balaThemes.kalaBala requiredobjectLocalized label and meaning for one Shadbala component.
balaThemes.kalaBala.name requiredstringLocalized name of this Shadbala component, suitable for a table header or a bar label.
balaThemes.kalaBala.meaning requiredstringOne-line localized explanation of what this component measures.
balaThemes.chestaBala requiredobjectLocalized label and meaning for one Shadbala component.
balaThemes.chestaBala.name requiredstringLocalized name of this Shadbala component, suitable for a table header or a bar label.
balaThemes.chestaBala.meaning requiredstringOne-line localized explanation of what this component measures.
balaThemes.naisargikaBala requiredobjectLocalized label and meaning for one Shadbala component.
Show all fieldsShow fewer fields
FieldTypeDescription
balaThemes.naisargikaBala.name requiredstringLocalized name of this Shadbala component, suitable for a table header or a bar label.
balaThemes.naisargikaBala.meaning requiredstringOne-line localized explanation of what this component measures.
balaThemes.drikBala requiredobjectLocalized label and meaning for one Shadbala component.
balaThemes.drikBala.name requiredstringLocalized name of this Shadbala component, suitable for a table header or a bar label.
balaThemes.drikBala.meaning requiredstringOne-line localized explanation of what this component measures.
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
planets requiredarray of objectShadbala analysis for all 7 classical planets. Ordered: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn. Each entry contains all 6 strength components, total strength in virupas and Rupas, Ishta/Kashta Phala, minimum required threshold, strength ratio, and relative rank.
planets[].planet requiredstringPlanet name. One of the 7 classical Vedic planets (Saptgraha): Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn. Rahu and Ketu are excluded from Shadbala per BPHS.
planets[].sthanaBala requirednumberSthana Bala (Positional Strength) in virupas. Sum of 5 sub-components: Uchcha Bala (exaltation strength), Saptavargaja Bala (7-divisional friendship), Ojayugma Bala (odd/even sign placement), Kendradi Bala (angular house strength), and Drekkana Bala (decanate gender match). Higher values indicate stronger positional placement.
planets[].digBala requirednumberDig Bala (Directional Strength) in virupas. Based on angular distance from the planets directional strength house. Sun and Mars are strong at MC (10th), Moon and Venus at IC (4th), Mercury and Jupiter at ASC (1st), Saturn at DSC (7th). Range 0 to 60.
planets[].kalaBala requirednumberKala Bala (Temporal Strength) in virupas. Sum of 8 sub-components: Nathonnatha (day/night strength), Paksha (lunar phase), Tribhaga (third of day/night), Vara (weekday lord), Hora (planetary hour), Abda (year lord), Masa (month lord), and Ayana (declination-based seasonal strength).
planets[].chestaBala requirednumberChesta Bala (Motional Strength) in virupas. Based on planetary motion, so a retrograde graha scores higher because it is closer to Earth and working hardest. The Sun uses its Ayana Bala and the Moon its elongation from the Sun, per BPHS. Mars, Mercury, Jupiter, Venus and Saturn use the Sheeghra Kendra, the arc between the sheeghrochcha and the mean of the true and mean longitudes, with the roles of the mean Sun and the graha swapped for Mercury and Venus. Range 0 to 60.
planets[].naisargikaBala requirednumberNaisargika Bala (Natural Strength) in virupas. Fixed luminosity-based values per BPHS: Sun 60.00, Moon 51.43, Venus 42.86, Jupiter 34.29, Mercury 25.71, Mars 17.14, Saturn 8.57. Invariant across all charts.
planets[].drikBala requirednumberDrik Bala (Aspectual Strength) in virupas. Strength gained or lost from the aspects a graha receives. Benefic aspects add strength and malefic aspects reduce it, so this value is negative when malefics dominate. Mercury counts as benefic or malefic by the company it keeps in its own sign, decided by count with the nearest graha breaking a tie, and the Moon by its paksha. Uses the graded Sputa Drishti curve of BPHS Ch. 26 with the Vishesha (special) aspects of Mars, Jupiter and Saturn applied at their precise DEGREE ranges rather than by whole sign.
planets[].totalVirupas requirednumberTotal Shadbala in virupas (Shashtiamsas). Sum of all 6 strength components. Higher total indicates a stronger planet in the birth chart. Used for comparing relative planetary strength and evaluating dasha period potential.
planets[].totalRupas requirednumberTotal Shadbala in Rupas (totalVirupas / 60). 1 Rupa equals 60 virupas. Rupas are the standard unit for comparing planetary strength against minimum required thresholds.
planets[].minRequired requirednumberMinimum required strength in Rupas per BPHS. Sun 5.0, Moon 6.0, Mars 5.0, Mercury 7.0, Jupiter 6.5, Venus 5.5, Saturn 5.0. A planet below its minimum is considered weak and may underperform in its dasha periods.
planets[].strengthRatio requirednumberRatio of actual Rupas to minimum required (totalRupas / minRequired). Values above 1.0 indicate sufficient strength. Higher ratios mean proportionally stronger planets. Used for ranking planets by relative strength.
planets[].ishtaPhala requirednumberIshta Phala (auspicious strength) in virupas. Derived from Uchcha Bala and Chesta Bala: sqrt(ucchaBala * chestaBala). Indicates the planets capacity to produce favorable results during its dasha and transit periods.
planets[].kashtaPhala requirednumberKashta Phala (malefic strength) in virupas. Derived from complements of Uchcha and Chesta Bala: sqrt((60 - ucchaBala) * (60 - chestaBala)). Indicates the planets capacity to produce unfavorable results. Zero when both Uchcha and Chesta exceed 60.
planets[].relativeRank requirednumberRelative strength rank among the 7 planets (1 = strongest, 7 = weakest). Ranked by strengthRatio (actual/required), not raw virupas, so each planet is compared fairly against its own BPHS threshold.
Example response
{
  "balaThemes": {
    "sthanaBala": {
      "name": "Positional strength",
      "meaning": "Strength from the sign, divisional chart and house the graha occupies. Usually the largest of the six."
    },
    "digBala": {
      "name": "Positional strength",
      "meaning": "Strength from the sign, divisional chart and house the graha occupies. Usually the largest of the six."
    },
    "kalaBala": {
      "name": "Positional strength",
      "meaning": "Strength from the sign, divisional chart and house the graha occupies. Usually the largest of the six."
    },
    "chestaBala": {
      "name": "Positional strength",
      "meaning": "Strength from the sign, divisional chart and house the graha occupies. Usually the largest of the six."
    },
    "naisargikaBala": {
      "name": "Positional strength",
      "meaning": "Strength from the sign, divisional chart and house the graha occupies. Usually the largest of the six."
    },
    "drikBala": {
      "name": "Positional strength",
      "meaning": "Strength from the sign, divisional chart and house the graha occupies. Usually the largest of the six."
    }
  },
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "planets": [
    {
      "planet": "Sun",
      "sthanaBala": 168.4,
      "digBala": 6.43,
      "kalaBala": 116.58,
      "chestaBala": 26.06,
      "naisargikaBala": 60,
      "drikBala": 6.98,
      "totalVirupas": 384.45,
      "totalRupas": 6.41,
      "minRequired": 5,
      "strengthRatio": 1.2814,
      "ishtaPhala": 34.11,
      "kashtaPhala": 22.83,
      "relativeRank": 2
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

List all 17 avastha states - Planetary State Reference

GET /api/v2/vedic-astrology/avasthas

Reference list of every avastha (planetary state) across the three classical systems: the five Baladi age states, the three Jagradadi waking states, and the nine Deeptadi dispositional states. Each carries a short label and what the state means for the results the graha can deliver. Use it to turn the bare state names a birth chart returns into readable output, filtered by system if you only need one. Avastha meaning API, Baladi avastha, Jagradadi, Deeptadi, planetary state Vedic astrology.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
system querystring enumReturn only the states of one system: "baladi" (5), "jagradadi" (3) or "deeptadi" (9). Omit for all 17.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/avasthas" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
[].id requiredstringUnique slug for the avastha state. It is the lowercased form of the state name the birth chart returns, so a chart value maps straight onto this record.
[].name requiredstringSanskrit name of the state, exactly as it appears in the `awastha`, `jagradadi` or `deeptadi` field of a birth chart.
[].system requiredstring enumWhich avastha system the state belongs to, and therefore which birth-chart field it appears in. "baladi" is the five-fold age state set by degree within the sign and appears in `awastha`. "jagradadi" is the three-fold waking state set by sign dignity. "deeptadi" is the nine-fold dispositional state. Baladi applies to every body; the other two apply to the seven classical grahas only.
[].meaning requiredstringShort label for the state, sized for a table cell beside the graha.
[].interpretation requiredstringWhat the state means for the results the graha delivers, which is the whole purpose of reading an avastha: the chart says where a graha is, the avastha says how much of its promise it can keep.
Example response
[
  {
    "id": "jagrat",
    "name": "Jagrat",
    "system": "jagradadi",
    "meaning": "Awake",
    "interpretation": "In its own sign or exaltation the graha is fully alert and gives its results without hindrance."
  }
]

Try it

Not sent

Get avastha by ID - Planetary State Detail

GET /api/v2/vedic-astrology/avasthas/{id}

Look up a single avastha state by its slug, which is the lowercased state name a Vedic birth chart returns in `awastha`, `jagradadi` or `deeptadi`. Returns the system it belongs to, a short label, and what the state means for the results the graha delivers.

Parameters

ParameterTypeDescription
id required pathstring enumAvastha slug. Baladi: bala, kumara, yuva, vriddha, mrita. Jagradadi: jagrat, swapna, sushupti. Deeptadi: dipta, svastha, pramudita, shanta, dina, duhkhita, vikala, khala, kopa.
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
curl
curl "https://roxyapi.com/api/v2/vedic-astrology/avasthas/dipta" \
  -H "X-API-Key: YOUR_KEY"

Response fields

FieldTypeDescription
id requiredstringUnique slug for the avastha state. It is the lowercased form of the state name the birth chart returns, so a chart value maps straight onto this record.
name requiredstringSanskrit name of the state, exactly as it appears in the `awastha`, `jagradadi` or `deeptadi` field of a birth chart.
system requiredstring enumWhich avastha system the state belongs to, and therefore which birth-chart field it appears in. "baladi" is the five-fold age state set by degree within the sign and appears in `awastha`. "jagradadi" is the three-fold waking state set by sign dignity. "deeptadi" is the nine-fold dispositional state. Baladi applies to every body; the other two apply to the seven classical grahas only.
meaning requiredstringShort label for the state, sized for a table cell beside the graha.
interpretation requiredstringWhat the state means for the results the graha delivers, which is the whole purpose of reading an avastha: the chart says where a graha is, the avastha says how much of its promise it can keep.
Example response
{
  "id": "jagrat",
  "name": "Jagrat",
  "system": "jagradadi",
  "meaning": "Awake",
  "interpretation": "In its own sign or exaltation the graha is fully alert and gives its results without hindrance."
}

Try it

Not sent

Get the twelve Arudha padas - Arudha Lagna Calculator API

POST /api/v2/vedic-astrology/arudha

Calculate the Arudha Lagna (AL) and all twelve Arudha padas of Jaimini astrology from birth details. An Arudha pada is the perceived or projected form of a bhava, so where the Lagna shows what a person is, the Arudha Lagna shows the image and status the world attaches to them. Returns each pada with the bhava lord and the count that produced it, the sign it lands in, its house from the Lagna, and a flag showing whether the classical exception moved it. Includes the Upapada (UL) read for marriage. Arudha Lagna calculator API, Jaimini pada, Upapada Lagna, Vedic astrology public image.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/arudha" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
lagnaRashi requiredstringZodiac sign of the Ascendant (Lagna), which anchors the twelve bhavas the padas are derived from.
arudhaLagna requiredstringZodiac sign of the Arudha Lagna (AL), the pada of the first house and the single most used value in this response. Repeated at the top level so a client rendering only the AL does not have to search the array.
upapada requiredstringZodiac sign of the Upapada (UL), the pada of the twelfth house, read for marriage and its durability. The second most used value, so it is also lifted to the top level.
padas requiredarray of objectAll twelve Arudha padas in bhava order, a1 through a12. Each carries the lord and the count it came from, so the derivation can be checked by hand.
padas[].id requiredstringPada identifier, a1 through a12, matching the bhava it belongs to. a1 is the Arudha Lagna and a12 the Upapada.
padas[].abbreviation requiredstringPractitioner shorthand written on a chart: AL for the Arudha Lagna, A2 through A11, and UL for the Upapada.
padas[].name requiredstringClassical Sanskrit name of the pada, for example Arudha Lagna, Dhana Pada, Dara Pada, Upapada.
padas[].house requiredintegerBhava (house) number 1-12 whose pada this is. The pada is the perceived, outward form of that bhava.
padas[].bhavaRashi requiredstringZodiac sign (rashi) occupying that bhava, counted whole-sign from the Lagna. The count to the pada starts here.
padas[].lord requiredstringLord of the bhava sign. The pada is found by counting to this graha and then the same distance again.
padas[].lordRashi requiredstringZodiac sign the bhava lord occupies, which sets the length of the count.
Show all fieldsShow fewer fields
FieldTypeDescription
padas[].rashi requiredstringZodiac sign the pada falls in, after the classical exception is applied. This is the answer most readings start from.
padas[].houseFromLagna requiredintegerWhich house from the Lagna the pada sits in, counted inclusively 1-12. Reading a pada against the natal Lagna is how its strength is judged.
padas[].exceptionApplied requiredbooleanTrue when the raw pada landed in the same bhava or the seventh from it and was moved to the tenth from there, as the classical rule requires. Surfaced so a reader can see exactly why a pada sits where it does, which is the step implementations most often skip.
padas[].meaning requiredstringShort label for what this pada is read for, sized for a table cell.
padas[].significations requiredstringWhat this pada governs. Padas describe how a matter is PERCEIVED, which is what separates them from the bhava significations of the same house.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "lagnaRashi": "Libra",
  "arudhaLagna": "Leo",
  "upapada": "Cancer",
  "padas": [
    {
      "id": "a1",
      "abbreviation": "AL",
      "name": "Arudha Lagna",
      "house": 1,
      "bhavaRashi": "Libra",
      "lord": "Venus",
      "lordRashi": "Pisces",
      "rashi": "Leo",
      "houseFromLagna": 11,
      "exceptionApplied": false,
      "meaning": "Public image",
      "significations": "How the world sees the native: status, reputation and the persona others react to, rather than the self behind it."
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get Chara Karakas including Atmakaraka - Jaimini Karaka Calculator API

POST /api/v2/vedic-astrology/chara-karakas

Calculate the Chara Karakas of Jaimini astrology from birth details: the movable significators assigned by ranking each graha on how far it has advanced into its sign. The highest becomes the Atmakaraka, the soul significator and the strongest influence in the chart, and the rest take the Amatya, Bhratri, Matri, Pitri, Putra, Gnati and Dara offices in descending order. Supports both the eight-karaka scheme, where Rahu is included with its degree reversed, and the seven-karaka scheme that excludes the nodes, because the two can name a different Atmakaraka for the same chart. Atmakaraka calculator API, Darakaraka, Jaimini chara karaka, Vedic astrology soul significator.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
schemestring enumWhich Chara Karaka scheme to rank. "eight" includes Rahu, counting its degree in reverse because it moves retrograde, and returns eight offices including Pitrikaraka. "seven" ranks only the seven classical grahas and drops Pitrikaraka. Ketu is excluded from both, since it always mirrors the Rahu degree exactly. The two schemes can produce a different Atmakaraka for the same chart, so select the one your reference software uses. Defaults to "eight".
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/chara-karakas" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
scheme requiredstring enumScheme the ranking used, echoed back so a cached or logged response is self describing.
atmakaraka requiredstringGraha holding the Atmakaraka office, the most consequential single value in Jaimini analysis. Lifted to the top level so a client reading only the Atmakaraka does not have to search the array.
darakaraka requiredstringGraha holding the Darakaraka office, read for the spouse. The second most requested value, so it is also lifted to the top level.
karakas requiredarray of objectKaraka offices in descending rank, Atmakaraka first. Eight entries in the eight-karaka scheme, seven in the seven-karaka scheme.
karakas[].id requiredstringKaraka office identifier: atmakaraka, amatyakaraka, bhratrikaraka, matrikaraka, pitrikaraka, putrakaraka, gnatikaraka, darakaraka. Returned in descending rank, so the first entry is always the Atmakaraka.
karakas[].name requiredstringClassical Sanskrit name of the karaka office.
karakas[].abbreviation requiredstringPractitioner shorthand: AK, AmK, BK, MK, PiK, PK, GK, DK, in descending rank order.
karakas[].graha requiredstringGraha holding this office in this chart.
karakas[].rashi requiredstringZodiac sign (rashi) the graha occupies.
karakas[].degreeInRashi requirednumberDegree the graha has advanced into its sign, 0 to 30. This is the figure a chart displays.
karakas[].rankingDegree requirednumberThe degree actually ranked. Identical to degreeInRashi for every graha except Rahu, where it is 30 minus that value because Rahu advances backward through the sign. Returned so the ordering can be checked without knowing the rule.
Show all fieldsShow fewer fields
FieldTypeDescription
karakas[].isReversed requiredbooleanTrue only for Rahu, flagging that its degree was measured from the end of the sign rather than the start.
karakas[].meaning requiredstringShort label for what this karaka is read for, sized for a table cell.
karakas[].significations requiredstringWhat this karaka office governs in a reading.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "scheme": "eight",
  "atmakaraka": "Moon",
  "darakaraka": "Saturn",
  "karakas": [
    {
      "id": "atmakaraka",
      "name": "Atmakaraka",
      "abbreviation": "AK",
      "graha": "Moon",
      "rashi": "Libra",
      "degreeInRashi": 24.4808,
      "rankingDegree": 24.4808,
      "isReversed": false,
      "meaning": "Soul and self",
      "significations": "The desire that brought the soul to this birth, and the single strongest influence in the chart, ruling the native above every other graha."
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent

Get Bhava Bala (house strength) for all twelve houses - Bhava Bala Calculator API

POST /api/v2/vedic-astrology/bhava-bala

Calculate Bhava Bala (house strength) for all twelve bhavas per Brihat Parashara Hora Shastra (BPHS) and BV Raman Graha and Bhava Balas. Returns the three classical components (Bhavadhipati Bala from the house lord Shadbala, Bhava Digbala from the rashi class and direction, Bhava Drishti Bala from aspects on the bhava madhya) plus totals in virupas and rupas and a strength ranking. Bhavas are built on unequal Sripati mid-cusps, so a house near a sign boundary is measured where it actually falls. Shadbala measures which graha is strong, Bhava Bala measures which life area is strong, and reading both together is how a practitioner separates a strong planet in a weak house from a weak planet in a strong one. Bhava Bala calculator API, house strength Vedic astrology, bhava bala virupas, Bhavadhipati Bala, Bhava Digbala, Sripati bhava madhya.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/bhava-bala" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
houseSystem requiredstringHouse frame the bhavas were built on. Always sripati: Bhava Bala is defined on unequal bhava madhyas, not on whole signs.
bhavas requiredarray of objectBhava Bala for all twelve houses in order, house 1 first. Each entry carries its own components so a client can explain a score rather than just display it.
bhavas[].house requirednumberBhava (house) number 1 to 12, counted from the Lagna. House 1 is the Ascendant bhava, house 10 the career bhava, house 7 the partnership bhava.
bhavas[].rashi requiredstringZodiac sign holding this bhavas madhya (mid-cusp). Under the Sripati house system the bhavas are unequal, so this is NOT always the nth sign from the Lagna, and two bhavas can share a sign while another sign holds none.
bhavas[].madhya requirednumberBhava madhya (mid-cusp) longitude in degrees, sidereal Lahiri. The point every strength component below is measured at. Bhavas 1, 4, 7 and 10 sit on the Ascendant, IC, Descendant and Midheaven; the rest trisect the quadrants between them.
bhavas[].lord requiredstringBhavadhipati (house lord), the ruler of the sign holding the madhya. Its Shadbala is what this bhava inherits, so a house ruled by a strong graha starts strong.
bhavas[].bhavadhipatiBala requirednumberBhavadhipati Bala in virupas: the total Shadbala of the house lord, carried across unchanged. The dominant term of the three, typically 250 to 650. Two bhavas ruled by the same graha therefore share this value exactly.
bhavas[].digBala requirednumberBhava Digbala (directional strength) in virupas, 0 to 60 in steps of 10. Each rashi class is strongest in one cardinal bhava (human signs at the Lagna, quadruped at the 10th, watery at the 4th, Scorpio at the 7th) and loses 10 virupas per bhava of separation, reaching 0 at the seventh from it.
bhavas[].drishtiBala requirednumberBhava Drishti Bala (aspectual strength) in virupas, computed on the bhava madhya exactly as Graha Drik Bala is computed on a graha. Benefic aspects add and malefic aspects subtract, so this term is often negative.
bhavas[].totalVirupas requirednumberTotal Bhava Bala in virupas, the sum of the three components above. Use it to compare houses within one chart: the strongest bhavas are the life areas that unfold with least resistance.
bhavas[].totalRupas requirednumberTotal Bhava Bala in rupas (totalVirupas / 60). 1 rupa equals 60 virupas. Rupas are the conventional unit in classical tables.
Show all fieldsShow fewer fields
FieldTypeDescription
bhavas[].rank requirednumberStrength rank among the twelve bhavas, 1 = strongest. Ranked on totalVirupas, so it never disagrees with the published totals.
houseThemes requiredobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focus requiredstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "houseSystem": "sripati",
  "bhavas": [
    {
      "house": 1,
      "rashi": "Libra",
      "madhya": 196.4541,
      "lord": "Venus",
      "bhavadhipatiBala": 548.54,
      "digBala": 60,
      "drishtiBala": -7.7,
      "totalVirupas": 600.84,
      "totalRupas": 10.01,
      "rank": 1
    }
  ],
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Get the Bhav Chalit (Chalit Kundli) cusp-based house chart - Bhav Chalit API

POST /api/v2/vedic-astrology/bhav-chalit

Calculate the Bhav Chalit chart, also written Bhava Chalit or Chalit Kundli, placing every graha by unequal Sripati bhava cusps instead of by whole sign. The Rashi (D1) chart treats a whole sign as a house, so a graha a degree from a sign boundary is shown in a house it does not actually occupy; the Chalit chart resolves that by measuring from the bhava sandhis, which is why practitioners check it before reading house results, house lordship strength or transit effects. Returns the twelve bhava boundaries with their madhyas and spans, every graha in both frames, and a moved flag on the placements that differ. Bhav Chalit API, Chalit Kundli calculator, bhava chalit chart, Sripati house cusps, cusp based house chart Vedic astrology.

Parameters

ParameterTypeDescription
lang querystring enumResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. Default en.
focus querystring enumWhich signification vocabulary the houseThemes map returns. "general" gives the classical bhava significations (self, wealth, siblings, home, and so on). "finance" gives the money reading of the same twelve bhavas, so house 2 returns income and savings, 5 speculation and risk appetite, 8 sudden money and leverage, 11 gains and profits, and 12 expenses and capital outflow. Use "finance" for wealth, income, business and market timing questions in Krishnamurti Paddhati, where the significator house groups 2, 6, 10, 11 for earned income and 5, 8, 11 for speculation are read against a running dasha. Defaults to "general". Default general.

Request body

FieldTypeDescription
date requiredstring (date)Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).
time requiredstring (time)Birth time in 24-hour HH:MM:SS format. Time is CRITICAL for Lagna (Ascendant) calculation and house divisions. It changes every two hours roughly. Even minutes matter for accurate nakshatra pada and divisional chart (D9, D10) calculations. Without exact time, Lagna and house-based predictions will be incorrect.
latitude requirednumberBirth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.
longitude requirednumberBirth location longitude in decimal degrees. Affects local time calculations and ayanamsha adjustments. Example: Delhi 77.2090, Mumbai 72.8777, Kathmandu 85.3240.
timezonenumber or stringTimezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time. Defaults to 5.5.
ayanamsastring enumSidereal frame (ayanamsa) the chart is cast in. "lahiri" is Lahiri/Chitrapaksha, the traditional Vedic standard used by most software, and is the default. "raman" is the B.V. Raman ayanamsa from Hindu Predictive Astrology, about 1.45 degrees below Lahiri. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue, for reconciling exactly against a specific reference program. The frame rotates the whole zodiac, so a graha sitting within 1.45 degrees of a boundary can change rashi or nakshatra when you switch: pick the one your reference software uses and keep it.
ayanamsaValuenumberCustom ayanamsa value in degrees. When provided, overrides the computed ayanamsa from the selected type. Use for testing with specific ayanamsa values or matching a particular reference source.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/bhav-chalit" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1990-07-04","time":"10:12:00","latitude":28.6139,"longitude":77.209}'

Response fields

FieldTypeDescription
frame requiredobjectThe sidereal frame this response was computed in, so a cached or forwarded payload is self describing.
frame.ayanamsa requiredstringSidereal frame this chart was cast in, echoing the ayanamsa request field. "lahiri" when the field was omitted.
frame.ayanamsaDegrees requirednumberDegrees actually subtracted from every tropical longitude to produce this chart, read at the birth instant. Subtract it back to recover the tropical positions, or compare it against your reference software to confirm you are in the same frame before chasing a placement difference.
houseSystem requiredstringHouse frame used to build the bhavas. Always sripati for the Chalit chart.
ascendant requirednumberSidereal Lahiri Ascendant in degrees. The madhya of bhava 1.
midheaven requirednumberSidereal Lahiri Midheaven in degrees. The madhya of bhava 10.
bhavas requiredarray of objectThe twelve Sripati bhavas in order with their boundaries and occupants.
bhavas[].house requirednumberBhava number 1 to 12.
bhavas[].start requirednumberBhava sandhi (junction) opening this bhava, in degrees. The midpoint between this madhya and the previous one. A graha exactly on a sandhi belongs to the bhava it opens.
bhavas[].madhya requirednumberBhava madhya (mid-cusp) in degrees. Bhavas 1, 4, 7 and 10 sit exactly on the Ascendant, IC, Descendant and Midheaven; the other eight trisect the quadrant arcs between them.
bhavas[].end requirednumberBhava sandhi closing this bhava. Identical to the next bhavas start, so the twelve bhavas tile the zodiac with no gap.
bhavas[].span requirednumberWidth of the bhava in degrees. Rarely 30: the Ascendant and Midheaven are only 90 degrees apart by coincidence of latitude and epoch, so quadrants stretch and squeeze and the bhavas with them.
bhavas[].rashi requiredstringSign holding the madhya. Because bhavas are unequal, two bhavas can share a sign while another sign holds no madhya at all.
bhavas[].grahas requiredarray of stringGrahas falling inside this bhava. Empty when the bhava is unoccupied.
Show all fieldsShow fewer fields
FieldTypeDescription
grahas requiredarray of objectAll nine grahas with both their Chalit bhava and their whole-sign Rashi house, plus a moved flag.
grahas[].graha requiredstringGraha name. All nine are placed, the seven classical grahas plus the lunar nodes Rahu and Ketu.
grahas[].longitude requirednumberSidereal Lahiri longitude in degrees.
grahas[].rashi requiredstringZodiac sign the graha occupies. Identical to the Rashi (D1) chart.
grahas[].bhava requirednumberBhava the graha falls in under the unequal Sripati cusps. This is the Bhav Chalit placement and the reason the chart exists.
grahas[].rashiHouse requirednumberHouse the same graha occupies in the whole-sign Rashi chart, counted from the Lagna sign. Returned alongside bhava so the difference is visible without a second request.
grahas[].moved requiredbooleanTrue when bhava and rashiHouse disagree, i.e. the graha changes house between the Rashi chart and the Chalit chart. These are the placements a practitioner opens this chart to check.
movedCount requirednumberHow many of the nine grahas change house between the Rashi chart and the Chalit chart. Zero is a perfectly normal result and means the two charts agree for this nativity.
houseThemes requiredobjectSignifications of each of the twelve bhavas (houses), keyed by house number 1 to 12, as short keywords. Bhava 1 is the Lagna (self, body, vitality), 2 wealth and speech, 4 home and mother, 7 marriage and partnership, 10 career and status, 11 gains. Use it to label the house numbers returned elsewhere in the response: a Vimshottari dasha period signifying houses 2, 7 and 8, or a KP significator carrying houses 11 and 6, becomes readable text without a separate lookup call. Returned once per response rather than repeated per period, and localized by the lang query parameter alongside every other interpretation field.
focus requiredstring enumWhich signification vocabulary produced the houseThemes keywords in this response, echoing the focus query parameter. Always present, and "general" when the parameter was omitted. Read it to label a rendered house legend, or to tell two cached responses apart when only one asked for the finance lens.
Example response
{
  "frame": {
    "ayanamsa": "lahiri",
    "ayanamsaDegrees": 24.2247
  },
  "houseSystem": "sripati",
  "ascendant": 196.4541,
  "midheaven": 106.9045,
  "bhavas": [
    {
      "house": 1,
      "start": 181.4593,
      "madhya": 196.4541,
      "end": 211.5292,
      "span": 30.07,
      "rashi": "Libra",
      "grahas": [
        "Moon"
      ]
    }
  ],
  "grahas": [
    {
      "graha": "Sun",
      "longitude": 35.9692,
      "rashi": "Taurus",
      "bhava": 5,
      "rashiHouse": 6,
      "moved": true
    }
  ],
  "movedCount": 3,
  "houseThemes": {
    "2": [
      "wealth",
      "family"
    ]
  },
  "focus": "general"
}

Try it

JSON, as the example above shows it.
Not sent

Heliacal rising and setting (udaya and asta) - Graha Asta Calculator API

POST /api/v2/vedic-astrology/heliacal

Calculate heliacal rising (udaya) and setting (asta) of the six visible grahas for any date and place, by the Surya Siddhanta rule. Returns whether each graha currently clears the solar glare, its separation from the Sun in classical degrees of time, and the dates its visibility last changed and next changes. This is the calculation behind Guru Asta and Shukra Asta, the periods classical muhurta withholds marriage and other auspicious ceremonies. Unlike a birth chart combustion flag it is location aware, because the angle the ecliptic makes with the local horizon decides how long a graha lingers after the Sun. Graha asta API, Guru Asta Shukra Asta dates, heliacal rising calculator, planetary combustion muhurta.

Request body

FieldTypeDescription
date requiredstring (date)Local calendar date to judge, in YYYY-MM-DD format. There is deliberately no time field: heliacal visibility is a once-a-day verdict read at that day sunrise or sunset, so a clock time could only pick a different day.
latitude requirednumberObserver latitude in decimal degrees, restricted to -60 to 60. Visibility depends on the observer, unlike the longitude orb every chart API reports, because the angle the ecliptic makes with the horizon decides how long a graha lingers after the Sun. Beyond this band the classical rule stops describing solar glare and starts describing polar horizon geometry, so it is declined rather than answered wrongly.
longitude requirednumberObserver longitude in decimal degrees. Sets local sunrise and sunset, which are the instants the verdict is read at. Example: Mumbai 72.8777, Delhi 77.2090, London -0.1278.
timezonenumber or stringTimezone: IANA name (e.g. "Asia/Kolkata", "Europe/London") OR decimal hours from UTC. Fixes which local day the date refers to, and every datetime in the response is returned in it. Defaults to 5.5.
curl
curl -X POST "https://roxyapi.com/api/v2/vedic-astrology/heliacal" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-07-25","latitude":19.076,"longitude":72.8777}'

Response fields

FieldTypeDescription
date requiredstringLocal calendar date the verdicts were read for, echoed from the request.
grahas requiredarray of objectOne entry per visible graha, in classical order. A graha is omitted only when no horizon crossing exists for it at this latitude on this day.
grahas[].graha requiredstringGraha name. Only the six with a visible body appear: Moon, Mars, Mercury, Jupiter, Venus and Saturn. The Sun cannot be lost in his own glare, and Rahu and Ketu are computed points with nothing to see.
grahas[].visible requiredbooleanWhether the graha clears the Sun glare on this day. False is the state a practitioner calls asta or combust, during which classical muhurta withholds auspicious ceremonies, most strictly marriage while Jupiter or Venus is invisible.
grahas[].horizon requiredstring enumHorizon this graha is currently judged at. West means it sets after the Sun and is an evening object, east that it rises before him and is a morning one.
grahas[].timeDegrees requirednumberSeparation from the Sun in degrees of TIME (kalamsa), measured along the equator between the two bodies horizon crossings. This is the quantity Surya Siddhanta actually compares against the limit, and it is not the same as the difference of ecliptic longitudes: the two diverge by roughly 3 degrees at Mumbai and by more than 15 further north, because it accounts for the angle the ecliptic makes with the local horizon.
grahas[].kalamsa requirednumberThe limit in degrees of time this graha must clear to be seen, per Surya Siddhanta ch. IX vv.6-8 and ch. X.1: Moon 12, Jupiter 11, Saturn 15, Mars 17, Venus 10 or 8, Mercury 14 or 12. Larger means the graha is fainter and needs more distance from the Sun.
grahas[].retrograde requiredbooleanWhether the graha is retrograde, which for Mercury and Venus tightens the limit (Venus 10 to 8, Mercury 14 to 12). Retrograde puts them near inferior conjunction where they are far closer to Earth, so the larger brighter disk survives closer to the Sun.
grahas[].longitudeSeparation requirednumberPlain angular separation of the two ecliptic longitudes, in degrees. Returned beside timeDegrees so the two measures can be compared: this is what a combustion flag on a birth chart uses, and the gap between them is precisely what a location-aware heliacal calculation adds.
grahas[].lastEvent requiredobjectnullThe event that produced the current state, or null when none falls inside the search horizon (up to about one synodic period, so Mars can legitimately have none).
grahas[].lastEvent.type requiredstring enumUdaya is heliacal rising, the graha re-emerging from the Sun rays and becoming visible again. Asta (also called lopa, moudhya or moudyami) is heliacal setting, the graha disappearing into them. Stable Sanskrit keys, never translated.
grahas[].lastEvent.horizon requiredstring enumHorizon the event happens at. East means it is read before sunrise, so the graha is a morning object; west means after sunset, an evening object. A graha crosses to the other horizon as it passes the Sun, which is why an asta and the udaya that follows it are usually on opposite horizons.
grahas[].lastEvent.datetime requiredstringLocal civil datetime of the event (YYYY-MM-DDTHH:MM:SS), being the moment the graha itself crosses the horizon on the day its verdict changes. That instant, rather than sunrise or sunset, is what published Asta tables print.
grahas[].lastEvent.timeDegrees requirednumberSeparation from the Sun in degrees of time on the event day, measured the way the classical rule requires. Sits just either side of kalamsa, since that crossing is what defines the event.
Show all fieldsShow fewer fields
FieldTypeDescription
grahas[].lastEvent.kalamsa requirednumberThe limit that was crossed. Can differ from the current reading limit for Mercury and Venus, whose limit tightens when they are retrograde, so an asta entered while retrograde may be left at a different threshold.
grahas[].nextEvent requiredobjectnullThe event that will end the current state, or null when none falls inside the search horizon. For an invisible graha this is the udaya a practitioner is waiting for, so it answers when Guru Asta or Shukra Asta lifts.
grahas[].nextEvent.type requiredstring enumUdaya is heliacal rising, the graha re-emerging from the Sun rays and becoming visible again. Asta (also called lopa, moudhya or moudyami) is heliacal setting, the graha disappearing into them. Stable Sanskrit keys, never translated.
grahas[].nextEvent.horizon requiredstring enumHorizon the event happens at. East means it is read before sunrise, so the graha is a morning object; west means after sunset, an evening object. A graha crosses to the other horizon as it passes the Sun, which is why an asta and the udaya that follows it are usually on opposite horizons.
grahas[].nextEvent.datetime requiredstringLocal civil datetime of the event (YYYY-MM-DDTHH:MM:SS), being the moment the graha itself crosses the horizon on the day its verdict changes. That instant, rather than sunrise or sunset, is what published Asta tables print.
grahas[].nextEvent.timeDegrees requirednumberSeparation from the Sun in degrees of time on the event day, measured the way the classical rule requires. Sits just either side of kalamsa, since that crossing is what defines the event.
grahas[].nextEvent.kalamsa requirednumberThe limit that was crossed. Can differ from the current reading limit for Mercury and Venus, whose limit tightens when they are retrograde, so an asta entered while retrograde may be left at a different threshold.
Example response
{
  "date": "2026-07-25",
  "grahas": [
    {
      "graha": "Jupiter",
      "visible": false,
      "horizon": "west",
      "timeDegrees": 3.01,
      "kalamsa": 11,
      "retrograde": false,
      "longitudeSeparation": 2.89
    }
  ]
}

Try it

JSON, as the example above shows it.
Not sent