API reference › Kundli

Sidereal Planet Positions API

Sidereal positions at any moment and place

POST/v1/planets/positions

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

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

More in Kundli

Get a free API key Kundli product page