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

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

      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"

    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 string required
    • 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 string required
    • 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,311 characters
{
  "data": {
    "lagna": {
      "sign": "leo",
      "sign_label": "Leo",
      "degree": 4.28,
      "nakshatra": "magha",
      "nakshatra_label": "Magha",
      "pada": 2
    },
    "planets": [
      {
        "id": "sun",
        "label": "Sun",
        "longitude": 116.318,
        "sign": "cancer",
        "degree_in_sign": 26.318,
        "nakshatra": "ashlesha",
        "pada": 3,
        "nakshatra_lord": "mercury",
        "house": 12,
        "retrograde": false
      },
      {
        "id": "moon",
        "label": "Moon",
        "longitude": 18.0996,
        "sign": "aries",
        "degree_in_sign": 18.0996,
        "nakshatra": "bharani",
        "pada": 2,
        "nakshatra_lord": "venus",
        "house": 9,
        "retrograde": false
      },
      {
        "id": "mars",
        "label": "Mars",
        "longitude": 26.2311,
        "sign": "aries",
        "degree_in_sign": 26.2311,
        "nakshatra": "bharani",
        "pada": 4,
        "nakshatra_lord": "venus",
        "house": 9,
        "retrograde": false
      },
      {
        "id": "mercury",
        "label": "Mercury",
        "longitude": 143.6414,
        "sign": "leo",
        "degree_in_sign": 23.6414,
        "nakshatra": "purva_phalguni",
        "pada": 4,
        "nakshatra_lord": "venus",
        "house": 1,
        "retrograde": false
      },
      {
        "id": "jupiter",
        "label": "Jupiter",
        "longitude": 95.1441,
        "sign": "cancer",
        "degree_in_sign": 5.1441,
        "nakshatra": "pushya",
        "pada": 1,
        "nakshatra_lord": "saturn",
        "house": 12,
        "retrograde": false
      },
      {
        "id": "venus",
        "label": "Venus",
        "longitude": 95.2023,
        "sign": "cancer",
        "degree_in_sign": 5.2023,
        "nakshatra": "pushya",
        "pada": 1,
        "nakshatra_lord": "saturn",
        "house": 12,
        "retrograde": false
      },
      {
        "id": "saturn",
        "label": "Saturn",
        "longitude": 266.2764,
        "sign": "sagittarius",
        "degree_in_sign": 26.2764,
        "nakshatra": "purva_ashadha",
        "pada": 4,
        "nakshatra_lord": "venus",
        "house": 5,
        "retrograde": true
      },
      {
        "id": "rahu",
        "label": "Rahu",
        "longitude": 283.5714,
        "sign": "capricorn",
        "degree_in_sign": 13.5714,
        "nakshatra": "shravana",
        "pada": 2,
        "nakshatra_lord": "moon",
        "house": 6,
        "retrograde": true
      },
      {
        "id": "ketu",
        "label": "Ketu",
        "longitude": 103.5714,
        "sign": "cancer",
        "degree_in_sign": 13.5714,
        "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.9.28",
    "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

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

      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"

    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 · 545 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.9.28",
    "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

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

      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"

    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,422 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": "aries",
          "ketu": "libra"
        }
      }
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "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

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

      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"

    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,213 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.9.28",
    "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

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

      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"

    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,390 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.9.28",
    "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

POST/v1/kundli/ashtakavarga

2 credits · Secret key (test or live) · getAshtakavarga

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

      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"

    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

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}}}'
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
      }
    }
  }),
});
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/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}}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,647 characters
{
  "data": {
    "bhinna": {
      "sun": [
        4,
        6,
        5,
        5,
        2,
        2,
        6,
        4,
        5,
        7,
        3,
        4
      ],
      "moon": [
        5,
        7,
        4,
        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": [
        5,
        5,
        6,
        4,
        4,
        4,
        4,
        4,
        4,
        1,
        6,
        6
      ],
      "saturn": [
        3,
        6,
        6,
        2,
        3,
        2,
        3,
        2,
        2,
        4,
        4,
        2
      ]
    },
    "sarva": [
      29,
      44,
      34,
      22,
      23,
      23,
      31,
      24,
      28,
      31,
      32,
      21
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "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

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

      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"

    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,531 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.9.28",
    "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

Sidereal positions at any moment and place

POST/v1/planets/positions

1 credit · Secret key (test or live) · getPlanetPositions

Request body

  • datetime string (date-time) required
  • 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

      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"

    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

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 · 3,609 characters
{
  "data": {
    "at": "2026-10-02T06:30:00.000Z",
    "bodies": [
      {
        "id": "lagna",
        "longitude": 238.567,
        "sign": "scorpio",
        "degree_in_sign": 28.5669,
        "nakshatra": "jyeshtha",
        "pada": 4,
        "retrograde": false
      },
      {
        "id": "sun",
        "longitude": 164.857,
        "sign": "virgo",
        "degree_in_sign": 14.8569,
        "nakshatra": "hasta",
        "pada": 2,
        "retrograde": false
      },
      {
        "id": "moon",
        "longitude": 57.8193,
        "sign": "taurus",
        "degree_in_sign": 27.8192,
        "nakshatra": "mrigashira",
        "pada": 2,
        "retrograde": false
      },
      {
        "id": "mars",
        "longitude": 98.1966,
        "sign": "cancer",
        "degree_in_sign": 8.1967,
        "nakshatra": "pushya",
        "pada": 2,
        "retrograde": false
      },
      {
        "id": "mercury",
        "longitude": 188.1144,
        "sign": "libra",
        "degree_in_sign": 8.1144,
        "nakshatra": "swati",
        "pada": 1,
        "retrograde": false
      },
      {
        "id": "jupiter",
        "longitude": 115.5865,
        "sign": "cancer",
        "degree_in_sign": 25.5864,
        "nakshatra": "ashlesha",
        "pada": 3,
        "retrograde": false
      },
      {
        "id": "venus",
        "longitude": 194.2355,
        "sign": "libra",
        "degree_in_sign": 14.2356,
        "nakshatra": "swati",
        "pada": 3,
        "retrograde": false
      },
      {
        "id": "saturn",
        "longitude": 347.2451,
        "sign": "pisces",
        "degree_in_sign": 17.245,
        "nakshatra": "revati",
        "pada": 1,
        "retrograde": true
      },
      {
        "id": "uranus",
        "longitude": 41.2731,
        "sign": "taurus",
        "degree_in_sign": 11.2731,
        "nakshatra": "rohini",
        "pada": 1,
        "retrograde": true
      },
      {
        "id": "neptune",
        "longitude": 338.5996,
        "sign": "pisces",
        "degree_in_sign": 8.5997,
        "nakshatra": "uttara_bhadrapada",
        "pada": 2,
        "retrograde": true
      },
      {
        "id": "pluto",
        "longitude": 278.8827,
        "sign": "capricorn",
        "degree_in_sign": 8.8828,
        "nakshatra": "uttara_ashadha",
        "pada": 4,
        "retrograde": true
      },
      {
        "id": "rahu",
        "longitude": 303.4148,
        "sign": "aquarius",
        "degree_in_sign": 3.4147,
        "nakshatra": "dhanishta",
        "pada": 4,
        "retrograde": true
      },
      {
        "id": "ketu",
        "longitude": 123.4148,
        "sign": "leo",
        "degree_in_sign": 3.4147,
        "nakshatra": "magha",
        "pada": 2,
        "retrograde": true
      },
      {
        "id": "rahu_true",
        "longitude": 304.8217,
        "sign": "aquarius",
        "degree_in_sign": 4.8217,
        "nakshatra": "dhanishta",
        "pada": 4,
        "retrograde": true
      },
      {
        "id": "ketu_true",
        "longitude": 124.8217,
        "sign": "leo",
        "degree_in_sign": 4.8217,
        "nakshatra": "magha",
        "pada": 2,
        "retrograde": true
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "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