<!-- generated by scripts/docs/generate-reference.ts — do not edit -->
astro_returns
Planetary returns — each planet's next crossing of its natal longitude.
- Layer: compute
- Methods: sun, moon, saturn, jupiter, mars, venus, mercury, uranus, neptune, pluto, node, any-planet
- Free tier: —
- Paid tier: sun, moon, saturn, jupiter, mars, venus, mercury, uranus, neptune, pluto, node, any-planet
Description
Planetary returns — each planet's next crossing of its natal longitude.
Methods:
sun [Paid] — Solar return chart for a given year — natal + return wheels, cross-aspects, house overlays, midpoints.
moon [Paid] — Moon returns to its natal longitude (position) or natal phase angle (phase) over a date range.
saturn [Paid] — Saturn return to its natal longitude (not yet implemented).
jupiter [Paid] — Jupiter return to its natal longitude (not yet implemented).
mars [Paid] — Mars return to its natal longitude (not yet implemented).
venus [Paid] — Venus return to its natal longitude (not yet implemented).
mercury [Paid] — Mercury return to its natal longitude (not yet implemented).
uranus [Paid] — Uranus return to its natal longitude (not yet implemented).
neptune [Paid] — Neptune return to its natal longitude (not yet implemented).
pluto [Paid] — Pluto return to its natal longitude (not yet implemented).
node [Paid] — North Node return to its natal longitude (not yet implemented).
any-planet [Paid] — Returns of any of the ten classical planets to its natal longitude, with optional monthly/daily subdivision points.
Input schema
sun
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| returnYear | integer | yes | min 1800, max 2101, int |
| returnLocation.latitude | number | yes | min -90, max 90 |
| returnLocation.longitude | number | yes | min -180, max 180 |
| returnLocation.timezone | number | yes | min -12, max 14 |
| houseSystem | enum(38) | no | — |
| zodiac | enum(34) | no | — |
| aspectOrbs | any | "default" | "hide" | object | no | — |
| bodies.fortune | boolean | no | — |
| bodies.vertex | boolean | no | — |
| bodies.chiron | boolean | no | — |
| bodies.lilith | boolean | no | — |
| bodies.trueLilith | boolean | no | — |
| bodies.nodes | boolean | no | — |
| bodies.trueNode | boolean | no | — |
| aspectToggles.fortuneAspects | boolean | no | — |
| aspectToggles.vertexAspects | boolean | no | — |
| aspectToggles.chironAspects | boolean | no | — |
| aspectToggles.lilithAspects | boolean | no | — |
| aspectToggles.nodeAspects | boolean | no | — |
| aspectToggles.ascMcAspects | boolean | no | — |
| minorAspects.quincunx | boolean | no | — |
| minorAspects.semiSextile | boolean | no | — |
| minorAspects.semiSquare | boolean | no | — |
| minorAspects.sesquiquadrate | boolean | no | — |
| minorAspects.quintile | boolean | no | — |
| minorAspects.biQuintile | boolean | no | — |
| parallelOrb | number | no | min 0, max 3 |
| aspectDisplay | "cross" | "natal" | "natal-outer" | "hide" | no | — |
moon
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| target | "position" | "phase" | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 13, int |
saturn
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
jupiter
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
mars
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
venus
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
mercury
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
uranus
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
neptune
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
pluto
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
node
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |
any-planet
| Field | Type | Required | Constraints |
|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| planet | enum(10) | yes | — |
| fromDate.year | integer | yes | min 1800, max 2100, int |
| fromDate.month | integer | yes | min 1, max 12, int |
| fromDate.day | integer | yes | min 1, max 31, int |
| count | integer | no | min 1, max 12, int |
| subdivisions | "monthly" | "daily" | "none" | no | — |