Lunar Return API
Find the next moment the Moon comes home to its natal longitude on or after a chosen date — roughly every 27.3 days — and cast the chart for it at a location you pick. Pass natal data and a start date, get the lunar return chart. Swiss Ephemeris precision, JSON out.
Lunar Return API
The lunar-return endpoint reads the natal Moon's exact longitude from the supplied birth data, then searches forward from the given start date for the first instant the transiting Moon returns to that same longitude. Because the Moon completes a sidereal cycle in about 27.3 days, that return falls roughly monthly. The endpoint resolves the matched instant to a Julian day, pulls geocentric positions and speeds from the Swiss Ephemeris engine, and casts a full chart for it — return planets with signs and house placements, house cusps, and the complete aspect grid with applying and separating flags and exact orbs. By default the chart is cast for the natal place, but you can supply a different location latitude and longitude to relocate the return, which reshapes the angles and houses while keeping the same return moment. The result reads as the emotional and rhythmic theme map for the lunar month ahead.
POST/v1/lunar-return
curl -X POST https://api.astroway.info/v1/lunar-return \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{
"date": "1990-05-15",
"time": "14:30:00",
"timezoneOffset": 3,
"latitude": 50.45,
"longitude": 30.52,
"afterDate": "2026-06-15"
}' {
"ok": true,
"data": {
"input": {},
"planets": [
{
"name": "Moon",
"longitude": 282.7,
"sign": "Capricorn",
"house": 6
}
],
"houses": {
"ascendant": 201.5,
"mc": 110.3,
"cusps": [
"…"
]
},
"aspects": [
"…"
]
}
} Parameters
| name | type | Required | |
|---|---|---|---|
| date | string (YYYY-MM-DD) | yes | Birth date. |
| time | string (HH:MM:SS) | yes | Local clock time at birth. |
| timezoneOffset | number (hours) | yes | UTC offset in effect at the birth moment (e.g. 3 for Kyiv summer time). Decimal allowed for half-hour zones. |
| latitude | number | yes | Birth-place latitude, decimal degrees (north positive). |
| longitude | number | yes | Birth-place longitude, decimal degrees (east positive). |
| afterDate | string (YYYY-MM-DD) | yes | Required start date (YYYY-MM-DD); the endpoint finds the first lunar return on or after it. |
| afterTime | string (HH:MM:SS) | no | Optional clock time of the start point (HH:MM:SS). |
| afterTzOffset | number (hours) | no | Optional UTC offset for the start point, in hours. |
| locationLat | number | no | Optional latitude in decimal degrees to relocate the return chart, north positive. |
| locationLng | number | no | Optional longitude in decimal degrees to relocate the return chart, east positive. |
When to use it
Use the lunar return for short-cycle, roughly-monthly forecasting — a 'lunar month ahead' feature, an emotional-rhythm tracker, or a finer-grained companion to the yearly solar return. Where the solar return frames a whole year, the lunar return frames the next four weeks, making it well suited to recurring monthly reports and habit or mood cycles. Pass the start date as the point you want the next return after — often today, or the date of the last return — and the endpoint walks forward to the upcoming one. The optional location override lets you cast the return for wherever the person actually is that month rather than their birthplace, which matters for the angle-sensitive houses. Chain successive calls to build a rolling sequence of monthly charts.
Notes
The endpoint returns the next single return on or after the given date, not a series — call repeatedly, advancing the start date, to build a sequence. The ~27.3-day figure is the sidereal month, so returns drift against the calendar. If no location is supplied the chart is cast at the natal place; an override relocates the angles and houses only. Tropical zodiac and Swiss Ephemeris throughout.
Try the Lunar Return API
Grab a key and make your first call in under a minute.