Compute Planetary Returns
Find solar, lunar, and planetary return charts for astrological timing.
Compute Planetary Returns
Use the /v1/returns endpoint to find the exact moment a transiting planet returns to its natal longitude and get a full chart for that moment.
What you need
- Birth date and time in UTC (the natal longitude is computed from this)
- Search start date — when to begin looking for the return
- Location — where the person is at the time of the return (for house cusps)
Solar return for the current year
curl "https://api.morphemeris.com/v1/returns?\
body=sun\
&datetime=1990-06-15T18:30:00Z\
&search_start=2024-01-01T00:00:00Z\
&lat=38.4496&lon=-78.8689" \
-H "Authorization: Bearer morphemeris_live_YOUR_KEY"The response includes a full chart at the return moment — positions, houses, aspects, and dignities — just like a natal chart.
Track monthly lunar returns
Lunar returns happen roughly every 27.3 days. Use count to get several at once:
const res = await fetch(
"https://api.morphemeris.com/v1/returns?" + new URLSearchParams({
body: "moon",
datetime: "1990-06-15T18:30:00Z",
search_start: "2024-03-01T00:00:00Z",
lat: "38.4496", lon: "-78.8689",
count: "6",
}),
{ headers: { Authorization: `Bearer ${apiKey}` } }
);
const { data } = await res.json();
for (const chart of data.charts) {
console.log(`Return on ${chart.metadata.datetime}`);
console.log(` Ascendant: ${chart.houses.ascendant.sign} ${chart.houses.ascendant.sign_degree.toFixed(1)}°`);
}Find a Saturn return
Saturn returns happen roughly every 29.5 years. For someone born in 1995, the first Saturn return occurs around 2024-2025:
import requests
res = requests.get(
"https://api.morphemeris.com/v1/returns",
params={
"body": "saturn",
"datetime": "1995-08-20T14:00:00Z",
"search_start": "2024-01-01T00:00:00Z",
"lat": 40.7128, "lon": -74.006,
},
headers={"Authorization": "Bearer morphemeris_live_YOUR_KEY"},
)
data = res.json()["data"]
print(f"Natal Saturn: {data['natal_longitude']:.2f}°")
for chart in data["charts"]:
print(f"Saturn return: {chart['metadata']['datetime']}")Saturn's retrograde motion means it may cross the natal degree multiple times — the response includes each crossing in chronological order.
Compare a return chart with the natal chart
Use /v1/synastry to overlay the return chart onto the natal chart and see the inter-chart aspects:
curl "https://api.morphemeris.com/v1/synastry?\
datetime_a=1990-06-15T18:30:00Z&lat_a=40.7128&lon_a=-74.006\
&datetime_b=2024-06-14T17:37:00Z&lat_b=38.4496&lon_b=-78.8689" \
-H "Authorization: Bearer morphemeris_live_YOUR_KEY"Use the return moment's datetime and the person's current location as chart B.
Tips
- The
search_startshould be before the expected return. For solar returns, January 1 of the target year works well. - Return chart location matters — use the person's current residence, not their birthplace.
- Solar returns cost 2 credits. Using
countdoesn't multiply the cost. - See Planetary Returns for background on return chart interpretation.