API reference › Western

Western Solar Return API

The tropical solar return chart for a year, at the birth place or another

POST/v1/western/solar-return

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

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.

  • year integer required

    ≥ 1901 · ≤ 2100

  • place Coordinates or object or object

    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.

  • house_system string

    one of placidus, equal, whole_sign, porphyry · default "placidus"

  • options object
    • lang string required

      one of en, hi · default "en"

    No other fields are accepted.

No other fields are accepted.

Response

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

  • kind string required

    one of solar, lunar

  • year integer
  • after string (date)

    e.g. "1990-08-13"

  • natal_longitude number required
  • moment string (date-time) required
  • place object required
    • latitude number required
    • longitude number required
  • chart WesternChart required
    • moment string (date-time) required
    • frame string required

      one of tropical

    • house_system string or null required

      One of:

      1. string
      2. null
    • planets array of object required
      Fields
      • id string required
      • name string required
      • longitude number required
      • sign string required
      • sign_name string required
      • degree number required
      • formatted string required
      • speed number required

        Degrees a day.

      • retrograde boolean required
      • house integer or null required

        One of:

        1. integer
        2. null
      • dignity string or null required

        One of:

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

      One of:

      1. object
        Fields
        • ascendant object required
          Fields
          • longitude number required
          • sign string required
          • sign_name string required
          • degree number required
          • formatted string required
        • midheaven object required
          Fields
          • longitude number required
          • sign string required
          • sign_name string required
          • degree number required
          • formatted string required
        • descendant object required
          Fields
          • longitude number required
          • sign string required
          • sign_name string required
          • degree number required
          • formatted string required
        • imum_coeli object required
          Fields
          • longitude number required
          • sign string required
          • sign_name string required
          • degree number required
          • formatted string required
      2. null
    • houses array of object or null required

      One of:

      1. array of object
        Fields
        • house integer required
        • longitude number required
        • sign string required
        • sign_name string required
        • degree number required
        • formatted string required
      2. null
    • balance object required
      Fields
      • elements object required
        Fields
        • fire integer required
        • earth integer required
        • air integer required
        • water integer required
      • modalities object required
        Fields
        • cardinal integer required
        • fixed integer required
        • mutable integer required

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

Example request

