Kundli

The birth chart: lagna, the nine grahas, divisional charts, aspects, yogas, Ashtakavarga, positions at any moment.

Birth chart: lagna and the nine grahas

POST/v1/kundli

2 credits · Secret key (test or live) · getKundli · Page for this operation

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • lagna object
    • sign string required
    • sign_label string required
    • degree number required
    • nakshatra NakshatraId required

      The 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.

      one of ashwini, bharani, krittika, rohini, mrigashira, ardra, punarvasu, pushya, ashlesha, magha, purva_phalguni, uttara_phalguni, hasta, chitra, swati, vishakha, anuradha, jyeshtha, mula, purva_ashadha, uttara_ashadha, shravana, dhanishta, shatabhisha, purva_bhadrapada, uttara_bhadrapada, revati

    • nakshatra_label string required
    • pada integer required

      ≥ 1 · ≤ 4

  • planets array of object required
    • id string required
    • label string required
    • longitude number required

      ≥ 0 · < 360

    • sign string required
    • degree_in_sign number required
    • nakshatra NakshatraId required

      The 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.

      one of ashwini, bharani, krittika, rohini, mrigashira, ardra, punarvasu, pushya, ashlesha, magha, purva_phalguni, uttara_phalguni, hasta, chitra, swati, vishakha, anuradha, jyeshtha, mula, purva_ashadha, uttara_ashadha, shravana, dhanishta, shatabhisha, purva_bhadrapada, uttara_bhadrapada, revati

    • pada integer required

      ≥ 1 · ≤ 4

    • nakshatra_lord string required
    • house integer

      ≥ 1 · ≤ 12

    • retrograde boolean required
  • divisional_lagnas object
    • D2 string required
    • D9 string required
    • D10 string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 3,310 characters
{
  "data": {
    "lagna": {
      "sign": "leo",
      "sign_label": "Leo",
      "degree": 4.27,
      "nakshatra": "magha",
      "nakshatra_label": "Magha",
      "pada": 2
    },
    "planets": [
      {
        "id": "sun",
        "label": "Sun",
        "longitude": 116.3139,
        "sign": "cancer",
        "degree_in_sign": 26.3139,
        "nakshatra": "ashlesha",
        "pada": 3,
        "nakshatra_lord": "mercury",
        "house": 12,
        "retrograde": false
      },
      {
        "id": "moon",
        "label": "Moon",
        "longitude": 18.0955,
        "sign": "aries",
        "degree_in_sign": 18.0955,
        "nakshatra": "bharani",
        "pada": 2,
        "nakshatra_lord": "venus",
        "house": 9,
        "retrograde": false
      },
      {
        "id": "mars",
        "label": "Mars",
        "longitude": 26.2271,
        "sign": "aries",
        "degree_in_sign": 26.2271,
        "nakshatra": "bharani",
        "pada": 4,
        "nakshatra_lord": "venus",
        "house": 9,
        "retrograde": false
      },
      {
        "id": "mercury",
        "label": "Mercury",
        "longitude": 143.6373,
        "sign": "leo",
        "degree_in_sign": 23.6373,
        "nakshatra": "purva_phalguni",
        "pada": 4,
        "nakshatra_lord": "venus",
        "house": 1,
        "retrograde": false
      },
      {
        "id": "jupiter",
        "label": "Jupiter",
        "longitude": 95.14,
        "sign": "cancer",
        "degree_in_sign": 5.14,
        "nakshatra": "pushya",
        "pada": 1,
        "nakshatra_lord": "saturn",
        "house": 12,
        "retrograde": false
      },
      {
        "id": "venus",
        "label": "Venus",
        "longitude": 95.1983,
        "sign": "cancer",
        "degree_in_sign": 5.1983,
        "nakshatra": "pushya",
        "pada": 1,
        "nakshatra_lord": "saturn",
        "house": 12,
        "retrograde": false
      },
      {
        "id": "saturn",
        "label": "Saturn",
        "longitude": 266.2724,
        "sign": "sagittarius",
        "degree_in_sign": 26.2724,
        "nakshatra": "purva_ashadha",
        "pada": 4,
        "nakshatra_lord": "venus",
        "house": 5,
        "retrograde": true
      },
      {
        "id": "rahu",
        "label": "Rahu",
        "longitude": 283.4929,
        "sign": "capricorn",
        "degree_in_sign": 13.4929,
        "nakshatra": "shravana",
        "pada": 2,
        "nakshatra_lord": "moon",
        "house": 6,
        "retrograde": true
      },
      {
        "id": "ketu",
        "label": "Ketu",
        "longitude": 103.4929,
        "sign": "cancer",
        "degree_in_sign": 13.4929,
        "nakshatra": "pushya",
        "pada": 4,
        "nakshatra_lord": "saturn",
        "house": 12,
        "retrograde": true
      }
    ],
    "divisional_lagnas": {
      "D2": "leo",
      "D9": "taurus",
      "D10": "virgo"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Avakhada birth details

POST/v1/kundli/birth-details

1 credit · Secret key (test or live) · getBirthDetails · Page for this operation

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • varna string
  • vashya string
  • yoni string
  • gana string
  • nadi string
  • nakshatra string

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/birth-details' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/birth-details", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/birth-details",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/birth-details');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 546 characters
{
  "data": {
    "varna": "Kshatriya",
    "vashya": "Chatushpada",
    "yoni": "Elephant",
    "gana": "Manushya",
    "nadi": "Madhya (Pitta)",
    "nakshatra": "bharani"
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Divisional charts D1–D60

POST/v1/kundli/divisional

2 credits · Secret key (test or live) · getDivisional · Page for this operation

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • vargas array of string required
  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • charts map of object required
    • lagna string
    • planets map of string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/divisional' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"vargas":["D9","D10","D60"]}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/divisional", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    },
    "vargas": [
      "D9",
      "D10",
      "D60"
    ]
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
    "vargas": [
        "D9",
        "D10",
        "D60",
    ],
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/divisional",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/divisional');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"vargas":["D9","D10","D60"]}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,424 characters
{
  "data": {
    "charts": {
      "D9": {
        "lagna": "taurus",
        "planets": {
          "sun": "aquarius",
          "moon": "virgo",
          "mars": "scorpio",
          "mercury": "scorpio",
          "jupiter": "leo",
          "venus": "leo",
          "saturn": "scorpio",
          "rahu": "taurus",
          "ketu": "scorpio"
        }
      },
      "D10": {
        "lagna": "virgo",
        "planets": {
          "sun": "scorpio",
          "moon": "libra",
          "mars": "sagittarius",
          "mercury": "pisces",
          "jupiter": "aries",
          "venus": "aries",
          "saturn": "leo",
          "rahu": "capricorn",
          "ketu": "cancer"
        }
      },
      "D60": {
        "lagna": "aries",
        "planets": {
          "sun": "scorpio",
          "moon": "aries",
          "mars": "leo",
          "mercury": "cancer",
          "jupiter": "taurus",
          "venus": "taurus",
          "saturn": "aries",
          "rahu": "pisces",
          "ketu": "virgo"
        }
      }
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Graha drishti: houses and planets aspected

POST/v1/kundli/aspects

1 credit · Secret key (test or live) · getAspects · Page for this operation

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • aspects array of object required
    • planet string required
    • offsets array of integer required
    • houses array of integer required
    • planets array of string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/aspects' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/aspects", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/aspects",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/aspects');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 2,214 characters
{
  "data": {
    "aspects": [
      {
        "planet": "sun",
        "offsets": [
          7
        ],
        "houses": [
          6
        ],
        "planets": [
          "rahu"
        ]
      },
      {
        "planet": "moon",
        "offsets": [
          7
        ],
        "houses": [
          3
        ],
        "planets": []
      },
      {
        "planet": "mars",
        "offsets": [
          4,
          7,
          8
        ],
        "houses": [
          3,
          4,
          12
        ],
        "planets": [
          "sun",
          "jupiter",
          "venus",
          "ketu"
        ]
      },
      {
        "planet": "mercury",
        "offsets": [
          7
        ],
        "houses": [
          7
        ],
        "planets": []
      },
      {
        "planet": "jupiter",
        "offsets": [
          5,
          7,
          9
        ],
        "houses": [
          4,
          6,
          8
        ],
        "planets": [
          "rahu"
        ]
      },
      {
        "planet": "venus",
        "offsets": [
          7
        ],
        "houses": [
          6
        ],
        "planets": [
          "rahu"
        ]
      },
      {
        "planet": "saturn",
        "offsets": [
          3,
          7,
          10
        ],
        "houses": [
          2,
          7,
          11
        ],
        "planets": []
      },
      {
        "planet": "rahu",
        "offsets": [
          7
        ],
        "houses": [
          12
        ],
        "planets": [
          "sun",
          "jupiter",
          "venus",
          "ketu"
        ]
      },
      {
        "planet": "ketu",
        "offsets": [
          7
        ],
        "houses": [
          6
        ],
        "planets": [
          "rahu"
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Yogas present, with strength and rule

POST/v1/kundli/yogas

2 credits · Secret key (test or live) · getYogas · Page for this operation

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • yogas array of object required
    • name string required
    • type string
    • strength string
    • planets array of string
    • rule string

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/yogas' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/yogas", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/yogas",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/yogas');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 2,391 characters
{
  "data": {
    "yogas": [
      {
        "name": "Gajakesari Yoga",
        "type": "wealth",
        "strength": "very_strong",
        "planets": [
          "moon",
          "jupiter"
        ],
        "rule": "Jupiter in 4th from Moon - wisdom, wealth and public recognition"
      },
      {
        "name": "Dhana Yoga",
        "type": "wealth",
        "strength": "strong",
        "planets": [
          "mercury",
          "mercury"
        ],
        "rule": "Mercury (2nd lord) and Mercury (11th lord) in wealth axis - significant financial accumulation"
      },
      {
        "name": "Raja Yoga",
        "type": "power",
        "strength": "strong",
        "planets": [
          "sun",
          "jupiter"
        ],
        "rule": "Sun and Jupiter (kendra + trikona lords) in conjunction - authority, career success and high status"
      },
      {
        "name": "Raja Yoga",
        "type": "power",
        "strength": "strong",
        "planets": [
          "saturn",
          "jupiter"
        ],
        "rule": "Saturn and Jupiter (kendra + trikona lords) in mutual placement - authority, career success and high status"
      },
      {
        "name": "Raja Yoga",
        "type": "power",
        "strength": "strong",
        "planets": [
          "venus",
          "jupiter"
        ],
        "rule": "Venus and Jupiter (kendra + trikona lords) in conjunction - authority, career success and high status"
      },
      {
        "name": "Chandra-Mangala Yoga",
        "type": "wealth",
        "strength": "moderate",
        "planets": [
          "moon",
          "mars"
        ],
        "rule": "Moon and Mars in conjunction - wealth through courage, real estate and enterprise"
      },
      {
        "name": "Vipareeta Raja Yoga",
        "type": "power",
        "strength": "strong",
        "planets": [
          "jupiter"
        ],
        "rule": "Jupiter (8th lord) in dusthana - surprising rise after adversity, enemies become allies"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Bhinna and Sarva Ashtakavarga, the bindus of the signs being transited, each planet's best and worst signs

POST/v1/kundli/ashtakavarga

2 credits · Secret key (test or live) · getAshtakavarga · Page for this operation

Needs a birth time. transits: the sign each of the seven planets occupies at at (default now; as_of says which) and that sign's bindus in the planet's own bhinna. best_signs: each planet's three highest and three lowest signs by its bindus. Every chart's bhinna totals are the classical 48, 49, 39, 54, 56, 52, 39 (Sarva 337).

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • at string (date-time)
  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • bhinna map of array of integer required
  • sarva array of integer required
  • as_of string (date-time) required
  • transits map of object required
    • sign string required
    • bindus integer required

      ≥ 0 · ≤ 8

  • best_signs map of object required
    • best array of object required
      Fields
      • sign string required
      • bindus integer required
    • worst array of object required
      Fields
      • sign string required
      • bindus integer required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/ashtakavarga' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"at":"2026-10-02T06:30:00Z"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/ashtakavarga", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    },
    "at": "2026-10-02T06:30:00Z"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
    "at": "2026-10-02T06:30:00Z",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/ashtakavarga",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/ashtakavarga');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"at":"2026-10-02T06:30:00Z"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 6,155 characters
{
  "data": {
    "bhinna": {
      "sun": [
        3,
        5,
        5,
        5,
        2,
        2,
        5,
        3,
        5,
        7,
        3,
        3
      ],
      "moon": [
        5,
        7,
        5,
        1,
        2,
        4,
        6,
        2,
        3,
        6,
        6,
        2
      ],
      "mars": [
        3,
        5,
        6,
        2,
        2,
        3,
        4,
        2,
        5,
        3,
        3,
        1
      ],
      "mercury": [
        2,
        7,
        5,
        5,
        4,
        4,
        4,
        5,
        5,
        5,
        4,
        4
      ],
      "jupiter": [
        7,
        8,
        2,
        3,
        6,
        4,
        4,
        5,
        4,
        5,
        6,
        2
      ],
      "venus": [
        6,
        4,
        5,
        4,
        4,
        4,
        4,
        4,
        4,
        1,
        6,
        6
      ],
      "saturn": [
        3,
        6,
        6,
        2,
        3,
        2,
        3,
        2,
        2,
        4,
        4,
        2
      ]
    },
    "sarva": [
      29,
      42,
      34,
      22,
      23,
      23,
      30,
      23,
      28,
      31,
      32,
      20
    ],
    "as_of": "2026-10-02T06:30:00.000Z",
    "transits": {
      "sun": {
        "sign": "virgo",
        "bindus": 2
      },
      "moon": {
        "sign": "taurus",
        "bindus": 7
      },
      "mars": {
        "sign": "cancer",
        "bindus": 2
      },
      "mercury": {
        "sign": "libra",
        "bindus": 4
      },
      "jupiter": {
        "sign": "cancer",
        "bindus": 3
      },
      "venus": {
        "sign": "libra",
        "bindus": 4
      },
      "saturn": {
        "sign": "pisces",
        "bindus": 2
      }
    },
    "best_signs": {
      "sun": {
        "best": [
          {
            "sign": "capricorn",
            "bindus": 7
          },
          {
            "sign": "taurus",
            "bindus": 5
          },
          {
            "sign": "gemini",
            "bindus": 5
          }
        ],
        "worst": [
          {
            "sign": "virgo",
            "bindus": 2
          },
          {
            "sign": "leo",
            "bindus": 2
          },
          {
            "sign": "pisces",
            "bindus": 3
          }
        ]
      },
      "moon": {
        "best": [
          {
            "sign": "taurus",
            "bindus": 7
          },
          {
            "sign": "libra",
            "bindus": 6
          },
          {
            "sign": "capricorn",
            "bindus": 6
          }
        ],
        "worst": [
          {
            "sign": "cancer",
            "bindus": 1
          },
          {
            "sign": "pisces",
            "bindus": 2
          },
          {
            "sign": "scorpio",
            "bindus": 2
          }
        ]
      },
      "mars": {
        "best": [
          {
            "sign": "gemini",
            "bindus": 6
          },
          {
            "sign": "taurus",
            "bindus": 5
          },
          {
            "sign": "sagittarius",
            "bindus": 5
          }
        ],
        "worst": [
          {
            "sign": "pisces",
            "bindus": 1
          },
          {
            "sign": "scorpio",
            "bindus": 2
          },
          {
            "sign": "leo",
            "bindus": 2
          }
        ]
      },
      "mercury": {
        "best": [
          {
            "sign": "taurus",
            "bindus": 7
          },
          {
            "sign": "gemini",
            "bindus": 5
          },
          {
            "sign": "cancer",
            "bindus": 5
          }
        ],
        "worst": [
          {
            "sign": "aries",
            "bindus": 2
          },
          {
            "sign": "pisces",
            "bindus": 4
          },
          {
            "sign": "aquarius",
            "bindus": 4
          }
        ]
      },
      "jupiter": {
        "best": [
          {
            "sign": "taurus",
            "bindus": 8
          },
          {
            "sign": "aries",
            "bindus": 7
          },
          {
            "sign": "leo",
            "bindus": 6
          }
        ],
        "worst": [
          {
            "sign": "pisces",
            "bindus": 2
          },
          {
            "sign": "gemini",
            "bindus": 2
          },
          {
            "sign": "cancer",
            "bindus": 3
          }
        ]
      },
      "venus": {
        "best": [
          {
            "sign": "aries",
            "bindus": 6
          },
          {
            "sign": "aquarius",
            "bindus": 6
          },
          {
            "sign": "pisces",
            "bindus": 6
          }
        ],
        "worst": [
          {
            "sign": "capricorn",
            "bindus": 1
          },
          {
            "sign": "sagittarius",
            "bindus": 4
          },
          {
            "sign": "scorpio",
            "bindus": 4
          }
        ]
      },
      "saturn": {
        "best": [
          {
            "sign": "taurus",
            "bindus": 6
          },
          {
            "sign": "gemini",
            "bindus": 6
          },
          {
            "sign": "capricorn",
            "bindus": 4
          }
        ],
        "worst": [
          {
            "sign": "pisces",
            "bindus": 2
          },
          {
            "sign": "sagittarius",
            "bindus": 2
          },
          {
            "sign": "scorpio",
            "bindus": 2
          }
        ]
      }
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Wealth reading from D1, D2, D9 and D10: hora placements, the D10 lagna and 10th lord, vargottama, scores 0–10

POST/v1/kundli/wealth

2 credits · Secret key (test or live) · getWealth · Page for this operation

Ids and numbers only. d2: the planets in the Sun and Moon horas and their benefic-minus-malefic scores, the hora of the 2nd lord. d10: the D10 lagna and its lord (archetype), the 10th lord's house, own/exalted or debilitated placements. scores: D1 from wealth and power yogas, D9 from vargottama and the 2nd lord, D2 and D10 from the analyses above; overall is their weighted mean on 0–10, rated developing, moderate, strong or exceptional. Needs a birth time.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • d2 object required
    • sun_hora object required
      Fields
      • planets array of string required
      • score number required
    • moon_hora object required
      Fields
      • planets array of string required
      • score number required
    • primary_source string required

      one of career_authority, business_inheritance

    • lord2_hora string required

      one of sun, moon, balanced

    • lagna_vargottama boolean required
    • strength number required
  • d10 object required
    • lagna string required
    • lagna_lord string required
    • archetype string required
    • tenth_occupants array of string required
    • lord10 string required
    • lord10_house integer or null required

      One of:

      1. integer
      2. null
    • score number required
    • strength number required
    • placements array of object required
      Fields
      • planet string required
      • sign string required
      • kind string required

        one of own_or_exalted, debilitated

  • vargottama array of string required
  • scores object required
    • d1 number required
    • d2 number required
    • d9 number required
    • d10 number required
  • overall number required

    ≥ 0 · ≤ 10

  • rating string required

    one of developing, moderate, strong, exceptional

  • factors array of object required
    • id string required

      one of wealth_yoga, power_yoga, vargottama, d2_lagna_vargottama

    • yoga string
    • planet string

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/wealth' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/wealth", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/wealth",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/wealth');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 2,020 characters
{
  "data": {
    "d2": {
      "sun_hora": {
        "planets": [
          "sun"
        ],
        "score": -1
      },
      "moon_hora": {
        "planets": [
          "moon",
          "mercury",
          "venus",
          "mars",
          "jupiter",
          "saturn",
          "rahu",
          "ketu"
        ],
        "score": 4
      },
      "primary_source": "business_inheritance",
      "lord2_hora": "moon",
      "lagna_vargottama": true,
      "strength": 0.6
    },
    "d10": {
      "lagna": "virgo",
      "lagna_lord": "mercury",
      "archetype": "business_communication",
      "tenth_occupants": [],
      "lord10": "mercury",
      "lord10_house": 7,
      "score": -3,
      "strength": 0.3,
      "placements": [
        {
          "planet": "mercury",
          "sign": "pisces",
          "kind": "debilitated"
        }
      ]
    },
    "vargottama": [],
    "scores": {
      "d1": 10,
      "d2": 7.5,
      "d9": 0,
      "d10": 0
    },
    "overall": 5.1,
    "rating": "moderate",
    "factors": [
      {
        "id": "wealth_yoga",
        "yoga": "gajakesari_yoga"
      },
      {
        "id": "wealth_yoga",
        "yoga": "dhana_yoga"
      },
      {
        "id": "power_yoga",
        "yoga": "raja_yoga"
      },
      {
        "id": "power_yoga",
        "yoga": "raja_yoga"
      },
      {
        "id": "power_yoga",
        "yoga": "raja_yoga"
      },
      {
        "id": "wealth_yoga",
        "yoga": "chandra_mangala_yoga"
      },
      {
        "id": "power_yoga",
        "yoga": "vipareeta_raja_yoga"
      },
      {
        "id": "d2_lagna_vargottama"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Gemstones by functional lordship: the lagna lord's, the 9th (or 5th) lord's, the mahadasha lord's, and those to avoid

POST/v1/kundli/gemstones

2 credits · Secret key (test or live) · getGemstones · Page for this operation

Functional benefics are the lords of the 1st, 5th and 9th from the lagna; functional malefics the lords of the 6th, 8th and 12th with no trikona lordship, and their stones are listed in avoid. dasha_stone only when the running mahadasha lord is not a functional malefic. Not the same rule as classical.lucky.gem (the rashi lord's stone). Needs a birth time.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • lagna_sign string required
  • primary GemstoneChoice or null required

    One of:

    1. GemstoneChoice
      Fields
      • planet string required
      • stone string required
      • alternatives array of string required
      • finger string required

        one of thumb, index, middle, ring, little

      • metal string required
      • basis string required

        one of lagna_lord, ninth_lord, fifth_lord, mahadasha_lord

    2. null
  • secondary GemstoneChoice or null required

    One of:

    1. GemstoneChoice
      Fields
      • planet string required
      • stone string required
      • alternatives array of string required
      • finger string required

        one of thumb, index, middle, ring, little

      • metal string required
      • basis string required

        one of lagna_lord, ninth_lord, fifth_lord, mahadasha_lord

    2. null
  • dasha_stone GemstoneChoice or null required

    One of:

    1. GemstoneChoice
      Fields
      • planet string required
      • stone string required
      • alternatives array of string required
      • finger string required

        one of thumb, index, middle, ring, little

      • metal string required
      • basis string required

        one of lagna_lord, ninth_lord, fifth_lord, mahadasha_lord

    2. null
  • avoid array of string required
  • healing_stones array of string required
  • functional_benefics array of string required
  • functional_malefics array of string required
  • yoga_specific array of object required
    • stone string required
    • yoga string or null required

      One of:

      1. string
      2. null

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/gemstones' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/gemstones", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/gemstones",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/gemstones');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,796 characters
{
  "data": {
    "lagna_sign": "leo",
    "primary": {
      "planet": "sun",
      "stone": "ruby",
      "alternatives": [
        "red_garnet",
        "sunstone",
        "red_spinel"
      ],
      "finger": "ring",
      "metal": "gold",
      "basis": "lagna_lord"
    },
    "secondary": {
      "planet": "mars",
      "stone": "red_coral",
      "alternatives": [
        "red_jasper",
        "carnelian",
        "garnet"
      ],
      "finger": "ring",
      "metal": "copper_or_gold",
      "basis": "ninth_lord"
    },
    "dasha_stone": {
      "planet": "rahu",
      "stone": "hessonite",
      "alternatives": [
        "orange_zircon",
        "garnet",
        "spessartite"
      ],
      "finger": "middle",
      "metal": "silver",
      "basis": "mahadasha_lord"
    },
    "avoid": [
      "blue_sapphire",
      "pearl"
    ],
    "healing_stones": [
      "pyrite",
      "sunstone",
      "citrine",
      "amber",
      "bloodstone",
      "carnelian"
    ],
    "functional_benefics": [
      "sun",
      "jupiter",
      "mars"
    ],
    "functional_malefics": [
      "saturn",
      "moon"
    ],
    "yoga_specific": [
      {
        "stone": "yellow_sapphire",
        "yoga": "gajakesari_yoga"
      },
      {
        "stone": "yellow_sapphire",
        "yoga": "dhana_yoga"
      },
      {
        "stone": "yellow_sapphire",
        "yoga": "chandra_mangala_yoga"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Shadbala: the six-fold strength of the seven grahas

POST/v1/kundli/shadbala

2 credits · Secret key (test or live) · getShadbala · Page for this operation

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • planets array of object required
    • id string required
    • components object required
      Fields
      • sthana number required
      • dig number required
      • kala number required
      • chesta number required
      • naisargika number required
      • drik number required
    • total number required
    • rupas number required
    • strength string required
  • ranking array of string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/shadbala' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/shadbala", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/shadbala",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/shadbala');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 2,532 characters
{
  "data": {
    "planets": [
      {
        "id": "sun",
        "components": {
          "sthana": 20,
          "dig": 17,
          "kala": 18,
          "chesta": 10,
          "naisargika": 21,
          "drik": -5
        },
        "total": 81,
        "rupas": 6.8,
        "strength": "good"
      },
      {
        "id": "moon",
        "components": {
          "sthana": 20,
          "dig": 4,
          "kala": 13,
          "chesta": 10,
          "naisargika": 18,
          "drik": 0
        },
        "total": 65,
        "rupas": 5.4,
        "strength": "good"
      },
      {
        "id": "mars",
        "components": {
          "sthana": 30,
          "dig": 17,
          "kala": 13,
          "chesta": 15,
          "naisargika": 7,
          "drik": 0
        },
        "total": 82,
        "rupas": 6.8,
        "strength": "good"
      },
      {
        "id": "mercury",
        "components": {
          "sthana": 12,
          "dig": 25,
          "kala": 13,
          "chesta": 10,
          "naisargika": 5,
          "drik": 0
        },
        "total": 65,
        "rupas": 5.4,
        "strength": "good"
      },
      {
        "id": "jupiter",
        "components": {
          "sthana": 30,
          "dig": 17,
          "kala": 18,
          "chesta": 20,
          "naisargika": 11,
          "drik": -5
        },
        "total": 91,
        "rupas": 7.6,
        "strength": "excellent"
      },
      {
        "id": "venus",
        "components": {
          "sthana": 12,
          "dig": 8,
          "kala": 18,
          "chesta": 10,
          "naisargika": 14,
          "drik": -5
        },
        "total": 57,
        "rupas": 4.8,
        "strength": "average"
      },
      {
        "id": "saturn",
        "components": {
          "sthana": 12,
          "dig": 17,
          "kala": 13,
          "chesta": 25,
          "naisargika": 4,
          "drik": 0
        },
        "total": 71,
        "rupas": 5.9,
        "strength": "good"
      }
    ],
    "ranking": [
      "jupiter",
      "mars",
      "sun",
      "saturn",
      "moon",
      "mercury",
      "venus"
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

The classical layer: house cusps, bhava bala, prastara ashtakavarga, graha avasthas, sthira karakas, lucky points

POST/v1/kundli/classical

2 credits · Secret key (test or live) · getClassicalChart · Page for this operation

What astrologics.in's full report calls its classical layer. cusps: Placidus (what KP uses; null at latitudes where it is undefined) beside the Sripati bhava arambh and madhya, sidereal degrees. Needs a birth time.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • cusps object required
    • system string required
    • placidus array of number or null required

      One of:

      1. array of number
      2. null
    • bhava_arambh array of number required
    • bhava_madhya array of number required
  • bhava_bala array of object required
    • house integer required

      ≥ 1 · ≤ 12

    • sign string required
    • lord string required
    • adhipati_bala number required
    • dig_bala number required
    • drishti_bala number required
    • total number required
    • rupas number required
    • rank integer required

      ≥ 1 · ≤ 12

  • prastara object required
    • contributors array of string required
    • signs array of string required
    • planets map of object required
      Fields
      • grid map of array of integer required
      • totals array of integer required
      • sum integer required
  • avastha map of object required
    • jagrat string required
    • baladi string required
    • deeptadi string required
    • dignity string required
  • sthira_karakas array of object required
    • karaka string required
    • planet string required
  • lucky object required
    • numbers array of integer required
    • unlucky_numbers array of integer required
    • years array of array of integer required
    • days array of string required
    • planets array of string required
    • friendly_signs array of string required
    • lagnas array of string required
    • metal string required
    • gem string required
    • lagna_lord string required
    • rashi_lord string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/classical' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/classical", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/classical",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/classical');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 22,722 characters
{
  "data": {
    "cusps": {
      "system": "Placidus (KP) + Sripati (chalit)",
      "placidus": [
        124.27,
        150.0796,
        179.7678,
        212.022,
        244.4165,
        275.3319,
        304.27,
        330.0796,
        359.7678,
        32.022,
        64.4165,
        95.3319
      ],
      "bhava_arambh": [
        108.8953,
        138.8953,
        168.146,
        197.3967,
        227.3967,
        258.146,
        288.8953,
        318.8953,
        348.146,
        17.3967,
        47.3967,
        78.146
      ],
      "bhava_madhya": [
        124.27,
        153.5207,
        182.7713,
        212.022,
        242.7713,
        273.5207,
        304.27,
        333.5207,
        2.7713,
        32.022,
        62.7713,
        93.5207
      ]
    },
    "bhava_bala": [
      {
        "house": 1,
        "sign": "leo",
        "lord": "sun",
        "adhipati_bala": 81,
        "dig_bala": 30,
        "drishti_bala": 0,
        "total": 111,
        "rupas": 1.85,
        "rank": 5
      },
      {
        "house": 2,
        "sign": "virgo",
        "lord": "mercury",
        "adhipati_bala": 65,
        "dig_bala": 15,
        "drishti_bala": -11.3,
        "total": 68.8,
        "rupas": 1.15,
        "rank": 10
      },
      {
        "house": 3,
        "sign": "libra",
        "lord": "venus",
        "adhipati_bala": 57,
        "dig_bala": 15,
        "drishti_bala": -11.3,
        "total": 60.8,
        "rupas": 1.01,
        "rank": 12
      },
      {
        "house": 4,
        "sign": "scorpio",
        "lord": "mars",
        "adhipati_bala": 82,
        "dig_bala": 30,
        "drishti_bala": 0,
        "total": 112,
        "rupas": 1.87,
        "rank": 4
      },
      {
        "house": 5,
        "sign": "sagittarius",
        "lord": "jupiter",
        "adhipati_bala": 91,
        "dig_bala": 15,
        "drishti_bala": 0,
        "total": 106,
        "rupas": 1.77,
        "rank": 6
      },
      {
        "house": 6,
        "sign": "capricorn",
        "lord": "saturn",
        "adhipati_bala": 71,
        "dig_bala": 15,
        "drishti_bala": 30,
        "total": 116,
        "rupas": 1.93,
        "rank": 3
      },
      {
        "house": 7,
        "sign": "aquarius",
        "lord": "saturn",
        "adhipati_bala": 71,
        "dig_bala": 30,
        "drishti_bala": -15,
        "total": 86,
        "rupas": 1.43,
        "rank": 8
      },
      {
        "house": 8,
        "sign": "pisces",
        "lord": "jupiter",
        "adhipati_bala": 91,
        "dig_bala": 15,
        "drishti_bala": 15,
        "total": 121,
        "rupas": 2.02,
        "rank": 1
      },
      {
        "house": 9,
        "sign": "aries",
        "lord": "mars",
        "adhipati_bala": 82,
        "dig_bala": 15,
        "drishti_bala": 0,
        "total": 97,
        "rupas": 1.62,
        "rank": 7
      },
      {
        "house": 10,
        "sign": "taurus",
        "lord": "venus",
        "adhipati_bala": 57,
        "dig_bala": 60,
        "drishti_bala": 0,
        "total": 117,
        "rupas": 1.95,
        "rank": 2
      },
      {
        "house": 11,
        "sign": "gemini",
        "lord": "mercury",
        "adhipati_bala": 65,
        "dig_bala": 15,
        "drishti_bala": 0,
        "total": 80,
        "rupas": 1.33,
        "rank": 9
      },
      {
        "house": 12,
        "sign": "cancer",
        "lord": "moon",
        "adhipati_bala": 65,
        "dig_bala": 15,
        "drishti_bala": -15,
        "total": 65,
        "rupas": 1.08,
        "rank": 11
      }
    ],
    "prastara": {
      "contributors": [
        "sun",
        "moon",
        "mars",
        "mercury",
        "jupiter",
        "venus",
        "saturn",
        "lagna"
      ],
      "signs": [
        "aries",
        "taurus",
        "gemini",
        "cancer",
        "leo",
        "virgo",
        "libra",
        "scorpio",
        "sagittarius",
        "capricorn",
        "aquarius",
        "pisces"
      ],
      "planets": {
        "sun": {
          "grid": {
            "sun": [
              1,
              1,
              0,
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              1
            ],
            "moon": [
              0,
              0,
              1,
              0,
              0,
              1,
              0,
              0,
              0,
              1,
              1,
              0
            ],
            "mars": [
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              1,
              1,
              1,
              0
            ],
            "mercury": [
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              0,
              1,
              1,
              0,
              0
            ],
            "jupiter": [
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              1,
              0,
              0,
              1
            ],
            "venus": [
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              1,
              0,
              0
            ],
            "saturn": [
              0,
              0,
              1,
              1,
              1,
              1,
              1,
              0,
              1,
              1,
              0,
              1
            ],
            "lagna": [
              0,
              1,
              1,
              1,
              0,
              0,
              1,
              1,
              0,
              1,
              0,
              0
            ]
          },
          "totals": [
            3,
            5,
            5,
            5,
            2,
            2,
            5,
            3,
            5,
            7,
            3,
            3
          ],
          "sum": 48
        },
        "moon": {
          "grid": {
            "sun": [
              1,
              1,
              0,
              0,
              0,
              1,
              0,
              0,
              1,
              1,
              1,
              0
            ],
            "moon": [
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              0,
              0,
              1,
              1,
              0
            ],
            "mars": [
              0,
              1,
              1,
              0,
              1,
              1,
              0,
              0,
              1,
              1,
              1,
              0
            ],
            "mercury": [
              0,
              1,
              1,
              0,
              1,
              0,
              1,
              1,
              1,
              0,
              1,
              1
            ],
            "jupiter": [
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              0,
              0,
              1,
              1,
              0
            ],
            "venus": [
              1,
              1,
              0,
              0,
              0,
              1,
              1,
              1,
              0,
              1,
              0,
              1
            ],
            "saturn": [
              1,
              1,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              1,
              0
            ],
            "lagna": [
              0,
              1,
              1,
              0,
              0,
              0,
              1,
              0,
              0,
              1,
              0,
              0
            ]
          },
          "totals": [
            5,
            7,
            5,
            1,
            2,
            4,
            6,
            2,
            3,
            6,
            6,
            2
          ],
          "sum": 49
        },
        "mars": {
          "grid": {
            "sun": [
              1,
              1,
              0,
              0,
              0,
              1,
              0,
              1,
              1,
              0,
              0,
              0
            ],
            "moon": [
              0,
              0,
              1,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              1,
              0
            ],
            "mars": [
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              0,
              1,
              1,
              0
            ],
            "mercury": [
              0,
              0,
              1,
              0,
              0,
              0,
              1,
              0,
              1,
              1,
              0,
              0
            ],
            "jupiter": [
              1,
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0
            ],
            "venus": [
              0,
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              1,
              0
            ],
            "saturn": [
              0,
              0,
              1,
              1,
              1,
              1,
              1,
              0,
              1,
              0,
              0,
              1
            ],
            "lagna": [
              0,
              1,
              1,
              0,
              1,
              0,
              1,
              0,
              0,
              1,
              0,
              0
            ]
          },
          "totals": [
            3,
            5,
            6,
            2,
            2,
            3,
            4,
            2,
            5,
            3,
            3,
            1
          ],
          "sum": 39
        },
        "mercury": {
          "grid": {
            "sun": [
              0,
              1,
              1,
              0,
              0,
              0,
              0,
              1,
              1,
              0,
              0,
              1
            ],
            "moon": [
              0,
              1,
              0,
              1,
              0,
              1,
              0,
              1,
              0,
              1,
              1,
              0
            ],
            "mars": [
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              1,
              1,
              1,
              0
            ],
            "mercury": [
              1,
              1,
              1,
              1,
              1,
              0,
              1,
              0,
              1,
              1,
              0,
              0
            ],
            "jupiter": [
              0,
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              1,
              0
            ],
            "venus": [
              0,
              1,
              0,
              1,
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              1
            ],
            "saturn": [
              0,
              0,
              1,
              1,
              1,
              1,
              1,
              0,
              1,
              1,
              0,
              1
            ],
            "lagna": [
              0,
              1,
              1,
              0,
              1,
              1,
              0,
              1,
              0,
              1,
              0,
              1
            ]
          },
          "totals": [
            2,
            7,
            5,
            5,
            4,
            4,
            4,
            5,
            5,
            5,
            4,
            4
          ],
          "sum": 54
        },
        "jupiter": {
          "grid": {
            "sun": [
              1,
              1,
              0,
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              1,
              1
            ],
            "moon": [
              0,
              1,
              0,
              0,
              1,
              0,
              1,
              0,
              1,
              0,
              1,
              0
            ],
            "mars": [
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              0,
              1,
              1,
              0
            ],
            "mercury": [
              1,
              1,
              1,
              0,
              1,
              1,
              0,
              1,
              1,
              1,
              0,
              0
            ],
            "jupiter": [
              1,
              1,
              0,
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              1,
              0
            ],
            "venus": [
              1,
              1,
              0,
              0,
              1,
              0,
              0,
              1,
              1,
              0,
              0,
              1
            ],
            "saturn": [
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              1,
              0
            ],
            "lagna": [
              1,
              1,
              1,
              0,
              1,
              1,
              0,
              1,
              1,
              1,
              1,
              0
            ]
          },
          "totals": [
            7,
            8,
            2,
            3,
            6,
            4,
            4,
            5,
            4,
            5,
            6,
            2
          ],
          "sum": 56
        },
        "venus": {
          "grid": {
            "sun": [
              0,
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              0,
              0,
              1,
              0
            ],
            "moon": [
              1,
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              1,
              0,
              1,
              1
            ],
            "mars": [
              0,
              0,
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              0,
              1,
              1
            ],
            "mercury": [
              1,
              0,
              1,
              0,
              0,
              0,
              1,
              0,
              1,
              1,
              0,
              0
            ],
            "jupiter": [
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              1,
              1
            ],
            "venus": [
              1,
              1,
              0,
              1,
              1,
              1,
              1,
              1,
              0,
              0,
              1,
              1
            ],
            "saturn": [
              1,
              0,
              0,
              1,
              1,
              1,
              1,
              0,
              0,
              0,
              1,
              1
            ],
            "lagna": [
              1,
              0,
              1,
              0,
              1,
              1,
              1,
              1,
              1,
              0,
              0,
              1
            ]
          },
          "totals": [
            6,
            4,
            5,
            4,
            4,
            4,
            4,
            4,
            4,
            1,
            6,
            6
          ],
          "sum": 52
        },
        "saturn": {
          "grid": {
            "sun": [
              1,
              1,
              0,
              1,
              1,
              0,
              1,
              0,
              0,
              1,
              1,
              0
            ],
            "moon": [
              0,
              0,
              1,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              1,
              0
            ],
            "mars": [
              0,
              0,
              1,
              0,
              1,
              1,
              0,
              0,
              0,
              1,
              1,
              1
            ],
            "mercury": [
              1,
              1,
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              1
            ],
            "jupiter": [
              0,
              1,
              1,
              0,
              0,
              0,
              0,
              1,
              1,
              0,
              0,
              0
            ],
            "venus": [
              0,
              1,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0
            ],
            "saturn": [
              1,
              1,
              0,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              1,
              0
            ],
            "lagna": [
              0,
              1,
              1,
              0,
              1,
              0,
              1,
              1,
              0,
              1,
              0,
              0
            ]
          },
          "totals": [
            3,
            6,
            6,
            2,
            3,
            2,
            3,
            2,
            2,
            4,
            4,
            2
          ],
          "sum": 39
        }
      }
    },
    "avastha": {
      "sun": {
        "jagrat": "Swapna (dreaming)",
        "baladi": "Bala (infant)",
        "deeptadi": "Mudita (delighted)",
        "dignity": "Friend's sign"
      },
      "moon": {
        "jagrat": "Swapna (dreaming)",
        "baladi": "Vriddha (old)",
        "deeptadi": "Shanta (quiet)",
        "dignity": "Neutral sign"
      },
      "mars": {
        "jagrat": "Jagrat (awake)",
        "baladi": "Mrita (dead)",
        "deeptadi": "Swastha (at home)",
        "dignity": "Own sign"
      },
      "mercury": {
        "jagrat": "Swapna (dreaming)",
        "baladi": "Vriddha (old)",
        "deeptadi": "Mudita (delighted)",
        "dignity": "Friend's sign"
      },
      "jupiter": {
        "jagrat": "Jagrat (awake)",
        "baladi": "Mrita (dead)",
        "deeptadi": "Deepta (blazing)",
        "dignity": "Exalted"
      },
      "venus": {
        "jagrat": "Sushupta (asleep)",
        "baladi": "Mrita (dead)",
        "deeptadi": "Dina (distressed)",
        "dignity": "Enemy's sign"
      },
      "saturn": {
        "jagrat": "Swapna (dreaming)",
        "baladi": "Mrita (dead)",
        "deeptadi": "Shanta (quiet)",
        "dignity": "Neutral sign"
      }
    },
    "sthira_karakas": [
      {
        "karaka": "Atma (soul)",
        "planet": "sun"
      },
      {
        "karaka": "Amatya (career)",
        "planet": "mercury"
      },
      {
        "karaka": "Bhratri (siblings)",
        "planet": "mars"
      },
      {
        "karaka": "Matri (mother)",
        "planet": "moon"
      },
      {
        "karaka": "Pitri (father)",
        "planet": "jupiter"
      },
      {
        "karaka": "Gnati (kin, rivals)",
        "planet": "saturn"
      },
      {
        "karaka": "Dara (spouse)",
        "planet": "venus"
      }
    ],
    "lucky": {
      "numbers": [
        1,
        3,
        9
      ],
      "unlucky_numbers": [
        2,
        4,
        6,
        8
      ],
      "years": [
        [
          1,
          10,
          19,
          28
        ],
        [
          3,
          12,
          21,
          30
        ]
      ],
      "days": [
        "sunday",
        "thursday",
        "tuesday"
      ],
      "planets": [
        "sun",
        "jupiter",
        "mars"
      ],
      "friendly_signs": [
        "cancer",
        "aries",
        "scorpio",
        "sagittarius",
        "pisces"
      ],
      "lagnas": [
        "leo",
        "scorpio",
        "sagittarius",
        "aquarius",
        "aries",
        "taurus"
      ],
      "metal": "Copper",
      "gem": "Red coral",
      "lagna_lord": "sun",
      "rashi_lord": "mars"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Uranus, Neptune and Pluto: sidereal position, house from the lagna, and the house reading in English and Hindi

POST/v1/kundli/outer-planets

2 credits · Secret key (test or live) · getOuterPlanets · Page for this operation

Positions are sidereal, consistent with the rest of the chart; the reading is by house only (a sidereal sign carries no Western sign text). Needs a birth time.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • planets array of object required
    • id string required

      one of uranus, neptune, pluto

    • longitude number required

      ≥ 0 · < 360

    • sign string required
    • sign_degree number required
    • nakshatra string required
    • retrograde boolean required
    • house integer or null required

      One of:

      1. integer
      2. null
    • label_hi string required
    • intro object or null required

      One of:

      1. object
        Fields
        • en string required
        • hi string or null required

          One of:

          1. string
          2. null
      2. null
    • reading object or null required

      One of:

      1. object
        Fields
        • en string required
        • hi string or null required

          One of:

          1. string
          2. null
      2. null

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/outer-planets' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/outer-planets", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/outer-planets",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/outer-planets');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 4,746 characters
{
  "data": {
    "planets": [
      {
        "id": "uranus",
        "longitude": 252.2998,
        "sign": "sagittarius",
        "sign_degree": 12.3,
        "nakshatra": "mula",
        "retrograde": true,
        "house": 5,
        "label_hi": "यूरेनस",
        "intro": {
          "en": "Uranus takes about 84 years to circle the Sun, so it sits in one sign for roughly seven years and describes an age group rather than a person. What is personal is the house it falls in: the area of life where you resist being told what to do, where change tends to arrive suddenly rather than gradually, and where you are least willing to live by someone else’s timetable.",
          "hi": "यूरेनस को सूर्य की एक परिक्रमा में लगभग 84 वर्ष लगते हैं, इसलिए यह एक राशि में करीब सात वर्ष रहता है और किसी व्यक्ति से अधिक एक पूरी पीढ़ी को दर्शाता है। व्यक्तिगत बात इसका भाव है — जीवन का वह क्षेत्र जहाँ आप बंधन सहज स्वीकार नहीं करते, जहाँ परिवर्तन धीरे-धीरे नहीं बल्कि अचानक आता है, और जहाँ किसी और की गति से चलना आपको सबसे कठिन लगता है।"
        },
        "reading": {
          "en": "Uranus in the 5th brings originality to whatever you make and unpredictability to romance. Attractions can be sudden, and creative work matters most when nobody has told you what it should look like.",
          "hi": "पंचम भाव में यूरेनस आपकी रचना में मौलिकता और प्रेम-संबंधों में अनिश्चितता लाता है। आकर्षण अचानक हो सकता है, और सृजन तभी सबसे सार्थक लगता है जब उसका स्वरूप किसी और ने तय न किया हो।"
        }
      },
      {
        "id": "neptune",
        "longitude": 258.5107,
        "sign": "sagittarius",
        "sign_degree": 18.51,
        "nakshatra": "purva_ashadha",
        "retrograde": true,
        "house": 5,
        "label_hi": "नेपच्यून",
        "intro": {
          "en": "Neptune takes about 165 years to circle the Sun and stays in one sign for around fourteen, so its sign belongs to a generation rather than to you. The house is where the outline goes soft: where you see what could be rather than what is, where sympathy comes easily, and where it is worth checking the facts a second time.",
          "hi": "नेपच्यून को सूर्य की परिक्रमा में लगभग 165 वर्ष लगते हैं और यह एक राशि में करीब चौदह वर्ष रहता है, इसलिए इसकी राशि आपकी नहीं, एक पीढ़ी की पहचान है। इसका भाव वह क्षेत्र है जहाँ रेखाएँ धुँधली पड़ जाती हैं — जहाँ आप वह देखते हैं जो हो सकता है, न कि जो है; जहाँ करुणा सहज आती है; और जहाँ तथ्यों को दोबारा जाँच लेना उचित रहता है।"
        },
        "reading": {
          "en": "Neptune in the 5th brings imagination to creative work and idealism to romance. Art of some kind is a real outlet, and it helps to see a person as they are before deciding who they might become.",
          "hi": "पंचम भाव में नेपच्यून सृजन में कल्पना और प्रेम में आदर्शवाद लाता है। किसी न किसी रूप में कला वास्तविक अभिव्यक्ति बनती है, और किसी को वह मान लेने से पहले जैसा वह हो सकता है, उसे जैसा वह है वैसा देख लेना हितकर होता है।"
        }
      },
      {
        "id": "pluto",
        "longitude": 201.3313,
        "sign": "libra",
        "sign_degree": 21.33,
        "nakshatra": "vishakha",
        "retrograde": false,
        "house": 3,
        "label_hi": "प्लूटो",
        "intro": {
          "en": "Pluto takes roughly 248 years to circle the Sun and can spend anywhere from twelve to thirty years in one sign, so its sign is generational. The house is where things end and begin again rather than simply improving — the area you keep returning to, and the one where you would least willingly be controlled by anyone.",
          "hi": "प्लूटो को सूर्य की परिक्रमा में लगभग 248 वर्ष लगते हैं और यह एक राशि में बारह से तीस वर्ष तक रह सकता है, इसलिए इसकी राशि पीढ़ीगत होती है। इसका भाव वह क्षेत्र है जहाँ चीज़ें केवल सुधरती नहीं, बल्कि समाप्त होकर नए सिरे से आरंभ होती हैं — वह क्षेत्र जहाँ आप बार-बार लौटते हैं, और जहाँ किसी का नियंत्रण आपको सबसे कम स्वीकार्य है।"
        },
        "reading": {
          "en": "Pluto in the 3rd gives a probing mind that is not satisfied by the surface answer. Your words carry weight, and early ties with siblings or neighbours may have marked you more than you say.",
          "hi": "तृतीय भाव में प्लूटो ऐसी खोजी बुद्धि देता है जो ऊपरी उत्तर से संतुष्ट नहीं होती। आपके शब्दों में भार होता है, और भाई-बहनों या पड़ोस से जुड़े आरंभिक संबंधों ने आप पर उससे अधिक छाप छोड़ी हो सकती है जितना आप कहते हैं।"
        }
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Dwadasamsa (D12) read for the lineage: father, mother, the 4th and 9th, strength 0–10

POST/v1/kundli/d12

2 credits · Secret key (test or live) · getD12Analysis · Page for this operation

Needs a birth time.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • lagna_sign string required
  • father string required
  • mother string required
  • occupants object required
    • fourth array of string required
    • ninth array of string required
  • strength number required

    ≥ 0 · ≤ 10

  • rating string required
  • insights array of string required
  • interpretation string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/d12' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/d12", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/d12",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/d12');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 2,082 characters
{
  "data": {
    "lagna_sign": "virgo",
    "father": "Sun in Taurus, 9th house",
    "mother": "Moon in Scorpio, 3rd house",
    "occupants": {
      "fourth": [
        "ketu"
      ],
      "ninth": [
        "sun",
        "mercury"
      ]
    },
    "strength": 6.7,
    "rating": "Balanced inheritance",
    "insights": [
      "Moon is debilitated in D12 Scorpio. What it carries here - the mother and emotional inheritance - is the weak link, and it is yours to repair.",
      "Venus is debilitated in D12 Virgo. What it carries here - household comfort, the women of the family and inherited wealth - is the weak link, and it is yours to repair.",
      "Saturn is dignified in D12 Libra. What it carries here - ancestral duty, debt and long obligation - supports you.",
      "Rahu is dignified in D12 Gemini. What it carries here - migration, mixed lineage and breaks with tradition - supports you.",
      "Ketu is dignified in D12 Sagittarius. What it carries here - unfinished ancestral karma (pitru rin) - supports you.",
      "Sun (father) sits in the 9th house of D12 in Taurus - a workable, supportive line from the father.",
      "Moon (mother) sits in the 3rd house of D12 in Scorpio - the bond with the mother matured late rather than early.",
      "D12 4th house (roots, mother, family property): Ketu.",
      "D12 9th house (father, dharma, ancestral blessing): Sun, Mercury."
    ],
    "interpretation": "Your Dwadasamsa lagna is Virgo, and the chart reads 6.7/10 - balanced inheritance. What you received from your parents and lineage is largely usable capital. Honouring it - respect for elders, keeping family commitments, shraddh in Pitru Paksha - keeps that channel open."
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Upagrahas: the five from the Sun, and Kala, Mrityu, Ardhaprahara, Yamaghantaka and Gulika from the day's eight parts

POST/v1/kundli/upagrahas

1 credit · Secret key (test or live) · getUpagrahas · Page for this operation

Needs a birth time. The time-based points are the lagna at the end of each part, by sunrise and sunset at the birth place.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • sun_based array of UpagrahaPoint required
    • id string required
    • name string required
    • longitude number required
    • sign string required
    • degree number required
    • nakshatra string required
    • pada integer required

      ≥ 1 · ≤ 4

    • house integer required

      ≥ 1 · ≤ 12

    • part integer

      Which of the eight parts. Time-based only.

    • planet string

      Whose part. Time-based only.

    • at string (date-time)

      The moment the lagna is taken: the end of the part. Time-based only.

  • time_based array of UpagrahaPoint required
    • id string required
    • name string required
    • longitude number required
    • sign string required
    • degree number required
    • nakshatra string required
    • pada integer required

      ≥ 1 · ≤ 4

    • house integer required

      ≥ 1 · ≤ 12

    • part integer

      Which of the eight parts. Time-based only.

    • planet string

      Whose part. Time-based only.

    • at string (date-time)

      The moment the lagna is taken: the end of the part. Time-based only.

  • frame object required
    • period string required

      one of day, night

    • weekday string required
    • start string (date-time) required
    • end string (date-time) required
  • source object required
    • text string required
    • basis string required

      one of convention

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/upagrahas' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/upagrahas", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/upagrahas",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/upagrahas');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 3,471 characters
{
  "data": {
    "sun_based": [
      {
        "id": "dhuma",
        "name": "Dhuma",
        "longitude": 249.6472,
        "sign": "sagittarius",
        "degree": 9.6472,
        "nakshatra": "mula",
        "pada": 3,
        "house": 5
      },
      {
        "id": "vyatipata",
        "name": "Vyatipata",
        "longitude": 342.9806,
        "sign": "pisces",
        "degree": 12.9806,
        "nakshatra": "uttara_bhadrapada",
        "pada": 3,
        "house": 8
      },
      {
        "id": "parivesha",
        "name": "Parivesha",
        "longitude": 162.9806,
        "sign": "virgo",
        "degree": 12.9806,
        "nakshatra": "hasta",
        "pada": 1,
        "house": 2
      },
      {
        "id": "indrachapa",
        "name": "Indrachapa",
        "longitude": 69.6472,
        "sign": "gemini",
        "degree": 9.6472,
        "nakshatra": "ardra",
        "pada": 1,
        "house": 11
      },
      {
        "id": "upaketu",
        "name": "Upaketu",
        "longitude": 86.3139,
        "sign": "gemini",
        "degree": 26.3139,
        "nakshatra": "punarvasu",
        "pada": 2,
        "house": 11
      }
    ],
    "time_based": [
      {
        "id": "kala",
        "name": "Kala",
        "longitude": 297.83,
        "sign": "capricorn",
        "degree": 27.83,
        "nakshatra": "dhanishta",
        "pada": 2,
        "house": 6,
        "part": 8,
        "planet": "sun",
        "at": "1990-08-13T13:32:44.973Z"
      },
      {
        "id": "mrityu",
        "name": "Mrityu",
        "longitude": 158.72,
        "sign": "virgo",
        "degree": 8.72,
        "nakshatra": "uttara_phalguni",
        "pada": 4,
        "house": 2,
        "part": 2,
        "planet": "mars",
        "at": "1990-08-13T03:37:26.533Z"
      },
      {
        "id": "ardhaprahara",
        "name": "Ardhaprahara",
        "longitude": 180.48,
        "sign": "libra",
        "degree": 0.48,
        "nakshatra": "chitra",
        "pada": 3,
        "house": 3,
        "part": 3,
        "planet": "mercury",
        "at": "1990-08-13T05:16:39.606Z"
      },
      {
        "id": "yamaghantaka",
        "name": "Yamaghantaka",
        "longitude": 201.85,
        "sign": "libra",
        "degree": 21.85,
        "nakshatra": "vishakha",
        "pada": 1,
        "house": 3,
        "part": 4,
        "planet": "jupiter",
        "at": "1990-08-13T06:55:52.680Z"
      },
      {
        "id": "gulika",
        "name": "Gulika",
        "longitude": 245.01,
        "sign": "sagittarius",
        "degree": 5.01,
        "nakshatra": "mula",
        "pada": 2,
        "house": 5,
        "part": 6,
        "planet": "saturn",
        "at": "1990-08-13T10:14:18.826Z"
      }
    ],
    "frame": {
      "period": "day",
      "weekday": "monday",
      "start": "1990-08-13T00:19:00.387Z",
      "end": "1990-08-13T13:32:44.973Z"
    },
    "source": {
      "text": "Wikipedia's Upagraha page: its formulas and tables. The Sanskrit text has not been read. Gulika is also called Mandi there.",
      "basis": "convention"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Arudha padas of the twelve houses, with Arudha Lagna and Upapada

POST/v1/kundli/arudha

1 credit · Secret key (test or live) · getArudhaPadas · Page for this operation

Needs a birth time. Choose the lord of Scorpio and of Aquarius: rules for choosing between the two lords differ, and the API does not pick by strength.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

  • scorpio_lord string

    one of mars, ketu · default "mars"

  • aquarius_lord string

    one of saturn, rahu · default "saturn"

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • padas array of object required
    • id string required
    • house integer required
    • name string required
    • lord string required
    • lord_house integer required
    • sign string required
    • pada_house integer required
    • exception_applied boolean required

      The count landed on the sign or its 7th, so the 10th from there was taken.

    • planets array of string required
  • arudha_lagna string required
  • upapada string required
  • scorpio_lord string required
  • aquarius_lord string required
  • source object required
    • text string required
    • basis string required

      one of convention

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/arudha' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/arudha", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/arudha",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/arudha');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 3,823 characters
{
  "data": {
    "padas": [
      {
        "id": "a1",
        "house": 1,
        "name": "Arudha Lagna",
        "lord": "sun",
        "lord_house": 12,
        "sign": "gemini",
        "pada_house": 11,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a2",
        "house": 2,
        "name": "Dhana Pada",
        "lord": "mercury",
        "lord_house": 1,
        "sign": "cancer",
        "pada_house": 12,
        "exception_applied": false,
        "planets": [
          "sun",
          "venus",
          "jupiter",
          "ketu"
        ]
      },
      {
        "id": "a3",
        "house": 3,
        "name": "Bhratri Pada",
        "lord": "venus",
        "lord_house": 12,
        "sign": "capricorn",
        "pada_house": 6,
        "exception_applied": true,
        "planets": [
          "rahu"
        ]
      },
      {
        "id": "a4",
        "house": 4,
        "name": "Matri Pada",
        "lord": "mars",
        "lord_house": 9,
        "sign": "virgo",
        "pada_house": 2,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a5",
        "house": 5,
        "name": "Mantra Pada",
        "lord": "jupiter",
        "lord_house": 12,
        "sign": "aquarius",
        "pada_house": 7,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a6",
        "house": 6,
        "name": "Shatru Pada",
        "lord": "saturn",
        "lord_house": 5,
        "sign": "scorpio",
        "pada_house": 4,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a7",
        "house": 7,
        "name": "Dara Pada",
        "lord": "saturn",
        "lord_house": 5,
        "sign": "libra",
        "pada_house": 3,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a8",
        "house": 8,
        "name": "Roga Pada",
        "lord": "jupiter",
        "lord_house": 12,
        "sign": "scorpio",
        "pada_house": 4,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a9",
        "house": 9,
        "name": "Bhagya Pada",
        "lord": "mars",
        "lord_house": 9,
        "sign": "capricorn",
        "pada_house": 6,
        "exception_applied": true,
        "planets": [
          "rahu"
        ]
      },
      {
        "id": "a10",
        "house": 10,
        "name": "Rajya Pada",
        "lord": "venus",
        "lord_house": 12,
        "sign": "virgo",
        "pada_house": 2,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a11",
        "house": 11,
        "name": "Labha Pada",
        "lord": "mercury",
        "lord_house": 1,
        "sign": "libra",
        "pada_house": 3,
        "exception_applied": false,
        "planets": []
      },
      {
        "id": "a12",
        "house": 12,
        "name": "Upapada",
        "lord": "moon",
        "lord_house": 9,
        "sign": "libra",
        "pada_house": 3,
        "exception_applied": true,
        "planets": []
      }
    ],
    "arudha_lagna": "gemini",
    "upapada": "libra",
    "scorpio_lord": "mars",
    "aquarius_lord": "saturn",
    "source": {
      "text": "Wikipedia's Lagna page, which states the rule; the Sanskrit text has not been read. The Upapada is the pada of the 12th house.",
      "basis": "convention"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Jaimini chara karakas on the seven-planet scheme, with the karakamsha

POST/v1/kundli/chara-karakas

1 credit · Secret key (test or live) · getCharaKarakas · Page for this operation

Needs a birth time. The seven planets ranked by degrees in their sign, highest first. Rahu is not counted; schemes with eight karakas exist and give different roles.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • scheme string required

    one of seven

  • karakas array of object required
    • rank integer required
    • role string required
    • abbreviation string required
    • name string required
    • planet string required
    • degree_in_sign number required
  • atmakaraka string required
  • karakamsha string required
  • basis string required

    one of convention

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/chara-karakas' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/chara-karakas", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/chara-karakas",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/chara-karakas');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,822 characters
{
  "data": {
    "scheme": "seven",
    "karakas": [
      {
        "rank": 1,
        "role": "atmakaraka",
        "abbreviation": "AK",
        "name": "Atmakaraka",
        "planet": "sun",
        "degree_in_sign": 26.31
      },
      {
        "rank": 2,
        "role": "amatyakaraka",
        "abbreviation": "AmK",
        "name": "Amatyakaraka",
        "planet": "saturn",
        "degree_in_sign": 26.27
      },
      {
        "rank": 3,
        "role": "bhratrikaraka",
        "abbreviation": "BK",
        "name": "Bhratrikaraka",
        "planet": "mars",
        "degree_in_sign": 26.23
      },
      {
        "rank": 4,
        "role": "matrikaraka",
        "abbreviation": "MK",
        "name": "Matrikaraka",
        "planet": "mercury",
        "degree_in_sign": 23.64
      },
      {
        "rank": 5,
        "role": "putrakaraka",
        "abbreviation": "PK",
        "name": "Putrakaraka",
        "planet": "moon",
        "degree_in_sign": 18.1
      },
      {
        "rank": 6,
        "role": "gnatikaraka",
        "abbreviation": "GK",
        "name": "Gnatikaraka",
        "planet": "venus",
        "degree_in_sign": 5.2
      },
      {
        "rank": 7,
        "role": "darakaraka",
        "abbreviation": "DK",
        "name": "Darakaraka",
        "planet": "jupiter",
        "degree_in_sign": 5.14
      }
    ],
    "atmakaraka": "sun",
    "karakamsha": "aquarius",
    "basis": "convention"
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Bhav chalit: the Sripati bhavas, and which planets shift from their rashi house

POST/v1/kundli/bhav-chalit

1 credit · Secret key (test or live) · getBhavChalit · Page for this operation

Needs a birth time. Madhya of the 1st is the lagna and of the 10th the midheaven; each arambh is halfway between two madhyas.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • system string required

    one of sripati

  • bhavas array of object required
    • bhava integer required
    • arambh number required
    • madhya number required
  • planets array of object required
    • planet string required
    • longitude number required
    • rashi_house integer required
    • bhava integer required
    • shifted boolean required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/bhav-chalit' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/bhav-chalit", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/bhav-chalit",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/bhav-chalit');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 2,855 characters
{
  "data": {
    "system": "sripati",
    "bhavas": [
      {
        "bhava": 1,
        "arambh": 108.8953,
        "madhya": 124.27
      },
      {
        "bhava": 2,
        "arambh": 138.8953,
        "madhya": 153.5207
      },
      {
        "bhava": 3,
        "arambh": 168.146,
        "madhya": 182.7713
      },
      {
        "bhava": 4,
        "arambh": 197.3967,
        "madhya": 212.022
      },
      {
        "bhava": 5,
        "arambh": 227.3967,
        "madhya": 242.7713
      },
      {
        "bhava": 6,
        "arambh": 258.146,
        "madhya": 273.5207
      },
      {
        "bhava": 7,
        "arambh": 288.8953,
        "madhya": 304.27
      },
      {
        "bhava": 8,
        "arambh": 318.8953,
        "madhya": 333.5207
      },
      {
        "bhava": 9,
        "arambh": 348.146,
        "madhya": 2.7713
      },
      {
        "bhava": 10,
        "arambh": 17.3967,
        "madhya": 32.022
      },
      {
        "bhava": 11,
        "arambh": 47.3967,
        "madhya": 62.7713
      },
      {
        "bhava": 12,
        "arambh": 78.146,
        "madhya": 93.5207
      }
    ],
    "planets": [
      {
        "planet": "sun",
        "longitude": 116.3139,
        "rashi_house": 12,
        "bhava": 1,
        "shifted": true
      },
      {
        "planet": "moon",
        "longitude": 18.0955,
        "rashi_house": 9,
        "bhava": 10,
        "shifted": true
      },
      {
        "planet": "mercury",
        "longitude": 143.6373,
        "rashi_house": 1,
        "bhava": 2,
        "shifted": true
      },
      {
        "planet": "venus",
        "longitude": 95.1983,
        "rashi_house": 12,
        "bhava": 12,
        "shifted": false
      },
      {
        "planet": "mars",
        "longitude": 26.2271,
        "rashi_house": 9,
        "bhava": 10,
        "shifted": true
      },
      {
        "planet": "jupiter",
        "longitude": 95.14,
        "rashi_house": 12,
        "bhava": 12,
        "shifted": false
      },
      {
        "planet": "saturn",
        "longitude": 266.2724,
        "rashi_house": 5,
        "bhava": 6,
        "shifted": true
      },
      {
        "planet": "rahu",
        "longitude": 283.4929,
        "rashi_house": 6,
        "bhava": 6,
        "shifted": false
      },
      {
        "planet": "ketu",
        "longitude": 103.4929,
        "rashi_house": 12,
        "bhava": 12,
        "shifted": false
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Asta and Uday: when each planet sets and rises near the Sun, for a place

POST/v1/planets/asta

2 credits · Secret key (test or live) · getAstaUday · Page for this operation

A daily test in time-degrees at sunrise and sunset. Published panchangs use their own models, so dates can differ by days: see Vedic additions in the docs.

Request body

  • from string (date) required

    e.g. "1990-08-13"

  • to string (date) required

    At most 366 days after from.

    e.g. "1990-08-13"

  • place Coordinates or object or object required

    Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

    One of:

    1. Coordinates
      Fields
      • latitude number required

        ≥ -90 · ≤ 90

      • longitude number required

        ≥ -180 · ≤ 180

      No other fields are accepted.

    2. object
      Fields
      • place_id string required

      No other fields are accepted.

    3. object
      Fields
      • query string required

        at least 2 characters · at most 120 characters

      No other fields are accepted.

  • planets array of string

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • from string (date) required

    e.g. "1990-08-13"

  • to string (date) required

    e.g. "1990-08-13"

  • periods array of object required
    • planet string required
    • asta string (date-time) required
    • uday string (date-time) required
    • days number required
    • sets_in string required

      one of morning, evening

    • rises_in string required

      one of morning, evening

    • degrees_at_asta number required
  • source object required
    • text string required
    • basis string required

      one of convention

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/planets/asta' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"from":"2026-07-01","to":"2026-08-20","place":{"latitude":28.6139,"longitude":77.209},"planets":["jupiter"]}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/asta", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "from": "2026-07-01",
    "to": "2026-08-20",
    "place": {
      "latitude": 28.6139,
      "longitude": 77.209
    },
    "planets": [
      "jupiter"
    ]
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "from": "2026-07-01",
    "to": "2026-08-20",
    "place": {
        "latitude": 28.6139,
        "longitude": 77.209,
    },
    "planets": [
        "jupiter",
    ],
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/planets/asta",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/planets/asta');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"from":"2026-07-01","to":"2026-08-20","place":{"latitude":28.6139,"longitude":77.209},"planets":["jupiter"]}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 798 characters
{
  "data": {
    "from": "2026-07-01",
    "to": "2026-08-20",
    "periods": [
      {
        "planet": "jupiter",
        "asta": "2026-07-13T13:51:27.411Z",
        "uday": "2026-08-12T00:18:41.021Z",
        "days": 29.4,
        "sets_in": "evening",
        "rises_in": "morning",
        "degrees_at_asta": 11
      }
    ],
    "source": {
      "text": "When the planet stops and starts rising or setting far enough from the Sun, in time-degrees, tested at sunrise and sunset. Published panchangs use their own models and can differ by days. Not a forecast of a sighting.",
      "basis": "convention"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

A series of sidereal positions over a range, at up to 400 steps

POST/v1/planets/series

2 credits · Secret key (test or live) · getPlanetSeries · Page for this operation

Request body

  • from string (date) required

    e.g. "1990-08-13"

  • to string (date) required

    e.g. "1990-08-13"

  • step string

    one of hour, 6h, day, week · default "day"

  • planets array of string

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • step string required
  • count integer required
  • at array of string (date-time) required
  • planets array of object required
    • planet string required
    • points array of object required
      Fields
      • longitude number required
      • speed number required
      • retrograde boolean required
      • sign string required
      • nakshatra string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/planets/series' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"from":"2026-01-01","to":"2026-01-03","step":"day","planets":["moon"]}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/series", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "from": "2026-01-01",
    "to": "2026-01-03",
    "step": "day",
    "planets": [
      "moon"
    ]
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "from": "2026-01-01",
    "to": "2026-01-03",
    "step": "day",
    "planets": [
        "moon",
    ],
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/planets/series",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/planets/series');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"from":"2026-01-01","to":"2026-01-03","step":"day","planets":["moon"]}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,029 characters
{
  "data": {
    "step": "day",
    "count": 3,
    "at": [
      "2026-01-01T00:00:00.000Z",
      "2026-01-02T00:00:00.000Z",
      "2026-01-03T00:00:00.000Z"
    ],
    "planets": [
      {
        "planet": "moon",
        "points": [
          {
            "longitude": 42.4949,
            "speed": 14.9863,
            "retrograde": false,
            "sign": "taurus",
            "nakshatra": "rohini"
          },
          {
            "longitude": 57.5326,
            "speed": 15.0594,
            "retrograde": false,
            "sign": "taurus",
            "nakshatra": "mrigashira"
          },
          {
            "longitude": 72.5616,
            "speed": 14.9676,
            "retrograde": false,
            "sign": "gemini",
            "nakshatra": "ardra"
          }
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 2,
    "ayanamsa": "lahiri"
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

The 12 rashis: span, lord, element, modality, varna, vashya and nakshatras

GET/v1/reference/rashis

1 credit · Secret key (test or live) · getRashiReference · Page for this operation

Parameters

NameInTypeNotes
langquerystring one of en, hi · default "en"

Response

JSON { data, meta, warnings }, where data is:

  • rashis array of object required
    • id string required
    • number integer required
    • name string required
    • start number required
    • end number required
    • lord string required
    • element string required
    • modality string required

      one of movable, fixed, dual

    • varna string required
    • vashya string required
    • nakshatras array of string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/reference/rashis' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/reference/rashis", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/reference/rashis",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/reference/rashis');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 4,692 characters
{
  "data": {
    "rashis": [
      {
        "id": "aries",
        "number": 1,
        "name": "Aries",
        "start": 0,
        "end": 30,
        "lord": "mars",
        "element": "fire",
        "modality": "movable",
        "varna": "kshatriya",
        "vashya": "chatushpada",
        "nakshatras": [
          "ashwini",
          "bharani",
          "krittika"
        ]
      },
      {
        "id": "taurus",
        "number": 2,
        "name": "Taurus",
        "start": 30,
        "end": 60,
        "lord": "venus",
        "element": "earth",
        "modality": "fixed",
        "varna": "vaishya",
        "vashya": "chatushpada",
        "nakshatras": [
          "krittika",
          "rohini",
          "mrigashira"
        ]
      },
      {
        "id": "gemini",
        "number": 3,
        "name": "Gemini",
        "start": 60,
        "end": 90,
        "lord": "mercury",
        "element": "air",
        "modality": "dual",
        "varna": "shudra",
        "vashya": "manava",
        "nakshatras": [
          "mrigashira",
          "ardra",
          "punarvasu"
        ]
      },
      {
        "id": "cancer",
        "number": 4,
        "name": "Cancer",
        "start": 90,
        "end": 120,
        "lord": "moon",
        "element": "water",
        "modality": "movable",
        "varna": "brahmin",
        "vashya": "jalachara",
        "nakshatras": [
          "punarvasu",
          "pushya",
          "ashlesha"
        ]
      },
      {
        "id": "leo",
        "number": 5,
        "name": "Leo",
        "start": 120,
        "end": 150,
        "lord": "sun",
        "element": "fire",
        "modality": "fixed",
        "varna": "kshatriya",
        "vashya": "vanachara",
        "nakshatras": [
          "magha",
          "purva_phalguni",
          "uttara_phalguni"
        ]
      },
      {
        "id": "virgo",
        "number": 6,
        "name": "Virgo",
        "start": 150,
        "end": 180,
        "lord": "mercury",
        "element": "earth",
        "modality": "dual",
        "varna": "vaishya",
        "vashya": "manava",
        "nakshatras": [
          "uttara_phalguni",
          "hasta",
          "chitra"
        ]
      },
      {
        "id": "libra",
        "number": 7,
        "name": "Libra",
        "start": 180,
        "end": 210,
        "lord": "venus",
        "element": "air",
        "modality": "movable",
        "varna": "shudra",
        "vashya": "manava",
        "nakshatras": [
          "chitra",
          "swati",
          "vishakha"
        ]
      },
      {
        "id": "scorpio",
        "number": 8,
        "name": "Scorpio",
        "start": 210,
        "end": 240,
        "lord": "mars",
        "element": "water",
        "modality": "fixed",
        "varna": "brahmin",
        "vashya": "keeta",
        "nakshatras": [
          "vishakha",
          "anuradha",
          "jyeshtha"
        ]
      },
      {
        "id": "sagittarius",
        "number": 9,
        "name": "Sagittarius",
        "start": 240,
        "end": 270,
        "lord": "jupiter",
        "element": "fire",
        "modality": "dual",
        "varna": "kshatriya",
        "vashya": "manava",
        "nakshatras": [
          "mula",
          "purva_ashadha",
          "uttara_ashadha"
        ]
      },
      {
        "id": "capricorn",
        "number": 10,
        "name": "Capricorn",
        "start": 270,
        "end": 300,
        "lord": "saturn",
        "element": "earth",
        "modality": "movable",
        "varna": "vaishya",
        "vashya": "jalachara",
        "nakshatras": [
          "uttara_ashadha",
          "shravana",
          "dhanishta"
        ]
      },
      {
        "id": "aquarius",
        "number": 11,
        "name": "Aquarius",
        "start": 300,
        "end": 330,
        "lord": "saturn",
        "element": "air",
        "modality": "fixed",
        "varna": "shudra",
        "vashya": "manava",
        "nakshatras": [
          "dhanishta",
          "shatabhisha",
          "purva_bhadrapada"
        ]
      },
      {
        "id": "pisces",
        "number": 12,
        "name": "Pisces",
        "start": 330,
        "end": 360,
        "lord": "jupiter",
        "element": "water",
        "modality": "dual",
        "varna": "brahmin",
        "vashya": "jalachara",
        "nakshatras": [
          "purva_bhadrapada",
          "uttara_bhadrapada",
          "revati"
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

The 27 nakshatras: span, lord, gana, yoni, nadi, deity and symbol

GET/v1/reference/nakshatras

1 credit · Secret key (test or live) · getNakshatraReference · Page for this operation

Parameters

NameInTypeNotes
langquerystring one of en, hi · default "en"

Response

JSON { data, meta, warnings }, where data is:

  • nakshatras array of object required
    • id string required
    • number integer required
    • name string required
    • start number required
    • end number required
    • lord string required
    • gana string required
    • yoni string required
    • nadi string required
    • deity string required
    • symbol string required
  • source object required
    • deity_and_symbol string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/reference/nakshatras' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/reference/nakshatras", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/reference/nakshatras",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/reference/nakshatras');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 9,207 characters
{
  "data": {
    "nakshatras": [
      {
        "id": "ashwini",
        "number": 1,
        "name": "Ashwini",
        "start": 0,
        "end": 13.3333,
        "lord": "ketu",
        "gana": "deva",
        "yoni": "horse",
        "nadi": "aadi (vata)",
        "deity": "Ashvins",
        "symbol": "Horse's head"
      },
      {
        "id": "bharani",
        "number": 2,
        "name": "Bharani",
        "start": 13.3333,
        "end": 26.6667,
        "lord": "venus",
        "gana": "manushya",
        "yoni": "elephant",
        "nadi": "madhya (pitta)",
        "deity": "Yama",
        "symbol": "Yoni"
      },
      {
        "id": "krittika",
        "number": 3,
        "name": "Krittika",
        "start": 26.6667,
        "end": 40,
        "lord": "sun",
        "gana": "rakshasa",
        "yoni": "goat",
        "nadi": "antya (kapha)",
        "deity": "Agni",
        "symbol": "Knife or spear"
      },
      {
        "id": "rohini",
        "number": 4,
        "name": "Rohini",
        "start": 40,
        "end": 53.3333,
        "lord": "moon",
        "gana": "manushya",
        "yoni": "serpent",
        "nadi": "antya (kapha)",
        "deity": "Brahma or Prajapati",
        "symbol": "Cart or chariot, temple, banyan tree"
      },
      {
        "id": "mrigashira",
        "number": 5,
        "name": "Mrigashira",
        "start": 53.3333,
        "end": 66.6667,
        "lord": "mars",
        "gana": "deva",
        "yoni": "serpent",
        "nadi": "madhya (pitta)",
        "deity": "Soma",
        "symbol": "Deer's head"
      },
      {
        "id": "ardra",
        "number": 6,
        "name": "Ardra",
        "start": 66.6667,
        "end": 80,
        "lord": "rahu",
        "gana": "manushya",
        "yoni": "dog",
        "nadi": "aadi (vata)",
        "deity": "Rudra",
        "symbol": "Teardrop, diamond, a human head"
      },
      {
        "id": "punarvasu",
        "number": 7,
        "name": "Punarvasu",
        "start": 80,
        "end": 93.3333,
        "lord": "jupiter",
        "gana": "deva",
        "yoni": "cat",
        "nadi": "aadi (vata)",
        "deity": "Aditi",
        "symbol": "Bow and quiver"
      },
      {
        "id": "pushya",
        "number": 8,
        "name": "Pushya",
        "start": 93.3333,
        "end": 106.6667,
        "lord": "saturn",
        "gana": "deva",
        "yoni": "goat",
        "nadi": "madhya (pitta)",
        "deity": "Brihaspati",
        "symbol": "Cow's udder, lotus, arrow and circle"
      },
      {
        "id": "ashlesha",
        "number": 9,
        "name": "Ashlesha",
        "start": 106.6667,
        "end": 120,
        "lord": "mercury",
        "gana": "rakshasa",
        "yoni": "cat",
        "nadi": "antya (kapha)",
        "deity": "Sarpas or Nagas",
        "symbol": "Serpent"
      },
      {
        "id": "magha",
        "number": 10,
        "name": "Magha",
        "start": 120,
        "end": 133.3333,
        "lord": "ketu",
        "gana": "rakshasa",
        "yoni": "rat",
        "nadi": "antya (kapha)",
        "deity": "Pitrs",
        "symbol": "Royal throne"
      },
      {
        "id": "purva_phalguni",
        "number": 11,
        "name": "Purva Phalguni",
        "start": 133.3333,
        "end": 146.6667,
        "lord": "venus",
        "gana": "manushya",
        "yoni": "rat",
        "nadi": "madhya (pitta)",
        "deity": "Bhaga",
        "symbol": "Front legs of bed, hammock, fig tree"
      },
      {
        "id": "uttara_phalguni",
        "number": 12,
        "name": "Uttara Phalguni",
        "start": 146.6667,
        "end": 160,
        "lord": "sun",
        "gana": "manushya",
        "yoni": "cow",
        "nadi": "aadi (vata)",
        "deity": "Aryaman",
        "symbol": "Four legs of bed, hammock"
      },
      {
        "id": "hasta",
        "number": 13,
        "name": "Hasta",
        "start": 160,
        "end": 173.3333,
        "lord": "moon",
        "gana": "deva",
        "yoni": "buffalo",
        "nadi": "aadi (vata)",
        "deity": "Savitri or Surya",
        "symbol": "Hand or fist"
      },
      {
        "id": "chitra",
        "number": 14,
        "name": "Chitra",
        "start": 173.3333,
        "end": 186.6667,
        "lord": "mars",
        "gana": "rakshasa",
        "yoni": "tiger",
        "nadi": "madhya (pitta)",
        "deity": "Tvastar or Vishvakarman",
        "symbol": "Bright jewel or pearl"
      },
      {
        "id": "swati",
        "number": 15,
        "name": "Swati",
        "start": 186.6667,
        "end": 200,
        "lord": "rahu",
        "gana": "deva",
        "yoni": "buffalo",
        "nadi": "antya (kapha)",
        "deity": "Vayu",
        "symbol": "Shoot of plant, coral"
      },
      {
        "id": "vishakha",
        "number": 16,
        "name": "Vishakha",
        "start": 200,
        "end": 213.3333,
        "lord": "jupiter",
        "gana": "rakshasa",
        "yoni": "tiger",
        "nadi": "antya (kapha)",
        "deity": "Indra and Agni",
        "symbol": "Triumphal arch, potter's wheel"
      },
      {
        "id": "anuradha",
        "number": 17,
        "name": "Anuradha",
        "start": 213.3333,
        "end": 226.6667,
        "lord": "saturn",
        "gana": "deva",
        "yoni": "deer",
        "nadi": "madhya (pitta)",
        "deity": "Mitra",
        "symbol": "Triumphal archway, lotus"
      },
      {
        "id": "jyeshtha",
        "number": 18,
        "name": "Jyeshtha",
        "start": 226.6667,
        "end": 240,
        "lord": "mercury",
        "gana": "rakshasa",
        "yoni": "deer",
        "nadi": "aadi (vata)",
        "deity": "Indra",
        "symbol": "Circular amulet, umbrella, earring"
      },
      {
        "id": "mula",
        "number": 19,
        "name": "Mula",
        "start": 240,
        "end": 253.3333,
        "lord": "ketu",
        "gana": "rakshasa",
        "yoni": "dog",
        "nadi": "aadi (vata)",
        "deity": "Nirrti",
        "symbol": "Bunch of roots tied together, elephant goad"
      },
      {
        "id": "purva_ashadha",
        "number": 20,
        "name": "Purva Ashadha",
        "start": 253.3333,
        "end": 266.6667,
        "lord": "venus",
        "gana": "manushya",
        "yoni": "monkey",
        "nadi": "madhya (pitta)",
        "deity": "Apah",
        "symbol": "Elephant tusk, fan, winnowing basket"
      },
      {
        "id": "uttara_ashadha",
        "number": 21,
        "name": "Uttara Ashadha",
        "start": 266.6667,
        "end": 280,
        "lord": "sun",
        "gana": "manushya",
        "yoni": "mongoose",
        "nadi": "antya (kapha)",
        "deity": "Visvedevas",
        "symbol": "Elephant tusk, small bed"
      },
      {
        "id": "shravana",
        "number": 22,
        "name": "Shravana",
        "start": 280,
        "end": 293.3333,
        "lord": "moon",
        "gana": "deva",
        "yoni": "monkey",
        "nadi": "antya (kapha)",
        "deity": "Vishnu",
        "symbol": "Ear or three footprints"
      },
      {
        "id": "dhanishta",
        "number": 23,
        "name": "Dhanishta",
        "start": 293.3333,
        "end": 306.6667,
        "lord": "mars",
        "gana": "rakshasa",
        "yoni": "lion",
        "nadi": "madhya (pitta)",
        "deity": "Eight Vasus",
        "symbol": "Drum or flute"
      },
      {
        "id": "shatabhisha",
        "number": 24,
        "name": "Shatabhisha",
        "start": 306.6667,
        "end": 320,
        "lord": "rahu",
        "gana": "rakshasa",
        "yoni": "horse",
        "nadi": "aadi (vata)",
        "deity": "Varuna",
        "symbol": "Empty circle, 1,000 flowers or stars"
      },
      {
        "id": "purva_bhadrapada",
        "number": 25,
        "name": "Purva Bhadrapada",
        "start": 320,
        "end": 333.3333,
        "lord": "jupiter",
        "gana": "manushya",
        "yoni": "lion",
        "nadi": "aadi (vata)",
        "deity": "Ajaikapada",
        "symbol": "Swords or two front legs of funeral cot, man with two faces"
      },
      {
        "id": "uttara_bhadrapada",
        "number": 26,
        "name": "Uttara Bhadrapada",
        "start": 333.3333,
        "end": 346.6667,
        "lord": "saturn",
        "gana": "manushya",
        "yoni": "cow",
        "nadi": "madhya (pitta)",
        "deity": "Ahirbudhnya",
        "symbol": "Twins, back legs of funeral cot, snake in the water"
      },
      {
        "id": "revati",
        "number": 27,
        "name": "Revati",
        "start": 346.6667,
        "end": 360,
        "lord": "mercury",
        "gana": "deva",
        "yoni": "elephant",
        "nadi": "antya (kapha)",
        "deity": "Pushan",
        "symbol": "Fish or a pair of fish, drum"
      }
    ],
    "source": {
      "deity_and_symbol": "Wikipedia's List of Nakshatras, in English. Abhijit, the 28th of some lists, is not included."
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Sidereal positions at any moment and place

POST/v1/planets/positions

1 credit · Secret key (test or live) · getPlanetPositions · Page for this operation

The lagna, the seven grahas, Uranus, Neptune and Pluto (include_outer), and Rahu/Ketu as both the mean and the true node, at an instant (datetime) or at a local date and time at the place. Each body: longitude, sign, degrees/minutes/seconds, nakshatra and pada, the nakshatra lord and KP sub lord, retrograde (the nodes always, by convention), combustion and the daily motion.

Request body

  • datetime string (date-time)

    The instant (with its zone). Or send date and time instead.

  • date string (date)

    With time: the local date at the place.

    e.g. "1990-08-13"

  • time string

    With date: the local wall-clock time at the place, HH:MM or HH:MM:SS (its zone is looked up for that moment).

    pattern ^([01]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$

  • place Coordinates or object or object required

    Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

    One of:

    1. Coordinates
      Fields
      • latitude number required

        ≥ -90 · ≤ 90

      • longitude number required

        ≥ -180 · ≤ 180

      No other fields are accepted.

    2. object
      Fields
      • place_id string required

      No other fields are accepted.

    3. object
      Fields
      • query string required

        at least 2 characters · at most 120 characters

      No other fields are accepted.

  • include_outer boolean

    default false

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • at string (date-time) required
  • bodies array of object required
    • id string required
    • longitude number required
    • sign string required
    • degree_in_sign number
    • nakshatra string
    • pada integer
    • retrograde boolean
    • nakshatra_lord string
    • sub_lord string

      The KP sub lord of the longitude.

    • combust boolean
    • dms object
      Fields
      • degrees integer required
      • minutes integer required
      • seconds integer required
    • speed number or null

      One of:

      1. number
      2. null
  • local object
    • date string (date) required

      e.g. "1990-08-13"

    • time string required
    • weekday string required
    • timezone object required
      Fields
      • name string required
      • offset_hours number required
  • ayanamsa number
  • julian_day number

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/planets/positions' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"datetime":"2026-10-02T06:30:00Z","place":{"latitude":28.6139,"longitude":77.209},"include_outer":true}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/positions", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "datetime": "2026-10-02T06:30:00Z",
    "place": {
      "latitude": 28.6139,
      "longitude": 77.209
    },
    "include_outer": true
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "datetime": "2026-10-02T06:30:00Z",
    "place": {
        "latitude": 28.6139,
        "longitude": 77.209,
    },
    "include_outer": True,
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/planets/positions",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/planets/positions');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"datetime":"2026-10-02T06:30:00Z","place":{"latitude":28.6139,"longitude":77.209},"include_outer":true}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 7,210 characters
{
  "data": {
    "at": "2026-10-02T06:30:00.000Z",
    "bodies": [
      {
        "id": "lagna",
        "longitude": 238.5647,
        "sign": "scorpio",
        "degree_in_sign": 28.5647,
        "nakshatra": "jyeshtha",
        "pada": 4,
        "retrograde": false,
        "nakshatra_lord": "mercury",
        "sub_lord": "saturn",
        "combust": false,
        "dms": {
          "degrees": 28,
          "minutes": 33,
          "seconds": 53
        },
        "speed": null
      },
      {
        "id": "sun",
        "longitude": 164.8547,
        "sign": "virgo",
        "degree_in_sign": 14.8547,
        "nakshatra": "hasta",
        "pada": 2,
        "retrograde": false,
        "nakshatra_lord": "moon",
        "sub_lord": "jupiter",
        "combust": false,
        "dms": {
          "degrees": 14,
          "minutes": 51,
          "seconds": 17
        },
        "speed": 0.9834726223741654
      },
      {
        "id": "moon",
        "longitude": 57.817,
        "sign": "taurus",
        "degree_in_sign": 27.8169,
        "nakshatra": "mrigashira",
        "pada": 2,
        "retrograde": false,
        "nakshatra_lord": "mars",
        "sub_lord": "jupiter",
        "combust": false,
        "dms": {
          "degrees": 27,
          "minutes": 49,
          "seconds": 1
        },
        "speed": 14.25527678484707
      },
      {
        "id": "mars",
        "longitude": 98.1943,
        "sign": "cancer",
        "degree_in_sign": 8.1942,
        "nakshatra": "pushya",
        "pada": 2,
        "retrograde": false,
        "nakshatra_lord": "saturn",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 8,
          "minutes": 11,
          "seconds": 39
        },
        "speed": 0.5803397792059286
      },
      {
        "id": "mercury",
        "longitude": 188.1121,
        "sign": "libra",
        "degree_in_sign": 8.1122,
        "nakshatra": "swati",
        "pada": 1,
        "retrograde": false,
        "nakshatra_lord": "rahu",
        "sub_lord": "rahu",
        "combust": false,
        "dms": {
          "degrees": 8,
          "minutes": 6,
          "seconds": 44
        },
        "speed": 1.2973155208214848
      },
      {
        "id": "jupiter",
        "longitude": 115.5841,
        "sign": "cancer",
        "degree_in_sign": 25.5842,
        "nakshatra": "ashlesha",
        "pada": 3,
        "retrograde": false,
        "nakshatra_lord": "mercury",
        "sub_lord": "rahu",
        "combust": false,
        "dms": {
          "degrees": 25,
          "minutes": 35,
          "seconds": 3
        },
        "speed": 0.17730550456042238
      },
      {
        "id": "venus",
        "longitude": 194.2332,
        "sign": "libra",
        "degree_in_sign": 14.2333,
        "nakshatra": "swati",
        "pada": 3,
        "retrograde": false,
        "nakshatra_lord": "rahu",
        "sub_lord": "mercury",
        "combust": false,
        "dms": {
          "degrees": 14,
          "minutes": 14,
          "seconds": 0
        },
        "speed": 0.039513938701929874
      },
      {
        "id": "saturn",
        "longitude": 347.2428,
        "sign": "pisces",
        "degree_in_sign": 17.2428,
        "nakshatra": "revati",
        "pada": 1,
        "retrograde": true,
        "nakshatra_lord": "mercury",
        "sub_lord": "mercury",
        "combust": false,
        "dms": {
          "degrees": 17,
          "minutes": 14,
          "seconds": 34
        },
        "speed": -0.07849947106581112
      },
      {
        "id": "uranus",
        "longitude": 41.2708,
        "sign": "taurus",
        "degree_in_sign": 11.2708,
        "nakshatra": "rohini",
        "pada": 1,
        "retrograde": true,
        "nakshatra_lord": "moon",
        "sub_lord": "mars",
        "combust": false,
        "dms": {
          "degrees": 11,
          "minutes": 16,
          "seconds": 15
        },
        "speed": null
      },
      {
        "id": "neptune",
        "longitude": 338.5973,
        "sign": "pisces",
        "degree_in_sign": 8.5972,
        "nakshatra": "uttara_bhadrapada",
        "pada": 2,
        "retrograde": true,
        "nakshatra_lord": "saturn",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 8,
          "minutes": 35,
          "seconds": 50
        },
        "speed": null
      },
      {
        "id": "pluto",
        "longitude": 278.8804,
        "sign": "capricorn",
        "degree_in_sign": 8.8803,
        "nakshatra": "uttara_ashadha",
        "pada": 4,
        "retrograde": true,
        "nakshatra_lord": "sun",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 8,
          "minutes": 52,
          "seconds": 49
        },
        "speed": null
      },
      {
        "id": "rahu",
        "longitude": 303.4148,
        "sign": "aquarius",
        "degree_in_sign": 3.4147,
        "nakshatra": "dhanishta",
        "pada": 4,
        "retrograde": true,
        "nakshatra_lord": "mars",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 3,
          "minutes": 24,
          "seconds": 53
        },
        "speed": null
      },
      {
        "id": "ketu",
        "longitude": 123.4148,
        "sign": "leo",
        "degree_in_sign": 3.4147,
        "nakshatra": "magha",
        "pada": 2,
        "retrograde": true,
        "nakshatra_lord": "ketu",
        "sub_lord": "sun",
        "combust": false,
        "dms": {
          "degrees": 3,
          "minutes": 24,
          "seconds": 53
        },
        "speed": null
      },
      {
        "id": "rahu_true",
        "longitude": 304.8471,
        "sign": "aquarius",
        "degree_in_sign": 4.8472,
        "nakshatra": "dhanishta",
        "pada": 4,
        "retrograde": true,
        "nakshatra_lord": "mars",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 4,
          "minutes": 50,
          "seconds": 50
        },
        "speed": -0.035806089245738804
      },
      {
        "id": "ketu_true",
        "longitude": 124.8471,
        "sign": "leo",
        "degree_in_sign": 4.8472,
        "nakshatra": "magha",
        "pada": 2,
        "retrograde": true,
        "nakshatra_lord": "ketu",
        "sub_lord": "mars",
        "combust": false,
        "dms": {
          "degrees": 4,
          "minutes": 50,
          "seconds": 50
        },
        "speed": -0.035806089245738804
      }
    ],
    "local": {
      "date": "2026-10-02",
      "time": "12:00:00",
      "weekday": "friday",
      "timezone": {
        "name": "Asia/Kolkata",
        "offset_hours": 5.5
      }
    },
    "ayanamsa": 24.2331,
    "julian_day": 2461315.77083
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

The sky now: sidereal positions at the top of the current hour

GET/v1/planets/now

1 credit · Secret or publishable key · getPlanetsNow · Page for this operation

POST /v1/planets/positions at the first instant of the current UTC hour, for a "sky now" widget. Every call in the same hour and place gets the same answer; meta.valid_until says when it changes.

Parameters

NameInTypeNotes
lat requiredquerynumber ≥ -90 · ≤ 90
lon requiredquerynumber ≥ -180 · ≤ 180
include_outerquerybooleanAdd Uranus, Neptune and Pluto. default false

Response

JSON { data, meta, warnings }, where data is:

  • at string (date-time) required
  • bodies array of object required
    • id string required
    • longitude number required
    • sign string required
    • degree_in_sign number
    • nakshatra string
    • pada integer
    • retrograde boolean
    • nakshatra_lord string
    • sub_lord string

      The KP sub lord of the longitude.

    • combust boolean
    • dms object
      Fields
      • degrees integer required
      • minutes integer required
      • seconds integer required
    • speed number or null

      One of:

      1. number
      2. null
  • local object
    • date string (date) required

      e.g. "1990-08-13"

    • time string required
    • weekday string required
    • timezone object required
      Fields
      • name string required
      • offset_hours number required
  • ayanamsa number
  • julian_day number

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/planets/now?lat=28.6139&lon=77.209' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/now?lat=28.6139&lon=77.209", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/planets/now?lat=28.6139&lon=77.209",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/planets/now?lat=28.6139&lon=77.209');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 5,960 characters
{
  "data": {
    "at": "2026-11-03T02:00:00.000Z",
    "bodies": [
      {
        "id": "lagna",
        "longitude": 207.43,
        "sign": "libra",
        "degree_in_sign": 27.43,
        "nakshatra": "vishakha",
        "pada": 3,
        "retrograde": false,
        "nakshatra_lord": "jupiter",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 27,
          "minutes": 25,
          "seconds": 48
        },
        "speed": null
      },
      {
        "id": "sun",
        "longitude": 196.427,
        "sign": "libra",
        "degree_in_sign": 16.4269,
        "nakshatra": "swati",
        "pada": 3,
        "retrograde": false,
        "nakshatra_lord": "rahu",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 16,
          "minutes": 25,
          "seconds": 37
        },
        "speed": 1.0012120515234528
      },
      {
        "id": "moon",
        "longitude": 122.1136,
        "sign": "leo",
        "degree_in_sign": 2.1136,
        "nakshatra": "magha",
        "pada": 1,
        "retrograde": false,
        "nakshatra_lord": "ketu",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 2,
          "minutes": 6,
          "seconds": 49
        },
        "speed": 13.598587346100771
      },
      {
        "id": "mars",
        "longitude": 115.4295,
        "sign": "cancer",
        "degree_in_sign": 25.4294,
        "nakshatra": "ashlesha",
        "pada": 3,
        "retrograde": false,
        "nakshatra_lord": "mercury",
        "sub_lord": "rahu",
        "combust": false,
        "dms": {
          "degrees": 25,
          "minutes": 25,
          "seconds": 46
        },
        "speed": 0.49674536039890427
      },
      {
        "id": "mercury",
        "longitude": 199.921,
        "sign": "libra",
        "degree_in_sign": 19.9211,
        "nakshatra": "swati",
        "pada": 4,
        "retrograde": true,
        "nakshatra_lord": "rahu",
        "sub_lord": "mars",
        "combust": true,
        "dms": {
          "degrees": 19,
          "minutes": 55,
          "seconds": 16
        },
        "speed": -1.2782815325149386
      },
      {
        "id": "jupiter",
        "longitude": 120.3365,
        "sign": "leo",
        "degree_in_sign": 0.3364,
        "nakshatra": "magha",
        "pada": 1,
        "retrograde": false,
        "nakshatra_lord": "ketu",
        "sub_lord": "ketu",
        "combust": false,
        "dms": {
          "degrees": 0,
          "minutes": 20,
          "seconds": 11
        },
        "speed": 0.11664002424913633
      },
      {
        "id": "venus",
        "longitude": 181.0406,
        "sign": "libra",
        "degree_in_sign": 1.0406,
        "nakshatra": "chitra",
        "pada": 3,
        "retrograde": true,
        "nakshatra_lord": "mars",
        "sub_lord": "mercury",
        "combust": false,
        "dms": {
          "degrees": 1,
          "minutes": 2,
          "seconds": 26
        },
        "speed": -0.43089237112917544
      },
      {
        "id": "saturn",
        "longitude": 344.9205,
        "sign": "pisces",
        "degree_in_sign": 14.9206,
        "nakshatra": "uttara_bhadrapada",
        "pada": 4,
        "retrograde": true,
        "nakshatra_lord": "saturn",
        "sub_lord": "jupiter",
        "combust": false,
        "dms": {
          "degrees": 14,
          "minutes": 55,
          "seconds": 14
        },
        "speed": -0.06060120589654616
      },
      {
        "id": "rahu",
        "longitude": 301.729,
        "sign": "aquarius",
        "degree_in_sign": 1.7289,
        "nakshatra": "dhanishta",
        "pada": 3,
        "retrograde": true,
        "nakshatra_lord": "mars",
        "sub_lord": "mercury",
        "combust": false,
        "dms": {
          "degrees": 1,
          "minutes": 43,
          "seconds": 44
        },
        "speed": null
      },
      {
        "id": "ketu",
        "longitude": 121.729,
        "sign": "leo",
        "degree_in_sign": 1.7289,
        "nakshatra": "magha",
        "pada": 1,
        "retrograde": true,
        "nakshatra_lord": "ketu",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 1,
          "minutes": 43,
          "seconds": 44
        },
        "speed": null
      },
      {
        "id": "rahu_true",
        "longitude": 302.6986,
        "sign": "aquarius",
        "degree_in_sign": 2.6986,
        "nakshatra": "dhanishta",
        "pada": 3,
        "retrograde": true,
        "nakshatra_lord": "mars",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 2,
          "minutes": 41,
          "seconds": 55
        },
        "speed": 0.00040231041884908336
      },
      {
        "id": "ketu_true",
        "longitude": 122.6986,
        "sign": "leo",
        "degree_in_sign": 2.6986,
        "nakshatra": "magha",
        "pada": 1,
        "retrograde": true,
        "nakshatra_lord": "ketu",
        "sub_lord": "venus",
        "combust": false,
        "dms": {
          "degrees": 2,
          "minutes": 41,
          "seconds": 55
        },
        "speed": 0.00040231041884908336
      }
    ],
    "local": {
      "date": "2026-11-03",
      "time": "07:30:00",
      "weekday": "tuesday",
      "timezone": {
        "name": "Asia/Kolkata",
        "offset_hours": 5.5
      }
    },
    "ayanamsa": 24.2343,
    "julian_day": 2461347.58333
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    },
    "valid_until": "2026-11-03T03:00:00.000Z"
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

The retrograde cycle of Saturn, Uranus, Neptune or Pluto: its stations and whether it is retrograde now

GET/v1/outer-planets/cycle

1 credit · Secret or publishable key · getOuterPlanetCycle · Page for this operation

Every station from from (12:00 IST) for window_days, each to the minute by bisection of the sidereal daily motion (astronomy-engine, Lahiri), with the sidereal longitude, sign and degree. current: retrograde at from, since the last station before from and until the next one (null past the window).

Parameters

NameInTypeNotes
planet requiredquerystring one of saturn, uranus, neptune, pluto
fromquerystring (date)Default today (IST); read at 12:00 IST on that date. e.g. "1990-08-13"
window_daysqueryinteger ≥ 1 · ≤ 1100 · default 1100

Response

JSON { data, meta, warnings }, where data is:

  • planet string required

    one of saturn, uranus, neptune, pluto

  • from string (date-time) required
  • window_days integer required
  • stations array of object required
    • kind string required

      one of retrograde, direct

    • date string (date) required

      The IST date of the station.

      e.g. "1990-08-13"

    • at string (date-time) required

      The station, to the minute (UTC).

    • longitude number required

      Sidereal (Lahiri), 0–360.

    • sign string required
    • degree number required

      Within the sign.

  • current object required
    • retrograde boolean required
    • since string (date) or null required

      One of:

      1. string (date)
      2. null
    • until string (date) or null required

      One of:

      1. string (date)
      2. null

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 799 characters
{
  "data": {
    "planet": "saturn",
    "from": "2026-10-01T06:30:00.000Z",
    "window_days": 400,
    "stations": [
      {
        "kind": "direct",
        "date": "2026-12-11",
        "at": "2026-12-11T00:27:00.000Z",
        "longitude": 343.69,
        "sign": "pisces",
        "degree": 13.69
      },
      {
        "kind": "retrograde",
        "date": "2027-08-09",
        "at": "2027-08-09T17:19:00.000Z",
        "longitude": 3.63,
        "sign": "aries",
        "degree": 3.63
      }
    ],
    "current": {
      "retrograde": true,
      "since": "2026-07-27",
      "until": "2026-12-11"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Several chart operations in one call: one rate-limit slot, charged their sum less one credit

POST/v1/kundli/bundle

3 credits · Secret key (test or live) · getBundle · Page for this operation

Runs each include as its own operation would, with the same birth and options, and returns each one's data under its include name (divisional:D2,D9,D10 → divisional) with one meta. Credits: the members' sum less one (kundli + divisional + yogas = 5; the 3 above is the smallest bundle's price); X-Credits-Remaining and meta.credits_charged give the amount. If any member fails (for example yogas without a birth time), the whole request fails and nothing is charged.

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • include array of string required

    Two or more of: kundli, divisional:<vargas> (e.g. divisional:D2,D9,D10), dasha or dasha:<depth 1–4>, current_dasha, yogas, ashtakavarga, outer, classical, wealth, gemstones, numerology, shadbala, natal_transits, year_outlook or year_outlook:<year> (default the current year in IST).

    at least 2 items · at most 14 items · no repeats

  • at string (date-time)

    The instant for current_dasha, ashtakavarga and natal_transits (default now), as each takes it on its own operation.

  • name string

    For numerology: the name to read (optional).

    at least 1 characters · at most 120 characters

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      The Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    • tone string

      descriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.

      one of default, descriptive · default "default"

    • dasha_year number

      Days in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.

      one of 365.25, 365.2422, 360 · default 365.25

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • kundli Kundli
    • lagna object
      Fields
      • sign string required
      • sign_label string required
      • degree number required
      • nakshatra NakshatraId required

        The 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.

        one of ashwini, bharani, krittika, rohini, mrigashira, ardra, punarvasu, pushya, ashlesha, magha, purva_phalguni, uttara_phalguni, hasta, chitra, swati, vishakha, anuradha, jyeshtha, mula, purva_ashadha, uttara_ashadha, shravana, dhanishta, shatabhisha, purva_bhadrapada, uttara_bhadrapada, revati

      • nakshatra_label string required
      • pada integer required

        ≥ 1 · ≤ 4

    • planets array of object required
      Fields
      • id string required
      • label string required
      • longitude number required

        ≥ 0 · < 360

      • sign string required
      • degree_in_sign number required
      • nakshatra NakshatraId required

        The 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.

        one of ashwini, bharani, krittika, rohini, mrigashira, ardra, punarvasu, pushya, ashlesha, magha, purva_phalguni, uttara_phalguni, hasta, chitra, swati, vishakha, anuradha, jyeshtha, mula, purva_ashadha, uttara_ashadha, shravana, dhanishta, shatabhisha, purva_bhadrapada, uttara_bhadrapada, revati

      • pada integer required

        ≥ 1 · ≤ 4

      • nakshatra_lord string required
      • house integer

        ≥ 1 · ≤ 12

      • retrograde boolean required
    • divisional_lagnas object
      Fields
      • D2 string required
      • D9 string required
      • D10 string required
  • divisional Divisional
    • charts map of object required
      Fields
      • lagna string
      • planets map of string required
  • dasha DashaTimeline
    • periods array of object required
      Fields
      • planet string required
      • start string (date-time) required
      • end string (date-time) required
      • sub array of object
    • basis DashaBasis required
      Fields
      • moon_longitude number required

        The sidereal Moon at the birth instant, full precision (degrees).

      • ayanamsa number required

        The ayanamsa at the birth instant (degrees), of the system in meta.ayanamsa (Lahiri unless options.ayanamsa).

      • nakshatra object required
        Fields
        • id string required
        • number integer required

          ≥ 1 · ≤ 27

        • lord string required
        • start number required
        • end number required
      • elapsed_fraction number required

        ≥ 0 · ≤ 1

      • remaining_fraction number required

        ≥ 0 · ≤ 1

      • balance object required
        Fields
        • planet string required
        • years number required
        • days number required
      • year_days number required
      • birth string (date-time) required
  • current_dasha DashaCurrent
    • at string (date-time) required
    • mahadasha DashaPeriod required
      Fields
      • planet string required
      • start string (date-time) required
      • end string (date-time) required
    • antardasha DashaPeriod required
      Fields
      • planet string required
      • start string (date-time) required
      • end string (date-time) required
    • pratyantardasha DashaPeriod required
      Fields
      • planet string required
      • start string (date-time) required
      • end string (date-time) required
    • sookshma DashaPeriod required
      Fields
      • planet string required
      • start string (date-time) required
      • end string (date-time) required
    • prana DashaPeriod required
      Fields
      • planet string required
      • start string (date-time) required
      • end string (date-time) required
    • basis DashaBasis required
      Fields
      • moon_longitude number required

        The sidereal Moon at the birth instant, full precision (degrees).

      • ayanamsa number required

        The ayanamsa at the birth instant (degrees), of the system in meta.ayanamsa (Lahiri unless options.ayanamsa).

      • nakshatra object required
        Fields
        • id string required
        • number integer required

          ≥ 1 · ≤ 27

        • lord string required
        • start number required
        • end number required
      • elapsed_fraction number required

        ≥ 0 · ≤ 1

      • remaining_fraction number required

        ≥ 0 · ≤ 1

      • balance object required
        Fields
        • planet string required
        • years number required
        • days number required
      • year_days number required
      • birth string (date-time) required
  • yogas Yogas
    • yogas array of object required
      Fields
      • name string required
      • type string
      • strength string
      • planets array of string
      • rule string
  • ashtakavarga Ashtakavarga
    • bhinna map of array of integer required
    • sarva array of integer required
    • as_of string (date-time) required
    • transits map of object required
      Fields
      • sign string required
      • bindus integer required

        ≥ 0 · ≤ 8

    • best_signs map of object required
      Fields
      • best array of object required
        Fields
        • sign string required
        • bindus integer required
      • worst array of object required
        Fields
        • sign string required
        • bindus integer required
  • outer OuterPlanets
    • planets array of object required
      Fields
      • id string required

        one of uranus, neptune, pluto

      • longitude number required

        ≥ 0 · < 360

      • sign string required
      • sign_degree number required
      • nakshatra string required
      • retrograde boolean required
      • house integer or null required

        One of:

        1. integer
        2. null
      • label_hi string required
      • intro object or null required

        One of:

        1. object
          Fields
          • en string required
          • hi string or null required

            One of:

            1. string
            2. null
        2. null
      • reading object or null required

        One of:

        1. object
          Fields
          • en string required
          • hi string or null required

            One of:

            1. string
            2. null
        2. null
  • classical ClassicalChart
    • cusps object required
      Fields
      • system string required
      • placidus array of number or null required

        One of:

        1. array of number
        2. null
      • bhava_arambh array of number required
      • bhava_madhya array of number required
    • bhava_bala array of object required
      Fields
      • house integer required

        ≥ 1 · ≤ 12

      • sign string required
      • lord string required
      • adhipati_bala number required
      • dig_bala number required
      • drishti_bala number required
      • total number required
      • rupas number required
      • rank integer required

        ≥ 1 · ≤ 12

    • prastara object required
      Fields
      • contributors array of string required
      • signs array of string required
      • planets map of object required
        Fields
        • grid map of array of integer required
        • totals array of integer required
        • sum integer required
    • avastha map of object required
      Fields
      • jagrat string required
      • baladi string required
      • deeptadi string required
      • dignity string required
    • sthira_karakas array of object required
      Fields
      • karaka string required
      • planet string required
    • lucky object required
      Fields
      • numbers array of integer required
      • unlucky_numbers array of integer required
      • years array of array of integer required
      • days array of string required
      • planets array of string required
      • friendly_signs array of string required
      • lagnas array of string required
      • metal string required
      • gem string required
      • lagna_lord string required
      • rashi_lord string required
  • wealth Wealth
    • d2 object required
      Fields
      • sun_hora object required
        Fields
        • planets array of string required
        • score number required
      • moon_hora object required
        Fields
        • planets array of string required
        • score number required
      • primary_source string required

        one of career_authority, business_inheritance

      • lord2_hora string required

        one of sun, moon, balanced

      • lagna_vargottama boolean required
      • strength number required
    • d10 object required
      Fields
      • lagna string required
      • lagna_lord string required
      • archetype string required
      • tenth_occupants array of string required
      • lord10 string required
      • lord10_house integer or null required

        One of:

        1. integer
        2. null
      • score number required
      • strength number required
      • placements array of object required
        Fields
        • planet string required
        • sign string required
        • kind string required

          one of own_or_exalted, debilitated

    • vargottama array of string required
    • scores object required
      Fields
      • d1 number required
      • d2 number required
      • d9 number required
      • d10 number required
    • overall number required

      ≥ 0 · ≤ 10

    • rating string required

      one of developing, moderate, strong, exceptional

    • factors array of object required
      Fields
      • id string required

        one of wealth_yoga, power_yoga, vargottama, d2_lagna_vargottama

      • yoga string
      • planet string
  • gemstones Gemstones
    • lagna_sign string required
    • primary GemstoneChoice or null required

      One of:

      1. GemstoneChoice
        Fields
        • planet string required
        • stone string required
        • alternatives array of string required
        • finger string required

          one of thumb, index, middle, ring, little

        • metal string required
        • basis string required

          one of lagna_lord, ninth_lord, fifth_lord, mahadasha_lord

      2. null
    • secondary GemstoneChoice or null required

      One of:

      1. GemstoneChoice
        Fields
        • planet string required
        • stone string required
        • alternatives array of string required
        • finger string required

          one of thumb, index, middle, ring, little

        • metal string required
        • basis string required

          one of lagna_lord, ninth_lord, fifth_lord, mahadasha_lord

      2. null
    • dasha_stone GemstoneChoice or null required

      One of:

      1. GemstoneChoice
        Fields
        • planet string required
        • stone string required
        • alternatives array of string required
        • finger string required

          one of thumb, index, middle, ring, little

        • metal string required
        • basis string required

          one of lagna_lord, ninth_lord, fifth_lord, mahadasha_lord

      2. null
    • avoid array of string required
    • healing_stones array of string required
    • functional_benefics array of string required
    • functional_malefics array of string required
    • yoga_specific array of object required
      Fields
      • stone string required
      • yoga string or null required

        One of:

        1. string
        2. null
  • numerology NumerologyCore
    • life_path integer required
    • destiny integer or null required

      One of:

      1. integer
      2. null
    • soul_urge integer or null required

      One of:

      1. integer
      2. null
    • personality integer or null required

      One of:

      1. integer
      2. null
    • birth_number integer required
    • ruling_planet string required
    • lucky_numbers array of integer required
    • hidden_passion integer or null required

      One of:

      1. integer
      2. null
    • maturity integer or null required

      One of:

      1. integer
      2. null
    • personal_year integer required
    • personal_month integer required
    • personal_day integer required
    • life_path_meaning object required
      Fields
      • name string required
      • keyword string required
      • traits string required
    • soul_urge_meaning string or null required

      One of:

      1. string
      2. null
    • personality_meaning string or null required

      One of:

      1. string
      2. null
    • lucky_colors array of string required
    • lucky_days array of string required
    • lucky_gem string required
    • name_breakdown array of LetterValue or null required

      One of:

      1. array of LetterValue
        Fields
        • letter string required
        • value integer required

          ≥ 0 · ≤ 8

        • type string required

          one of vowel, consonant

      2. null
  • shadbala Shadbala
    • planets array of object required
      Fields
      • id string required
      • components object required
        Fields
        • sthana number required
        • dig number required
        • kala number required
        • chesta number required
        • naisargika number required
        • drik number required
      • total number required
      • rupas number required
      • strength string required
    • ranking array of string required
  • natal_transits NatalTransits
    • at string (date-time) required
    • transits array of object required
      Fields
      • planet string required
      • sign string required
      • house_from_moon integer required

        The sign it transits, counted from the natal Moon's sign (gochar); impact is judged from it.

        ≥ 1 · ≤ 12

      • natal_house integer

        The same sign counted from the natal lagna (whole sign). Omitted without a birth time.

        ≥ 1 · ≤ 12

      • retrograde boolean required
      • impact string required

        one of favourable, challenging, neutral

      • description string required
      • description_id string required

        A stable id for description: the same sentence always has the same id (D3, 2026-10-29).

  • year_outlook YearOutlook
    • year integer required
    • months array of object required
      Fields
      • month integer required

        ≥ 1 · ≤ 12

      • score number required
      • class string required

        one of favourable, neutral, challenging

      • favourable array of OutlookTransit required
        Fields
        • planet string required

          one of jupiter, saturn, rahu, ketu, mars

        • house integer required

          ≥ 1 · ≤ 12

        • kind string

          one of exalted, own_sign

        • yoga string

          one of hamsa, ruchaka, sasha

      • challenging array of OutlookTransit required
        Fields
        • planet string required

          one of jupiter, saturn, rahu, ketu, mars

        • house integer required

          ≥ 1 · ≤ 12

        • kind string

          one of exalted, own_sign

        • yoga string

          one of hamsa, ruchaka, sasha

      • flags array of object required
        Fields
        • planet string required
        • kind string required

          one of exalted, own_sign

        • yoga string

          one of hamsa, ruchaka, sasha

    • best_window object or null required

      One of:

      1. object
        Fields
        • from string required

          pattern ^\d{4}-\d{2}$

        • to string required

          pattern ^\d{4}-\d{2}$

        • months integer required

          ≥ 1 · ≤ 12

      2. null
    • worst_window object or null required

      One of:

      1. object
        Fields
        • from string required

          pattern ^\d{4}-\d{2}$

        • to string required

          pattern ^\d{4}-\d{2}$

        • months integer required

          ≥ 1 · ≤ 12

      2. null

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/kundli/bundle' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"include":["kundli","divisional:D2,D9,D10","dasha:2","numerology"],"name":"Asha Verma"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/bundle", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    },
    "include": [
      "kundli",
      "divisional:D2,D9,D10",
      "dasha:2",
      "numerology"
    ],
    "name": "Asha Verma"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
    "include": [
        "kundli",
        "divisional:D2,D9,D10",
        "dasha:2",
        "numerology",
    ],
    "name": "Asha Verma",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/kundli/bundle",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/bundle');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"include":["kundli","divisional:D2,D9,D10","dasha:2","numerology"],"name":"Asha Verma"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 35,899 characters
{
  "data": {
    "kundli": {
      "lagna": {
        "sign": "leo",
        "sign_label": "Leo",
        "degree": 4.27,
        "nakshatra": "magha",
        "nakshatra_label": "Magha",
        "pada": 2
      },
      "planets": [
        {
          "id": "sun",
          "label": "Sun",
          "longitude": 116.3139,
          "sign": "cancer",
          "degree_in_sign": 26.3139,
          "nakshatra": "ashlesha",
          "pada": 3,
          "nakshatra_lord": "mercury",
          "house": 12,
          "retrograde": false
        },
        {
          "id": "moon",
          "label": "Moon",
          "longitude": 18.0955,
          "sign": "aries",
          "degree_in_sign": 18.0955,
          "nakshatra": "bharani",
          "pada": 2,
          "nakshatra_lord": "venus",
          "house": 9,
          "retrograde": false
        },
        {
          "id": "mars",
          "label": "Mars",
          "longitude": 26.2271,
          "sign": "aries",
          "degree_in_sign": 26.2271,
          "nakshatra": "bharani",
          "pada": 4,
          "nakshatra_lord": "venus",
          "house": 9,
          "retrograde": false
        },
        {
          "id": "mercury",
          "label": "Mercury",
          "longitude": 143.6373,
          "sign": "leo",
          "degree_in_sign": 23.6373,
          "nakshatra": "purva_phalguni",
          "pada": 4,
          "nakshatra_lord": "venus",
          "house": 1,
          "retrograde": false
        },
        {
          "id": "jupiter",
          "label": "Jupiter",
          "longitude": 95.14,
          "sign": "cancer",
          "degree_in_sign": 5.14,
          "nakshatra": "pushya",
          "pada": 1,
          "nakshatra_lord": "saturn",
          "house": 12,
          "retrograde": false
        },
        {
          "id": "venus",
          "label": "Venus",
          "longitude": 95.1983,
          "sign": "cancer",
          "degree_in_sign": 5.1983,
          "nakshatra": "pushya",
          "pada": 1,
          "nakshatra_lord": "saturn",
          "house": 12,
          "retrograde": false
        },
        {
          "id": "saturn",
          "label": "Saturn",
          "longitude": 266.2724,
          "sign": "sagittarius",
          "degree_in_sign": 26.2724,
          "nakshatra": "purva_ashadha",
          "pada": 4,
          "nakshatra_lord": "venus",
          "house": 5,
          "retrograde": true
        },
        {
          "id": "rahu",
          "label": "Rahu",
          "longitude": 283.4929,
          "sign": "capricorn",
          "degree_in_sign": 13.4929,
          "nakshatra": "shravana",
          "pada": 2,
          "nakshatra_lord": "moon",
          "house": 6,
          "retrograde": true
        },
        {
          "id": "ketu",
          "label": "Ketu",
          "longitude": 103.4929,
          "sign": "cancer",
          "degree_in_sign": 13.4929,
          "nakshatra": "pushya",
          "pada": 4,
          "nakshatra_lord": "saturn",
          "house": 12,
          "retrograde": true
        }
      ],
      "divisional_lagnas": {
        "D2": "leo",
        "D9": "taurus",
        "D10": "virgo"
      }
    },
    "divisional": {
      "charts": {
        "D2": {
          "lagna": "leo",
          "planets": {
            "sun": "leo",
            "moon": "cancer",
            "mars": "cancer",
            "mercury": "cancer",
            "jupiter": "cancer",
            "venus": "cancer",
            "saturn": "cancer",
            "rahu": "cancer",
            "ketu": "cancer"
          }
        },
        "D9": {
          "lagna": "taurus",
          "planets": {
            "sun": "aquarius",
            "moon": "virgo",
            "mars": "scorpio",
            "mercury": "scorpio",
            "jupiter": "leo",
            "venus": "leo",
            "saturn": "scorpio",
            "rahu": "taurus",
            "ketu": "scorpio"
          }
        },
        "D10": {
          "lagna": "virgo",
          "planets": {
            "sun": "scorpio",
            "moon": "libra",
            "mars": "sagittarius",
            "mercury": "pisces",
            "jupiter": "aries",
            "venus": "aries",
            "saturn": "leo",
            "rahu": "capricorn",
            "ketu": "cancer"
          }
        }
      }
    },
    "dasha": {
      "periods": [
        {
          "planet": "venus",
          "start": "1990-08-13T01:00:00.000Z",
          "end": "2003-06-21T22:53:13.747Z",
          "sub": [
            {
              "planet": "mars",
              "start": "1990-08-13T01:00:00.000Z",
              "end": "1990-08-21T13:53:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "1990-08-21T13:53:13.747Z",
              "end": "1993-08-21T07:53:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "1993-08-21T07:53:13.747Z",
              "end": "1996-04-21T07:53:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "1996-04-21T07:53:13.747Z",
              "end": "1999-06-21T22:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "1999-06-21T22:53:13.747Z",
              "end": "2002-04-21T19:53:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2002-04-21T19:53:13.747Z",
              "end": "2003-06-21T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "sun",
          "start": "2003-06-21T22:53:13.747Z",
          "end": "2009-06-21T10:53:13.747Z",
          "sub": [
            {
              "planet": "sun",
              "start": "2003-06-21T22:53:13.747Z",
              "end": "2003-10-09T12:41:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2003-10-09T12:41:13.747Z",
              "end": "2004-04-09T03:41:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2004-04-09T03:41:13.747Z",
              "end": "2004-08-14T23:47:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2004-08-14T23:47:13.747Z",
              "end": "2005-07-09T17:11:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2005-07-09T17:11:13.747Z",
              "end": "2006-04-27T21:59:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2006-04-27T21:59:13.747Z",
              "end": "2007-04-09T21:41:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2007-04-09T21:41:13.747Z",
              "end": "2008-02-14T08:47:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2008-02-14T08:47:13.747Z",
              "end": "2008-06-21T04:53:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2008-06-21T04:53:13.747Z",
              "end": "2009-06-21T10:53:13.747Z"
            }
          ]
        },
        {
          "planet": "moon",
          "start": "2009-06-21T10:53:13.747Z",
          "end": "2019-06-21T22:53:13.747Z",
          "sub": [
            {
              "planet": "moon",
              "start": "2009-06-21T10:53:13.747Z",
              "end": "2010-04-21T19:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2010-04-21T19:53:13.747Z",
              "end": "2010-11-20T21:23:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2010-11-20T21:23:13.747Z",
              "end": "2012-05-21T18:23:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2012-05-21T18:23:13.747Z",
              "end": "2013-09-20T18:23:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2013-09-20T18:23:13.747Z",
              "end": "2015-04-22T01:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2015-04-22T01:53:13.747Z",
              "end": "2016-09-20T12:23:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2016-09-20T12:23:13.747Z",
              "end": "2017-04-21T13:53:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2017-04-21T13:53:13.747Z",
              "end": "2018-12-21T07:53:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2018-12-21T07:53:13.747Z",
              "end": "2019-06-21T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "mars",
          "start": "2019-06-21T22:53:13.747Z",
          "end": "2026-06-21T16:53:13.747Z",
          "sub": [
            {
              "planet": "mars",
              "start": "2019-06-21T22:53:13.747Z",
              "end": "2019-11-18T02:20:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2019-11-18T02:20:13.747Z",
              "end": "2020-12-05T14:38:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2020-12-05T14:38:13.747Z",
              "end": "2021-11-11T12:14:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2021-11-11T12:14:13.747Z",
              "end": "2022-12-21T07:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2022-12-21T07:53:13.747Z",
              "end": "2023-12-18T12:50:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2023-12-18T12:50:13.747Z",
              "end": "2024-05-15T16:17:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2024-05-15T16:17:13.747Z",
              "end": "2025-07-15T19:17:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2025-07-15T19:17:13.747Z",
              "end": "2025-11-20T15:23:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2025-11-20T15:23:13.747Z",
              "end": "2026-06-21T16:53:13.747Z"
            }
          ]
        },
        {
          "planet": "rahu",
          "start": "2026-06-21T16:53:13.747Z",
          "end": "2044-06-21T04:53:13.747Z",
          "sub": [
            {
              "planet": "rahu",
              "start": "2026-06-21T16:53:13.747Z",
              "end": "2029-03-03T21:05:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2029-03-03T21:05:13.747Z",
              "end": "2031-07-28T11:29:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2031-07-28T11:29:13.747Z",
              "end": "2034-06-03T10:35:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2034-06-03T10:35:13.747Z",
              "end": "2036-12-20T19:53:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2036-12-20T19:53:13.747Z",
              "end": "2038-01-08T08:11:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2038-01-08T08:11:13.747Z",
              "end": "2041-01-08T02:11:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2041-01-08T02:11:13.747Z",
              "end": "2041-12-02T19:35:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2041-12-02T19:35:13.747Z",
              "end": "2043-06-03T16:35:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2043-06-03T16:35:13.747Z",
              "end": "2044-06-21T04:53:13.747Z"
            }
          ]
        },
        {
          "planet": "jupiter",
          "start": "2044-06-21T04:53:13.747Z",
          "end": "2060-06-21T04:53:13.747Z",
          "sub": [
            {
              "planet": "jupiter",
              "start": "2044-06-21T04:53:13.747Z",
              "end": "2046-08-09T09:41:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2046-08-09T09:41:13.747Z",
              "end": "2049-02-19T16:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2049-02-19T16:53:13.747Z",
              "end": "2051-05-28T14:29:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2051-05-28T14:29:13.747Z",
              "end": "2052-05-03T12:05:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2052-05-03T12:05:13.747Z",
              "end": "2055-01-02T12:05:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2055-01-02T12:05:13.747Z",
              "end": "2055-10-21T16:53:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2055-10-21T16:53:13.747Z",
              "end": "2057-02-19T16:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2057-02-19T16:53:13.747Z",
              "end": "2058-01-26T14:29:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2058-01-26T14:29:13.747Z",
              "end": "2060-06-21T04:53:13.747Z"
            }
          ]
        },
        {
          "planet": "saturn",
          "start": "2060-06-21T04:53:13.747Z",
          "end": "2079-06-21T22:53:13.747Z",
          "sub": [
            {
              "planet": "saturn",
              "start": "2060-06-21T04:53:13.747Z",
              "end": "2063-06-24T23:56:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2063-06-24T23:56:13.747Z",
              "end": "2066-03-04T03:05:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2066-03-04T03:05:13.747Z",
              "end": "2067-04-12T22:44:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2067-04-12T22:44:13.747Z",
              "end": "2070-06-12T13:44:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2070-06-12T13:44:13.747Z",
              "end": "2071-05-25T13:26:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2071-05-25T13:26:13.747Z",
              "end": "2072-12-23T20:56:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2072-12-23T20:56:13.747Z",
              "end": "2074-02-01T16:35:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2074-02-01T16:35:13.747Z",
              "end": "2076-12-08T15:41:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2076-12-08T15:41:13.747Z",
              "end": "2079-06-21T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "mercury",
          "start": "2079-06-21T22:53:13.747Z",
          "end": "2096-06-21T04:53:13.747Z",
          "sub": [
            {
              "planet": "mercury",
              "start": "2079-06-21T22:53:13.747Z",
              "end": "2081-11-17T14:20:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2081-11-17T14:20:13.747Z",
              "end": "2082-11-14T19:17:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2082-11-14T19:17:13.747Z",
              "end": "2085-09-14T16:17:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2085-09-14T16:17:13.747Z",
              "end": "2086-07-22T03:23:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2086-07-22T03:23:13.747Z",
              "end": "2087-12-21T13:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2087-12-21T13:53:13.747Z",
              "end": "2088-12-17T18:50:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2088-12-17T18:50:13.747Z",
              "end": "2091-07-07T04:08:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2091-07-07T04:08:13.747Z",
              "end": "2093-10-12T01:44:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2093-10-12T01:44:13.747Z",
              "end": "2096-06-21T04:53:13.747Z"
            }
          ]
        },
        {
          "planet": "ketu",
          "start": "2096-06-21T04:53:13.747Z",
          "end": "2103-06-22T22:53:13.747Z",
          "sub": [
            {
              "planet": "ketu",
              "start": "2096-06-21T04:53:13.747Z",
              "end": "2096-11-17T08:20:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2096-11-17T08:20:13.747Z",
              "end": "2098-01-17T11:20:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2098-01-17T11:20:13.747Z",
              "end": "2098-05-25T07:26:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2098-05-25T07:26:13.747Z",
              "end": "2098-12-24T08:56:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2098-12-24T08:56:13.747Z",
              "end": "2099-05-22T12:23:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2099-05-22T12:23:13.747Z",
              "end": "2100-06-10T00:41:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2100-06-10T00:41:13.747Z",
              "end": "2101-05-16T22:17:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2101-05-16T22:17:13.747Z",
              "end": "2102-06-25T17:56:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2102-06-25T17:56:13.747Z",
              "end": "2103-06-22T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "venus",
          "start": "2103-06-22T22:53:13.747Z",
          "end": "2123-06-22T22:53:13.747Z",
          "sub": [
            {
              "planet": "venus",
              "start": "2103-06-22T22:53:13.747Z",
              "end": "2106-10-22T10:53:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2106-10-22T10:53:13.747Z",
              "end": "2107-10-22T16:53:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2107-10-22T16:53:13.747Z",
              "end": "2109-06-22T10:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2109-06-22T10:53:13.747Z",
              "end": "2110-08-22T13:53:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2110-08-22T13:53:13.747Z",
              "end": "2113-08-22T07:53:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2113-08-22T07:53:13.747Z",
              "end": "2116-04-22T07:53:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2116-04-22T07:53:13.747Z",
              "end": "2119-06-22T22:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2119-06-22T22:53:13.747Z",
              "end": "2122-04-22T19:53:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2122-04-22T19:53:13.747Z",
              "end": "2123-06-22T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "sun",
          "start": "2123-06-22T22:53:13.747Z",
          "end": "2129-06-22T10:53:13.747Z",
          "sub": [
            {
              "planet": "sun",
              "start": "2123-06-22T22:53:13.747Z",
              "end": "2123-10-10T12:41:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2123-10-10T12:41:13.747Z",
              "end": "2124-04-10T03:41:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2124-04-10T03:41:13.747Z",
              "end": "2124-08-15T23:47:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2124-08-15T23:47:13.747Z",
              "end": "2125-07-10T17:11:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2125-07-10T17:11:13.747Z",
              "end": "2126-04-28T21:59:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2126-04-28T21:59:13.747Z",
              "end": "2127-04-10T21:41:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2127-04-10T21:41:13.747Z",
              "end": "2128-02-15T08:47:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2128-02-15T08:47:13.747Z",
              "end": "2128-06-22T04:53:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2128-06-22T04:53:13.747Z",
              "end": "2129-06-22T10:53:13.747Z"
            }
          ]
        },
        {
          "planet": "moon",
          "start": "2129-06-22T10:53:13.747Z",
          "end": "2139-06-22T22:53:13.747Z",
          "sub": [
            {
              "planet": "moon",
              "start": "2129-06-22T10:53:13.747Z",
              "end": "2130-04-22T19:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2130-04-22T19:53:13.747Z",
              "end": "2130-11-21T21:23:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2130-11-21T21:23:13.747Z",
              "end": "2132-05-22T18:23:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2132-05-22T18:23:13.747Z",
              "end": "2133-09-21T18:23:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2133-09-21T18:23:13.747Z",
              "end": "2135-04-23T01:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2135-04-23T01:53:13.747Z",
              "end": "2136-09-21T12:23:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2136-09-21T12:23:13.747Z",
              "end": "2137-04-22T13:53:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2137-04-22T13:53:13.747Z",
              "end": "2138-12-22T07:53:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2138-12-22T07:53:13.747Z",
              "end": "2139-06-22T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "mars",
          "start": "2139-06-22T22:53:13.747Z",
          "end": "2146-06-22T16:53:13.747Z",
          "sub": [
            {
              "planet": "mars",
              "start": "2139-06-22T22:53:13.747Z",
              "end": "2139-11-19T02:20:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2139-11-19T02:20:13.747Z",
              "end": "2140-12-06T14:38:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2140-12-06T14:38:13.747Z",
              "end": "2141-11-12T12:14:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2141-11-12T12:14:13.747Z",
              "end": "2142-12-22T07:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2142-12-22T07:53:13.747Z",
              "end": "2143-12-19T12:50:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2143-12-19T12:50:13.747Z",
              "end": "2144-05-16T16:17:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2144-05-16T16:17:13.747Z",
              "end": "2145-07-16T19:17:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2145-07-16T19:17:13.747Z",
              "end": "2145-11-21T15:23:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2145-11-21T15:23:13.747Z",
              "end": "2146-06-22T16:53:13.747Z"
            }
          ]
        },
        {
          "planet": "rahu",
          "start": "2146-06-22T16:53:13.747Z",
          "end": "2164-06-22T04:53:13.747Z",
          "sub": [
            {
              "planet": "rahu",
              "start": "2146-06-22T16:53:13.747Z",
              "end": "2149-03-04T21:05:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2149-03-04T21:05:13.747Z",
              "end": "2151-07-29T11:29:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2151-07-29T11:29:13.747Z",
              "end": "2154-06-04T10:35:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2154-06-04T10:35:13.747Z",
              "end": "2156-12-21T19:53:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2156-12-21T19:53:13.747Z",
              "end": "2158-01-09T08:11:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2158-01-09T08:11:13.747Z",
              "end": "2161-01-09T02:11:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2161-01-09T02:11:13.747Z",
              "end": "2161-12-03T19:35:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2161-12-03T19:35:13.747Z",
              "end": "2163-06-04T16:35:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2163-06-04T16:35:13.747Z",
              "end": "2164-06-22T04:53:13.747Z"
            }
          ]
        },
        {
          "planet": "jupiter",
          "start": "2164-06-22T04:53:13.747Z",
          "end": "2180-06-22T04:53:13.747Z",
          "sub": [
            {
              "planet": "jupiter",
              "start": "2164-06-22T04:53:13.747Z",
              "end": "2166-08-10T09:41:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2166-08-10T09:41:13.747Z",
              "end": "2169-02-20T16:53:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2169-02-20T16:53:13.747Z",
              "end": "2171-05-29T14:29:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2171-05-29T14:29:13.747Z",
              "end": "2172-05-04T12:05:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2172-05-04T12:05:13.747Z",
              "end": "2175-01-03T12:05:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2175-01-03T12:05:13.747Z",
              "end": "2175-10-22T16:53:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2175-10-22T16:53:13.747Z",
              "end": "2177-02-20T16:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2177-02-20T16:53:13.747Z",
              "end": "2178-01-27T14:29:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2178-01-27T14:29:13.747Z",
              "end": "2180-06-22T04:53:13.747Z"
            }
          ]
        },
        {
          "planet": "saturn",
          "start": "2180-06-22T04:53:13.747Z",
          "end": "2199-06-22T22:53:13.747Z",
          "sub": [
            {
              "planet": "saturn",
              "start": "2180-06-22T04:53:13.747Z",
              "end": "2183-06-25T23:56:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2183-06-25T23:56:13.747Z",
              "end": "2186-03-05T03:05:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2186-03-05T03:05:13.747Z",
              "end": "2187-04-13T22:44:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2187-04-13T22:44:13.747Z",
              "end": "2190-06-13T13:44:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2190-06-13T13:44:13.747Z",
              "end": "2191-05-26T13:26:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2191-05-26T13:26:13.747Z",
              "end": "2192-12-24T20:56:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2192-12-24T20:56:13.747Z",
              "end": "2194-02-02T16:35:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2194-02-02T16:35:13.747Z",
              "end": "2196-12-09T15:41:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2196-12-09T15:41:13.747Z",
              "end": "2199-06-22T22:53:13.747Z"
            }
          ]
        },
        {
          "planet": "mercury",
          "start": "2199-06-22T22:53:13.747Z",
          "end": "2216-06-23T04:53:13.747Z",
          "sub": [
            {
              "planet": "mercury",
              "start": "2199-06-22T22:53:13.747Z",
              "end": "2201-11-19T14:20:13.747Z"
            },
            {
              "planet": "ketu",
              "start": "2201-11-19T14:20:13.747Z",
              "end": "2202-11-16T19:17:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2202-11-16T19:17:13.747Z",
              "end": "2205-09-16T16:17:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2205-09-16T16:17:13.747Z",
              "end": "2206-07-24T03:23:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2206-07-24T03:23:13.747Z",
              "end": "2207-12-23T13:53:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2207-12-23T13:53:13.747Z",
              "end": "2208-12-19T18:50:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2208-12-19T18:50:13.747Z",
              "end": "2211-07-09T04:08:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2211-07-09T04:08:13.747Z",
              "end": "2213-10-14T01:44:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2213-10-14T01:44:13.747Z",
              "end": "2216-06-23T04:53:13.747Z"
            }
          ]
        },
        {
          "planet": "ketu",
          "start": "2216-06-23T04:53:13.747Z",
          "end": "2223-06-23T22:53:13.747Z",
          "sub": [
            {
              "planet": "ketu",
              "start": "2216-06-23T04:53:13.747Z",
              "end": "2216-11-19T08:20:13.747Z"
            },
            {
              "planet": "venus",
              "start": "2216-11-19T08:20:13.747Z",
              "end": "2218-01-19T11:20:13.747Z"
            },
            {
              "planet": "sun",
              "start": "2218-01-19T11:20:13.747Z",
              "end": "2218-05-27T07:26:13.747Z"
            },
            {
              "planet": "moon",
              "start": "2218-05-27T07:26:13.747Z",
              "end": "2218-12-26T08:56:13.747Z"
            },
            {
              "planet": "mars",
              "start": "2218-12-26T08:56:13.747Z",
              "end": "2219-05-24T12:23:13.747Z"
            },
            {
              "planet": "rahu",
              "start": "2219-05-24T12:23:13.747Z",
              "end": "2220-06-11T00:41:13.747Z"
            },
            {
              "planet": "jupiter",
              "start": "2220-06-11T00:41:13.747Z",
              "end": "2221-05-17T22:17:13.747Z"
            },
            {
              "planet": "saturn",
              "start": "2221-05-17T22:17:13.747Z",
              "end": "2222-06-26T17:56:13.747Z"
            },
            {
              "planet": "mercury",
              "start": "2222-06-26T17:56:13.747Z",
              "end": "2223-06-23T22:53:13.747Z"
            }
          ]
        }
      ],
      "basis": {
        "moon_longitude": 18.09552915,
        "ayanamsa": 23.73020048,
        "nakshatra": {
          "id": "bharani",
          "number": 2,
          "lord": "venus",
          "start": 13.33333333,
          "end": 26.66666667
        },
        "elapsed_fraction": 0.3571646866,
        "remaining_fraction": 0.6428353134,
        "balance": {
          "planet": "venus",
          "years": 12.8567062688,
          "days": 4695.91196467
        },
        "year_days": 365.25,
        "birth": "1990-08-13T01:00:00.000Z"
      }
    },
    "numerology": {
      "life_path": 4,
      "destiny": 1,
      "soul_urge": 8,
      "personality": 2,
      "birth_number": 4,
      "ruling_planet": "rahu",
      "lucky_numbers": [
        4,
        13,
        22,
        31
      ],
      "hidden_passion": 1,
      "maturity": 5,
      "personal_year": 4,
      "personal_month": 6,
      "personal_day": 9,
      "life_path_meaning": {
        "name": "The Builder",
        "keyword": "Stability & discipline",
        "traits": "Practical, disciplined, loyal and hardworking. Builds lasting foundations through patience."
      },
      "soul_urge_meaning": "Inside you desire success, recognition, influence and material mastery.",
      "personality_meaning": "Others see you as gentle, warm, tactful and easy to approach.",
      "lucky_colors": [
        "Blue",
        "Grey",
        "Khaki"
      ],
      "lucky_days": [
        "Saturday",
        "Sunday"
      ],
      "lucky_gem": "Hessonite (Gomed)",
      "name_breakdown": [
        {
          "letter": "A",
          "value": 1,
          "type": "vowel"
        },
        {
          "letter": "S",
          "value": 3,
          "type": "consonant"
        },
        {
          "letter": "H",
          "value": 5,
          "type": "consonant"
        },
        {
          "letter": "A",
          "value": 1,
          "type": "vowel"
        },
        {
          "letter": "V",
          "value": 6,
          "type": "consonant"
        },
        {
          "letter": "E",
          "value": 5,
          "type": "vowel"
        },
        {
          "letter": "R",
          "value": 2,
          "type": "consonant"
        },
        {
          "letter": "M",
          "value": 4,
          "type": "consonant"
        },
        {
          "letter": "A",
          "value": 1,
          "type": "vowel"
        }
      ]
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 6,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one