API reference › Kundli

Retrograde Cycle API (Saturn to Pluto)

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

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

More in Kundli

Get a free API key Kundli product page