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.
Precession-corrected returns are not a separate flag: a precession-corrected tropical return is equivalent to the sidereal return (use zodiac: sidereal).
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(44) | no | — |
| zodiac | enum(35) | 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 | — |
| bodies.minorAngles | 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 | — |
| minorAspects.septile | boolean | no | — |
| minorAspects.biSeptile | boolean | no | — |
| minorAspects.triSeptile | boolean | no | — |
| minorAspects.novile | boolean | no | — |
| minorAspects.biNovile | boolean | no | — |
| minorAspects.quadriNovile | boolean | no | — |
| minorAspects.semiQuintile | boolean | no | — |
| minorAspects.undecile | boolean | no | — |
| minorAspects.quindecile | boolean | no | — |
| parallelOrb | number | no | min 0, max 3 |
| aspectDisplay | "cross" | "natal" | "natal-outer" | "hide" | no | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "sun",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"returnYear": 2024
}
Example response (captured; long values elided)
{
"natalSummary": {
"dateTime": "1 January 1990 - 12:00 (GMT)",
"universalTime": "1 January 1990 - 12:00",
"localSiderealTime": "18:43:01",
"houseSystem": "Placidus system",
"coordinates": "51d30'N, 0d8'W",
"zodiac": "Tropical",
"ayanamsaOffset": null
},
"solarSummary": {
"dateTime": "1 January 2024 - 18:15 (GMT)",
"universalTime": "1 January 2024 - 18:15",
"localSiderealTime": "00:58:39",
"houseSystem": "Placidus system",
"coordinates": "51d30'N, 0d8'W",
"zodiac": "Tropical",
"ayanamsaOffset": null
},
"solarReturnMoment": {
"jdET": 2460311.261606,
"jdUT": 2460311.260806,
"dateTimeUT": "1 Jan 2024 - 18:15",
"daysSinceBirth": 12418
},
"natal": {
"summary": {
"dateTime": "1 January 1990 - 12:00 (GMT)",
"universalTime": "1 January 1990 - 12:00",
"localSiderealTime": "18:43:01",
"houseSystem": "Placidus system",
"coordinates": "51d30'N, 0d8'W",
"zodiac": "Tropical",
"ayanamsaOffset": null
},
"planets": [
{
"id": "Sun",
"longitude": 280.814265,
"latitude": 0.000013,
"speed": 1.019476,
"isRetrograde": false,
"sign": {
"sign": 9,
"signName": "Capricorn",
"degrees": 10,
"minutes": 48,
"seconds": 51
},
"house": 10
},
{
"id": "Moon",
"longitude": 333.267706,
"latitude": 1.470679,
"speed": 13.470138,
"isRetrograde": false,
"sign": {
"sign": 11,
"signName": "Pisces",
"degrees": 3,
"minutes": 16,
"seconds": 4
},
"house": 12
},
{
"id": "Mercury",
"longitude": 295.672824,
"latitude": 0.630303,
"speed": -0.294579,
"isRetrograde": true,
"sign": {
"sign": 9,
"signName": "Capricorn",
"degrees": 25,
"minutes": 40,
"seconds": 22
},
"house": 10
},
{
"id": "Venus",
"longitude": 306.22196,
"latitude": 1.901161,
"speed": -0.130285,
"isRetrograde": true,
"sign": {
"sign": 10,
"signName": "Aquarius",
"degrees": 6,
"minutes": 13,
"seconds": 19
},
"house": 11
},
{
"id": "Mars",
"longitude": 250.000088,
"latitude": -0.032937,
"speed": 0.703758,
"isRetrograde": false,
"sign": {
"sign": 8,
"signName": "Sagittarius",
"degrees": 10,
"minutes": 0,
"seconds": 0
},
"house": 8
},
{
"id": "Jupiter",
"longitude": 95.148793,
"latitude": -0.116988,
"speed": -0.13448,
"isRetrograde": true,
"sign": {
"sign": 3,
"signName": "Cancer",
"degrees": 5,
"minutes": 8,
"seconds": 56
},
"house": 3
},
{
"id": "Saturn",
"longitude": 285.657499,
"latitude": 0.293309,
"speed": 0.118271,
"isRetrograde": false,
"sign": {
"sign": 9,
"signName": "Capricorn",
"degrees": 15,
"minutes": 39,
"seconds": 27
},
"house": 10
},
{
"id": "Uranus",
"longitude": 275.785441,
"latitude": -0.270101,
"speed": 0.060008,
"isRetrograde": false,
"sign": {
"sign": 9,
"signName": "Capricorn",
"degrees": 5,
"minutes": 47,
"seconds": 8
},
"house": 9
},
"… 7 more items"
],
"houses": [
{
"house": 1,
"longitude": 24.947013,
"sign": {
"sign": 0,
"signName": "Aries",
"degrees": 24,
"minutes": 56,
"seconds": 49
}
},
{
"house": 2,
"longitude": 61.533457,
"sign": {
"sign": 2,
"signName": "Gemini",
"degrees": 1,
"minutes": 32,
"seconds": 0
}
},
{
"house": 3,
"longitude": 82.317459,
"sign": {
"sign": 2,
"signName": "Gemini",
"degrees": 22,
"minutes": 19,
"seconds": 3
}
},
{
"house": 4,
"longitude": 99.88375,
"sign": {
"sign": 3,
"signName": "Cancer",
"degrees": 9,
"minutes": 53,
"seconds": 2
}
},
{
"house": 5,
"longitude": 119.36486,
"sign": {
"sign": 3,
"signName": "Cancer",
"degrees": 29,
"minutes": 21,
"seconds": 53
}
},
{
"house": 6,
"longitude": 148.13644,
"sign": {
"sign": 4,
"signName": "Leo",
"degrees": 28,
"minutes": 8,
"seconds": 11
}
},
{
"house": 7,
"longitude": 204.947013,
"sign": {
"sign": 6,
"signName": "Libra",
"degrees": 24,
"minutes": 56,
"seconds": 49
}
},
{
"house": 8,
"longitude": 241.533457,
"sign": {
"sign": 8,
"signName": "Sagittarius",
"degrees": 1,
"minutes": 32,
"seconds": 0
}
},
"… 4 more items"
],
"ascendant": 24.947013,
"midheaven": 279.88375,
"vertex": 188.711031,
"majorAspects": [
{
"body1": "Sun",
"body2": "Neptune",
"aspect": "Conjunction",
"angle": 0,
"orb": 1.22,
"isApplying": true
},
{
"body1": "Moon",
"body2": "Jupiter",
"aspect": "Trine",
"angle": 120,
"orb": 1.88,
"isApplying": true
},
{
"body1": "Moon",
"body2": "Uranus",
"aspect": "Sextile",
"angle": 60,
"orb": -2.52,
"isApplying": true
},
{
"body1": "Jupiter",
"body2": "Uranus",
"aspect": "Opposition",
"angle": 180,
"orb": -0.64,
"isApplying": false
},
{
"body1": "Saturn",
"body2": "Pluto",
"aspect": "Sextile",
"angle": 60,
"orb": -1.44,
"isApplying": true
}
],
"pointAspects": [
{
"body1": "Sun",
"body2": "Chiron",
"aspect": "Opposition",
"angle": 180,
"orb": -3,
"isApplying": true
},
{
"body1": "Venus",
"body2": "Lilith",
"aspect": "Square",
"angle": 90,
"orb": -0.24,
"isApplying": false
},
{
"body1": "Jupiter",
"body2": "Lilith",
"aspect": "Trine",
"angle": 120,
"orb": 1.32,
"isApplying": false
},
{
"body1": "Saturn",
"body2": "Chiron",
"aspect": "Opposition",
"angle": 180,
"orb": -1.84,
"isApplying": false
},
{
"body1": "Uranus",
"body2": "Lilith",
"aspect": "Sextile",
"angle": 60,
"orb": -0.68,
"isApplying": false
},
{
"body1": "Neptune",
"body2": "Chiron",
"aspect": "Opposition",
"angle": 180,
"orb": -1.78,
"isApplying": true
},
{
"body1": "Pluto",
"body2": "Node",
"aspect": "Square",
"angle": 90,
"orb": 1.34,
"isApplying": true
},
{
"body1": "Pluto",
"body2": "S.Node",
"aspect": "Square",
"angle": 90,
"orb": -1.34,
"isApplying": true
},
"… 3 more items"
],
"parallelAspects": [
{
"body1": "Sun",
"body2": "Mars",
"aspect": "Parallel",
"orb": 1.02
},
{
"body1": "Sun",
"body2": "Jupiter",
"aspect": "Contra-Parallel",
"orb": 0.22
},
{
"body1": "Sun",
"body2": "Saturn",
"aspect": "Parallel",
"orb": 0.77
},
{
"body1": "Sun",
"body2": "Uranus",
"aspect": "Parallel",
"orb": 0.58
},
{
"body1": "Sun",
"body2": "Neptune",
"aspect": "Parallel",
"orb": 0.95
},
{
"body1": "Sun",
"body2": "MC",
"aspect": "Parallel",
"orb": 0.07
},
{
"body1": "Sun",
"body2": "Fortune",
"aspect": "Contra-Parallel",
"orb": 0.16
},
{
"body1": "Moon",
"body2": "Ascendant",
"aspect": "Contra-Parallel",
"orb": 0.72
},
"… 20 more items"
],
"technicalCoords": [
{
"id": "Sun",
"longitude": 280.814265,
"latitude": 0.000013,
"ra": 281.761141,
"declination": -23.001861,
"speed": 1.019476,
"isOutOfBounds": false
},
{
"id": "Moon",
"longitude": 333.267706,
"latitude": 1.470679,
"ra": 334.661565,
"declination": -8.936825,
"speed": 13.470138,
"isOutOfBounds": false
},
{
"id": "Mercury",
"longitude": 295.672824,
"latitude": 0.630303,
"ra": 297.527158,
"declination": -20.391908,
"speed": -0.294579,
"isOutOfBounds": false
},
{
"id": "Venus",
"longitude": 306.22196,
"latitude": 1.901161,
"ra": 308.10996,
"declination": -16.877487,
"speed": -0.130285,
"isOutOfBounds": false
},
{
"id": "Mars",
"longitude": 250.000088,
"latitude": -0.032937,
"ra": 248.355923,
"declination": -21.984892,
"speed": 0.703758,
"isOutOfBounds": false
},
{
"id": "Jupiter",
"longitude": 95.148793,
"latitude": -0.116988,
"ra": 95.604221,
"declination": 23.225258,
"speed": -0.13448,
"isOutOfBounds": false
},
{
"id": "Saturn",
"longitude": 285.657499,
"latitude": 0.293309,
"ra": 286.951244,
"declination": -22.232275,
"speed": 0.118271,
"isOutOfBounds": false
},
{
"id": "Uranus",
"longitude": 275.785441,
"latitude": -0.270101,
"ra": 276.31478,
"declination": -23.585721,
"speed": 0.060008,
"isOutOfBounds": true
},
"… 10 more items"
],
"partOfFortune": {
"id": "Fortune",
"longitude": 77.400454,
"latitude": 0,
"speed": 0,
"isRetrograde": false,
"sign": {
"sign": 2,
"signName": "Gemini",
"degrees": 17,
"minutes": 24,
"seconds": 2
},
"house": 2
},
"partOfSpirit": 332.493572,
"extendedBodies": [],
"unavailable": [],
"unknown": []
},
"solarPlanets": [
{
"id": "Sun",
"longitude": 280.814265,
"latitude": 0.000141,
"speed": 1.019046,
"isRetrograde": false,
"sign": {
"sign": 9,
"signName": "Capricorn",
"degrees": 10,
"minutes": 48,
"seconds": 51
},
"house": 6
},
{
"id": "Moon",
"longitude": 164.986661,
"latitude": 2.968083,
"speed": 11.803204,
"isRetrograde": false,
"sign": {
"sign": 5,
"signName": "Virgo",
"degrees": 14,
"minutes": 59,
"seconds": 12
},
"house": 2
},
{
"id": "Mercury",
"longitude": 262.191656,
"latitude": 3.017093,
"speed": -0.057445,
"isRetrograde": true,
"sign": {
"sign": 8,
"signName": "Sagittarius",
"degrees": 22,
"minutes": 11,
"seconds": 30
},
"house": 5
},
{
"id": "Venus",
"longitude": 243.537735,
"latitude": 1.926979,
"speed": 1.21675,
"isRetrograde": false,
"sign": {
"sign": 8,
"signName": "Sagittarius",
"degrees": 3,
"minutes": 32,
"seconds": 16
},
"house": 5
},
{
"id": "Mars",
"longitude": 267.872649,
"latitude": -0.557912,
"speed": 0.741995,
"isRetrograde": false,
"sign": {
"sign": 8,
"signName": "Sagittarius",
"degrees": 27,
"minutes": 52,
"seconds": 22
},
"house": 5
},
{
"id": "Jupiter",
"longitude": 35.585731,
"latitude": -1.181583,
"speed": 0.005703,
"isRetrograde": false,
"sign": {
"sign": 1,
"signName": "Taurus",
"degrees": 5,
"minutes": 35,
"seconds": 9
},
"house": 10
},
{
"id": "Saturn",
"longitude": 333.311188,
"latitude": -1.633225,
"speed": 0.089323,
"isRetrograde": false,
"sign": {
"sign": 11,
"signName": "Pisces",
"degrees": 3,
"minutes": 18,
"seconds": 40
},
"house": 8
},
{
"id": "Uranus",
"longitude": 49.367471,
"latitude": -0.305844,
"speed": -0.021336,
"isRetrograde": true,
"sign": {
"sign": 1,
"signName": "Taurus",
"degrees": 19,
"minutes": 22,
"seconds": 3
},
"house": 10
},
"… 6 more items"
],
"solarHouses": [
{
"house": 1,
"longitude": 127.129512,
"sign": {
"sign": 4,
"signName": "Leo",
"degrees": 7,
"minutes": 7,
"seconds": 46
}
},
{
"house": 2,
"longitude": 144.066219,
"sign": {
"sign": 4,
"signName": "Leo",
"degrees": 24,
"minutes": 3,
"seconds": 58
}
},
{
"house": 3,
"longitude": 165.886532,
"sign": {
"sign": 5,
"signName": "Virgo",
"degrees": 15,
"minutes": 53,
"seconds": 12
}
},
{
"house": 4,
"longitude": 195.918008,
"sign": {
"sign": 6,
"signName": "Libra",
"degrees": 15,
"minutes": 55,
"seconds": 5
}
},
{
"house": 5,
"longitude": 235.636457,
"sign": {
"sign": 7,
"signName": "Scorpio",
"degrees": 25,
"minutes": 38,
"seconds": 11
}
},
{
"house": 6,
"longitude": 275.992589,
"sign": {
"sign": 9,
"signName": "Capricorn",
"degrees": 5,
"minutes": 59,
"seconds": 33
}
},
{
"house": 7,
"longitude": 307.129512,
"sign": {
"sign": 10,
"signName": "Aquarius",
"degrees": 7,
"minutes": 7,
"seconds": 46
}
},
{
"house": 8,
"longitude": 324.066219,
"sign": {
"sign": 10,
"signName": "Aquarius",
"degrees": 24,
"minutes": 3,
"seconds": 58
}
},
"… 4 more items"
],
"solarAscendant": 127.129512,
"solarMidheaven": 15.918008,
"solarVertex": 265.034281,
"crossAspects": {
"planetToPlanet": [
{
"body1": "Sun",
"body2": "Sun",
"aspect": "Conjunction",
"angle": 0,
"orb": 0,
"isApplying": false
},
{
"body1": "Sun",
"body2": "Neptune",
"aspect": "Conjunction",
"angle": 0,
"orb": 1.22,
"isApplying": true
},
{
"body1": "Moon",
"body2": "Saturn",
"aspect": "Trine",
"angle": 120,
"orb": 0.67,
"isApplying": true
},
{
"body1": "Moon",
"body2": "Neptune",
"aspect": "Trine",
"angle": 120,
"orb": -2.95,
"isApplying": false
},
{
"body1": "Moon",
"body2": "Pluto",
"aspect": "Sextile",
"angle": 60,
"orb": 2.11,
"isApplying": true
},
{
"body1": "Venus",
"body2": "Moon",
"aspect": "Square",
"angle": 90,
"orb": -0.27,
"isApplying": false
},
{
"body1": "Venus",
"body2": "Venus",
"aspect": "Sextile",
"angle": 60,
"orb": 2.68,
"isApplying": true
},
{
"body1": "Jupiter",
"body2": "Moon",
"aspect": "Sextile",
"angle": 60,
"orb": 2.32,
"isApplying": false
},
"… 8 more items"
],
"planetToObject": [],
"objectToPlanet": [],
"objectToObject": []
},
"crossParallelAspects": [
{
"body1": "Sun",
"body2": "Sun",
"aspect": "Parallel",
"orb": 0
},
{
"body1": "Sun",
"body2": "Mars",
"aspect": "Parallel",
"orb": 1.01
},
{
"body1": "Sun",
"body2": "Jupiter",
"aspect": "Contra-Parallel",
"orb": 0.23
},
{
"body1": "Sun",
"body2": "Saturn",
"aspect": "Parallel",
"orb": 0.77
},
{
"body1": "Sun",
"body2": "Uranus",
"aspect": "Parallel",
"orb": 0.59
},
{
"body1": "Sun",
"body2": "Neptune",
"aspect": "Parallel",
"orb": 0.94
},
{
"body1": "Sun",
"body2": "MC",
"aspect": "Parallel",
"orb": 0.08
},
{
"body1": "Sun",
"body2": "Fortune",
"aspect": "Contra-Parallel",
"orb": 0.15
},
"… 30 more items"
],
"solarInNatalHouses": [
{
"bodyId": "Sun",
"signName": "Capricorn",
"house": 10
},
{
"bodyId": "Moon",
"signName": "Virgo",
"house": 6
},
{
"bodyId": "Mercury",
"signName": "Sagittarius",
"house": 8
},
{
"bodyId": "Venus",
"signName": "Sagittarius",
"house": 8
},
{
"bodyId": "Mars",
"signName": "Sagittarius",
"house": 9
},
{
"bodyId": "Jupiter",
"signName": "Taurus",
"house": 1
},
{
"bodyId": "Saturn",
"signName": "Pisces",
"house": 12
},
{
"bodyId": "Uranus",
"signName": "Taurus",
"house": 1
},
"… 6 more items"
],
"natalInSolarHouses": [
{
"bodyId": "Sun",
"signName": "Capricorn",
"house": 6
},
{
"bodyId": "Moon",
"signName": "Pisces",
"house": 8
},
{
"bodyId": "Mercury",
"signName": "Capricorn",
"house": 6
},
{
"bodyId": "Venus",
"signName": "Aquarius",
"house": 6
},
{
"bodyId": "Mars",
"signName": "Sagittarius",
"house": 5
},
{
"bodyId": "Jupiter",
"signName": "Cancer",
"house": 11
},
{
"bodyId": "Saturn",
"signName": "Capricorn",
"house": 6
},
{
"bodyId": "Uranus",
"signName": "Capricorn",
"house": 5
},
"… 7 more items"
],
"solarTechCoords": [
{
"id": "Sun",
"longitude": 280.814265,
"latitude": 0.000141,
"ra": 281.760787,
"declination": -22.997856,
"speed": 1.019046,
"isOutOfBounds": false
},
{
"id": "Moon",
"longitude": 164.986661,
"latitude": 2.968083,
"ra": 167.335072,
"declination": 8.650519,
"speed": 11.803204,
"isOutOfBounds": false
},
{
"id": "Mercury",
"longitude": 262.191656,
"latitude": 3.017093,
"ra": 261.688214,
"declination": -20.19631,
"speed": -0.057445,
"isOutOfBounds": false
},
{
"id": "Venus",
"longitude": 243.537735,
"latitude": 1.926979,
"ra": 241.905522,
"declination": -18.967753,
"speed": 1.21675,
"isOutOfBounds": false
},
{
"id": "Mars",
"longitude": 267.872649,
"latitude": -0.557912,
"ra": 267.671706,
"declination": -23.979127,
"speed": 0.741995,
"isOutOfBounds": true
},
{
"id": "Jupiter",
"longitude": 35.585731,
"latitude": -1.181583,
"ra": 33.687404,
"declination": 12.26876,
"speed": 0.005703,
"isOutOfBounds": false
},
{
"id": "Saturn",
"longitude": 333.311188,
"latitude": -1.633225,
"ra": 335.842322,
"declination": -11.8137,
"speed": 0.089323,
"isOutOfBounds": false
},
{
"id": "Uranus",
"longitude": 49.367471,
"latitude": -0.305844,
"ra": 47.003052,
"declination": 17.275177,
"speed": -0.021336,
"isOutOfBounds": false
},
"… 9 more items"
],
"midpoints": [
{
"label": "ASC/MC",
"birth": 332.415382,
"solar": 71.52376
},
{
"label": "Sun/Moon",
"birth": 307.040985,
"solar": 222.900463
}
]
}
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 |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "moon",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2024,
"month": 6,
"day": 1
}
}
Example response (captured; long values elided)
{
"target": "position",
"natalMoonLongitude": 333.267706,
"natalPhaseAngle": 52.453441,
"returns": [
{
"n": 0,
"jdUT": 2460460.755345,
"dateUT": {
"year": 2024,
"month": 5,
"day": 30,
"hour": 6,
"minute": 7,
"second": 41
}
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "saturn",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2019,
"month": 1,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Saturn",
"natalLongitude": 285.657499,
"returns": [
{
"n": 0,
"jdUT": 2458521.994734,
"dateUT": {
"year": 2019,
"month": 2,
"day": 7,
"hour": 11,
"minute": 52,
"second": 25
},
"targetLongitude": 285.657499,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "jupiter",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2013,
"month": 6,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Jupiter",
"natalLongitude": 95.148793,
"returns": [
{
"n": 0,
"jdUT": 2456492.390223,
"dateUT": {
"year": 2013,
"month": 7,
"day": 18,
"hour": 21,
"minute": 21,
"second": 55
},
"targetLongitude": 95.148793,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "mars",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2024,
"month": 1,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Mars",
"natalLongitude": 250.000088,
"returns": [
{
"n": 0,
"jdUT": 2460286.868715,
"dateUT": {
"year": 2023,
"month": 12,
"day": 8,
"hour": 8,
"minute": 50,
"second": 56
},
"targetLongitude": 250.000088,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "venus",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2024,
"month": 1,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Venus",
"natalLongitude": 306.22196,
"returns": [
{
"n": 0,
"jdUT": 2460362.2001,
"dateUT": {
"year": 2024,
"month": 2,
"day": 21,
"hour": 16,
"minute": 48,
"second": 8
},
"targetLongitude": 306.22196,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "mercury",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2024,
"month": 1,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Mercury",
"natalLongitude": 295.672824,
"returns": [
{
"n": 0,
"jdUT": 2460342.862583,
"dateUT": {
"year": 2024,
"month": 2,
"day": 2,
"hour": 8,
"minute": 42,
"second": 7
},
"targetLongitude": 295.672824,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "uranus",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 1990,
"month": 2,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Uranus",
"natalLongitude": 275.785441,
"returns": [
{
"n": 0,
"jdUT": 2448128.08931,
"dateUT": {
"year": 1990,
"month": 8,
"day": 24,
"hour": 14,
"minute": 8,
"second": 36
},
"targetLongitude": 275.785441,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "neptune",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 1990,
"month": 2,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Neptune",
"natalLongitude": 282.038107,
"returns": [
{
"n": 0,
"jdUT": 2448128.024138,
"dateUT": {
"year": 1990,
"month": 8,
"day": 24,
"hour": 12,
"minute": 34,
"second": 45
},
"targetLongitude": 282.038107,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "pluto",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 1990,
"month": 2,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Pluto",
"natalLongitude": 227.093118,
"returns": [
{
"n": 0,
"jdUT": 2447992.870991,
"dateUT": {
"year": 1990,
"month": 4,
"day": 11,
"hour": 8,
"minute": 54,
"second": 13
},
"targetLongitude": 227.093118,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "node",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"fromDate": {
"year": 2008,
"month": 1,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Node",
"natalLongitude": 318.434984,
"returns": [
{
"n": 0,
"jdUT": 2454691.386198,
"dateUT": {
"year": 2008,
"month": 8,
"day": 12,
"hour": 21,
"minute": 16,
"second": 8
},
"targetLongitude": 318.434984,
"subdivisionPoints": []
}
]
}
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 | — |
| returnParams.offset_angle | number | no | min 0, max 359.999 |
| returnParams.target_degree | number | no | min 0, max 359.999 |
| returnParams.direction | "forward" | "converse" | no | — |
| returnParams.harmonic | integer | no | min 1, max 360, int |
Example request
{
"method": "any-planet",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"planet": "Mars",
"fromDate": {
"year": 2024,
"month": 1,
"day": 1
}
}
Example response (captured; long values elided)
{
"planet": "Mars",
"natalLongitude": 250.000088,
"returns": [
{
"n": 0,
"jdUT": 2460286.868715,
"dateUT": {
"year": 2023,
"month": 12,
"day": 8,
"hour": 8,
"minute": 50,
"second": 56
},
"targetLongitude": 250.000088,
"subdivisionPoints": []
}
]
}