curl -X POST 'https://api.astrologics.in/v1/western/solar-return' \
  -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}},"year":2026}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/western/solar-return", {
  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
      }
    },
    "year": 2026
  }),
});
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,
        },
    },
    "year": 2026,
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/western/solar-return",
    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/western/solar-return');
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}},"year":2026}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 8,160 characters
{
  "data": {
    "kind": "solar",
    "year": 2026,
    "natal_longitude": 140.0441,
    "moment": "2026-08-12T17:55:00.000Z",
    "place": {
      "latitude": 28.6139,
      "longitude": 77.209
    },
    "chart": {
      "moment": "2026-08-12T17:55:00.000Z",
      "frame": "tropical",
      "house_system": "placidus",
      "planets": [
        {
          "id": "sun",
          "name": "Sun",
          "longitude": 140.0447,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 20.0447,
          "formatted": "20°02′ Leo",
          "speed": 0.9603,
          "retrograde": false,
          "house": 4,
          "dignity": "domicile"
        },
        {
          "id": "moon",
          "name": "Moon",
          "longitude": 140.217,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 20.217,
          "formatted": "20°13′ Leo",
          "speed": 14.4264,
          "retrograde": false,
          "house": 4,
          "dignity": null
        },
        {
          "id": "mercury",
          "name": "Mercury",
          "longitude": 125.1323,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 5.1323,
          "formatted": "5°07′ Leo",
          "speed": 1.7716,
          "retrograde": false,
          "house": 4,
          "dignity": null
        },
        {
          "id": "venus",
          "name": "Venus",
          "longitude": 185.9036,
          "sign": "libra",
          "sign_name": "Libra",
          "degree": 5.9036,
          "formatted": "5°54′ Libra",
          "speed": 0.9753,
          "retrograde": false,
          "house": 5,
          "dignity": "domicile"
        },
        {
          "id": "mars",
          "name": "Mars",
          "longitude": 90.9213,
          "sign": "cancer",
          "sign_name": "Cancer",
          "degree": 0.9213,
          "formatted": "0°55′ Cancer",
          "speed": 0.6611,
          "retrograde": false,
          "house": 2,
          "dignity": "fall"
        },
        {
          "id": "jupiter",
          "name": "Jupiter",
          "longitude": 129.553,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 9.553,
          "formatted": "9°33′ Leo",
          "speed": 0.2194,
          "retrograde": false,
          "house": 4,
          "dignity": null
        },
        {
          "id": "saturn",
          "name": "Saturn",
          "longitude": 14.505,
          "sign": "aries",
          "sign_name": "Aries",
          "degree": 14.505,
          "formatted": "14°30′ Aries",
          "speed": -0.0284,
          "retrograde": true,
          "house": 12,
          "dignity": "fall"
        },
        {
          "id": "uranus",
          "name": "Uranus",
          "longitude": 65.3426,
          "sign": "gemini",
          "sign_name": "Gemini",
          "degree": 5.3426,
          "formatted": "5°20′ Gemini",
          "speed": 0.024,
          "retrograde": false,
          "house": 1,
          "dignity": null
        },
        {
          "id": "neptune",
          "name": "Neptune",
          "longitude": 4.082,
          "sign": "aries",
          "sign_name": "Aries",
          "degree": 4.082,
          "formatted": "4°04′ Aries",
          "speed": -0.0179,
          "retrograde": true,
          "house": 11,
          "dignity": null
        },
        {
          "id": "pluto",
          "name": "Pluto",
          "longitude": 303.9058,
          "sign": "aquarius",
          "sign_name": "Aquarius",
          "degree": 3.9058,
          "formatted": "3°54′ Aquarius",
          "speed": -0.0223,
          "retrograde": true,
          "house": 9,
          "dignity": null
        },
        {
          "id": "north_node",
          "name": "North Node",
          "longitude": 329.7885,
          "sign": "aquarius",
          "sign_name": "Aquarius",
          "degree": 29.7885,
          "formatted": "29°47′ Aquarius",
          "speed": -0.0054,
          "retrograde": true,
          "house": 10,
          "dignity": null
        },
        {
          "id": "south_node",
          "name": "South Node",
          "longitude": 149.7885,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 29.7885,
          "formatted": "29°47′ Leo",
          "speed": -0.0054,
          "retrograde": true,
          "house": 4,
          "dignity": null
        }
      ],
      "angles": {
        "ascendant": {
          "longitude": 49.5902,
          "sign": "taurus",
          "sign_name": "Taurus",
          "degree": 19.5902,
          "formatted": "19°35′ Taurus"
        },
        "midheaven": {
          "longitude": 304.8125,
          "sign": "aquarius",
          "sign_name": "Aquarius",
          "degree": 4.8125,
          "formatted": "4°48′ Aquarius"
        },
        "descendant": {
          "longitude": 229.5902,
          "sign": "scorpio",
          "sign_name": "Scorpio",
          "degree": 19.5902,
          "formatted": "19°35′ Scorpio"
        },
        "imum_coeli": {
          "longitude": 124.8125,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 4.8125,
          "formatted": "4°48′ Leo"
        }
      },
      "houses": [
        {
          "house": 1,
          "longitude": 49.5902,
          "sign": "taurus",
          "sign_name": "Taurus",
          "degree": 19.5902,
          "formatted": "19°35′ Taurus"
        },
        {
          "house": 2,
          "longitude": 77.1166,
          "sign": "gemini",
          "sign_name": "Gemini",
          "degree": 17.1166,
          "formatted": "17°06′ Gemini"
        },
        {
          "house": 3,
          "longitude": 100.6864,
          "sign": "cancer",
          "sign_name": "Cancer",
          "degree": 10.6864,
          "formatted": "10°41′ Cancer"
        },
        {
          "house": 4,
          "longitude": 124.8125,
          "sign": "leo",
          "sign_name": "Leo",
          "degree": 4.8125,
          "formatted": "4°48′ Leo"
        },
        {
          "house": 5,
          "longitude": 153.3373,
          "sign": "virgo",
          "sign_name": "Virgo",
          "degree": 3.3373,
          "formatted": "3°20′ Virgo"
        },
        {
          "house": 6,
          "longitude": 189.2428,
          "sign": "libra",
          "sign_name": "Libra",
          "degree": 9.2428,
          "formatted": "9°14′ Libra"
        },
        {
          "house": 7,
          "longitude": 229.5902,
          "sign": "scorpio",
          "sign_name": "Scorpio",
          "degree": 19.5902,
          "formatted": "19°35′ Scorpio"
        },
        {
          "house": 8,
          "longitude": 257.1166,
          "sign": "sagittarius",
          "sign_name": "Sagittarius",
          "degree": 17.1166,
          "formatted": "17°06′ Sagittarius"
        },
        {
          "house": 9,
          "longitude": 280.6864,
          "sign": "capricorn",
          "sign_name": "Capricorn",
          "degree": 10.6864,
          "formatted": "10°41′ Capricorn"
        },
        {
          "house": 10,
          "longitude": 304.8125,
          "sign": "aquarius",
          "sign_name": "Aquarius",
          "degree": 4.8125,
          "formatted": "4°48′ Aquarius"
        },
        {
          "house": 11,
          "longitude": 333.3373,
          "sign": "pisces",
          "sign_name": "Pisces",
          "degree": 3.3373,
          "formatted": "3°20′ Pisces"
        },
        {
          "house": 12,
          "longitude": 9.2428,
          "sign": "aries",
          "sign_name": "Aries",
          "degree": 9.2428,
          "formatted": "9°14′ Aries"
        }
      ],
      "balance": {
        "elements": {
          "fire": 6,
          "earth": 0,
          "air": 3,
          "water": 1
        },
        "modalities": {
          "cardinal": 4,
          "fixed": 5,
          "mutable": 1
        }
      }
    }
  },
  "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

More in Western

Get a free API key Western product page