Lunar Return API
The next tropical lunar return chart after a date
POST/v1/western/lunar-return
2 credits · Secret key (test or live) · getWesternLunarReturn
Request body
birthBirth requireddatestring (date) requirede.g.
"1990-08-13"timestringpattern
^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$· e.g."06:30"time_accuracystringWith "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"placeCoordinates or object or object requiredCoordinates, 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:
- Coordinates
Fields
latitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
No other fields are accepted.
- object
Fields
place_idstring required
No other fields are accepted.
- object
Fields
querystring requiredat least 2 characters · at most 120 characters
No other fields are accepted.
- Coordinates
timezonestring"auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".
default
"auto"
No other fields are accepted.
afterstring (date) requirede.g.
"1990-08-13"placeCoordinates or object or objectCoordinates, 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:
- Coordinates
Fields
latitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
No other fields are accepted.
- object
Fields
place_idstring required
No other fields are accepted.
- object
Fields
querystring requiredat least 2 characters · at most 120 characters
No other fields are accepted.
- Coordinates
house_systemstringone of
placidus,equal,whole_sign,porphyry· default"placidus"optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
kindstring requiredone of
solar,lunaryearintegerafterstring (date)e.g.
"1990-08-13"natal_longitudenumber requiredmomentstring (date-time) requiredplaceobject requiredlatitudenumber requiredlongitudenumber required
chartWesternChart requiredmomentstring (date-time) requiredframestring requiredone of
tropicalhouse_systemstring or null requiredOne of:
- string
- null
planetsarray of object requiredFields
idstring requirednamestring requiredlongitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring requiredspeednumber requiredDegrees a day.
retrogradeboolean requiredhouseinteger or null requiredOne of:
- integer
- null
dignitystring or null requiredOne of:
- string
- null
anglesobject or null requiredOne of:
- object
Fields
ascendantobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
midheavenobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
descendantobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
imum_coeliobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
- null
- object
housesarray of object or null requiredOne of:
- array of object
Fields
houseinteger requiredlongitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
- null
- array of object
balanceobject requiredFields
elementsobject requiredFields
fireinteger requiredearthinteger requiredairinteger requiredwaterinteger required
modalitiesobject requiredFields
cardinalinteger requiredfixedinteger requiredmutableinteger required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/western/lunar-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}},"after":"2026-11-02"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/western/lunar-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
}
},
"after": "2026-11-02"
}),
});
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,
},
},
"after": "2026-11-02",
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/western/lunar-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/lunar-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}},"after":"2026-11-02"}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 8,218 characters
{
"data": {
"kind": "lunar",
"after": "2026-11-02",
"natal_longitude": 41.8257,
"moment": "2026-11-23T05:47:00.000Z",
"place": {
"latitude": 28.6139,
"longitude": 77.209
},
"chart": {
"moment": "2026-11-23T05:47:00.000Z",
"frame": "tropical",
"house_system": "placidus",
"planets": [
{
"id": "sun",
"name": "Sun",
"longitude": 240.9423,
"sign": "sagittarius",
"sign_name": "Sagittarius",
"degree": 0.9423,
"formatted": "0°56′ Sagittarius",
"speed": 1.0101,
"retrograde": false,
"house": 10,
"dignity": null
},
{
"id": "moon",
"name": "Moon",
"longitude": 41.8342,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 11.8342,
"formatted": "11°50′ Taurus",
"speed": 14.6396,
"retrograde": false,
"house": 3,
"dignity": "exaltation"
},
{
"id": "mercury",
"name": "Mercury",
"longitude": 221.6477,
"sign": "scorpio",
"sign_name": "Scorpio",
"degree": 11.6477,
"formatted": "11°38′ Scorpio",
"speed": 1.1725,
"retrograde": false,
"house": 9,
"dignity": null
},
{
"id": "venus",
"name": "Venus",
"longitude": 204.4768,
"sign": "libra",
"sign_name": "Libra",
"degree": 24.4768,
"formatted": "24°28′ Libra",
"speed": 0.3382,
"retrograde": false,
"house": 9,
"dignity": "domicile"
},
{
"id": "mars",
"name": "Mars",
"longitude": 148.8856,
"sign": "leo",
"sign_name": "Leo",
"degree": 28.8856,
"formatted": "28°53′ Leo",
"speed": 0.4131,
"retrograde": false,
"house": 7,
"dignity": null
},
{
"id": "jupiter",
"name": "Jupiter",
"longitude": 146.3942,
"sign": "leo",
"sign_name": "Leo",
"degree": 26.3942,
"formatted": "26°23′ Leo",
"speed": 0.0624,
"retrograde": false,
"house": 7,
"dignity": null
},
{
"id": "saturn",
"name": "Saturn",
"longitude": 8.2112,
"sign": "aries",
"sign_name": "Aries",
"degree": 8.2112,
"formatted": "8°12′ Aries",
"speed": -0.0313,
"retrograde": true,
"house": 2,
"dignity": "fall"
},
{
"id": "uranus",
"name": "Uranus",
"longitude": 63.7887,
"sign": "gemini",
"sign_name": "Gemini",
"degree": 3.7887,
"formatted": "3°47′ Gemini",
"speed": -0.0419,
"retrograde": true,
"house": 4,
"dignity": null
},
{
"id": "neptune",
"name": "Neptune",
"longitude": 1.7261,
"sign": "aries",
"sign_name": "Aries",
"degree": 1.7261,
"formatted": "1°43′ Aries",
"speed": -0.0109,
"retrograde": true,
"house": 2,
"dignity": null
},
{
"id": "pluto",
"name": "Pluto",
"longitude": 303.4097,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 3.4097,
"formatted": "3°24′ Aquarius",
"speed": 0.0175,
"retrograde": false,
"house": 1,
"dignity": null
},
{
"id": "north_node",
"name": "North Node",
"longitude": 324.6719,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 24.6719,
"formatted": "24°40′ Aquarius",
"speed": -0.1884,
"retrograde": true,
"house": 1,
"dignity": null
},
{
"id": "south_node",
"name": "South Node",
"longitude": 144.6719,
"sign": "leo",
"sign_name": "Leo",
"degree": 24.6719,
"formatted": "24°40′ Leo",
"speed": -0.1884,
"retrograde": true,
"house": 7,
"dignity": null
}
],
"angles": {
"ascendant": {
"longitude": 302.7293,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 2.7293,
"formatted": "2°43′ Aquarius"
},
"midheaven": {
"longitude": 228.6379,
"sign": "scorpio",
"sign_name": "Scorpio",
"degree": 18.6379,
"formatted": "18°38′ Scorpio"
},
"descendant": {
"longitude": 122.7293,
"sign": "leo",
"sign_name": "Leo",
"degree": 2.7293,
"formatted": "2°43′ Leo"
},
"imum_coeli": {
"longitude": 48.6379,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 18.6379,
"formatted": "18°38′ Taurus"
}
},
"houses": [
{
"house": 1,
"longitude": 302.7293,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 2.7293,
"formatted": "2°43′ Aquarius"
},
{
"house": 2,
"longitude": 342.2501,
"sign": "pisces",
"sign_name": "Pisces",
"degree": 12.2501,
"formatted": "12°15′ Pisces"
},
{
"house": 3,
"longitude": 19.0117,
"sign": "aries",
"sign_name": "Aries",
"degree": 19.0117,
"formatted": "19°00′ Aries"
},
{
"house": 4,
"longitude": 48.6379,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 18.6379,
"formatted": "18°38′ Taurus"
},
{
"house": 5,
"longitude": 73.2617,
"sign": "gemini",
"sign_name": "Gemini",
"degree": 13.2617,
"formatted": "13°15′ Gemini"
},
{
"house": 6,
"longitude": 96.5493,
"sign": "cancer",
"sign_name": "Cancer",
"degree": 6.5493,
"formatted": "6°32′ Cancer"
},
{
"house": 7,
"longitude": 122.7293,
"sign": "leo",
"sign_name": "Leo",
"degree": 2.7293,
"formatted": "2°43′ Leo"
},
{
"house": 8,
"longitude": 162.2501,
"sign": "virgo",
"sign_name": "Virgo",
"degree": 12.2501,
"formatted": "12°15′ Virgo"
},
{
"house": 9,
"longitude": 199.0117,
"sign": "libra",
"sign_name": "Libra",
"degree": 19.0117,
"formatted": "19°00′ Libra"
},
{
"house": 10,
"longitude": 228.6379,
"sign": "scorpio",
"sign_name": "Scorpio",
"degree": 18.6379,
"formatted": "18°38′ Scorpio"
},
{
"house": 11,
"longitude": 253.2617,
"sign": "sagittarius",
"sign_name": "Sagittarius",
"degree": 13.2617,
"formatted": "13°15′ Sagittarius"
},
{
"house": 12,
"longitude": 276.5493,
"sign": "capricorn",
"sign_name": "Capricorn",
"degree": 6.5493,
"formatted": "6°32′ Capricorn"
}
],
"balance": {
"elements": {
"fire": 5,
"earth": 1,
"air": 3,
"water": 1
},
"modalities": {
"cardinal": 3,
"fixed": 5,
"mutable": 2
}
}
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2
},
"warnings": []
}Try it
More in Western
- Western Natal Chart API: A tropical birth chart: planets, angles, Placidus or other houses, dignities and element balance
- Natal Chart Wheel SVG API: The chart drawn as a wheel in SVG, with the ascendant on the left
- Natal Aspects API: Natal aspects with their orbs, and whether each is applying
- Synastry API: Aspects between two charts, and each person's planets in the other's houses
- Composite Chart API: A midpoint composite chart for two people
- Western Transits API: Exact transits to a birth chart, sign ingresses and stations over a range
- Secondary Progressions API: A secondary progressed chart for a date, with solar arc angles
- Western Solar Return API: The tropical solar return chart for a year, at the birth place or another