astro_find_events
Date-range scans for astrological events — aspects, ingresses, eclipses, stations, etc.
- Layer: search
- Methods: aspects, moon-events, lunations, ingresses, returns, eclipses, heliacal, retrograde-periods, stations, parallels, cazimi-combust, planetary-conjunctions, fixed-star-alignments, oob-periods, critical-aspects-to-degree, fertility-window, biodynamic-gardening, progressed-lunations
- Free tier: moon-events, lunations, eclipses, retrograde-periods
- Paid tier: aspects, ingresses, returns, heliacal, stations, parallels, cazimi-combust, planetary-conjunctions, fixed-star-alignments, oob-periods, critical-aspects-to-degree, fertility-window, biodynamic-gardening, progressed-lunations
Description
Date-range scans for astrological events — aspects, ingresses, eclipses, stations, etc.
Methods:
aspects [Paid] — Find aspect moments between pairs of bodies (transit-natal, transit-transit, progression-natal, progression-progression)
moon-events [Free] — Find new/full moons and void-of-course spans across a date range (defaults to all)
lunations [Free] — Find lunar phases (new, first-quarter, full, last-quarter) across a date range
ingresses [Paid] — Find every zodiac sign ingress per planet (sign boundary crossings) with direction
returns [Paid] — Find all return instants of a planet to its natal longitude within a date range
eclipses [Free] — Find solar and lunar eclipses inside a date range
heliacal [Paid] — Heliacal risings/settings (first/last visibility) of a star or planet for an observer location
retrograde-periods [Free] — Find contiguous intervals where a planet's ecliptic speed is negative (retrograde)
stations [Paid] — Find every station (stationary point) of the requested planets (retrograde/direct)
parallels [Paid] — Find parallels (equal declination) and contra-parallels between pairs of bodies
cazimi-combust [Paid] — Find intervals where a planet is cazimi, combust, or under the beams of the Sun
planetary-conjunctions [Paid] — Find every conjunction (transit-transit, 0°) between pairs of bodies, optional atDegree filter
fixed-star-alignments [Paid] — Find when a planet conjuncts a fixed star inside a date range
oob-periods [Paid] — Find off-bounds periods where a planet's declination magnitude exceeds 23.44°
critical-aspects-to-degree [Paid] — Find moments a body makes a given aspect angle to a fixed zodiacal degree
fertility-window [Paid] — Find the Jonas lunar-fertility windows (phase-return ±2-day spans) from a natal chart
biodynamic-gardening [Paid] — Segment a date range into Thun biodynamic gardening periods by Moon constellation with unfavorable overlays
progressed-lunations [Paid] — Secondary-progressed lunar-phase calendar — real dates when the progressed Moon-Sun elongation hits each phase (~29.5-year cycle)
Input schema
aspects
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| mode | "transit-natal" | "transit-transit" | "progression-natal" | "progression-progression" | yes | — |
| natal.year | integer | yes | min -4000, max 4000, int |
| natal.month | integer | yes | min 1, max 12, int |
| natal.day | integer | yes | min 1, max 31, int |
| natal.hour | integer | yes | min 0, max 23, int |
| natal.minute | integer | yes | min 0, max 59, int |
| natal.second | integer | no | min 0, max 59, int |
| natal.latitude | number | yes | min -90, max 90 |
| natal.longitude | number | yes | min -180, max 180 |
| natal.timezone | number | yes | min -12, max 14 |
| natal.unknownTime | boolean | no | — |
| bodyPairs | array<object> | yes | — |
| aspectAngles | any | "major" | array | no | — |
Example request
{
"method": "aspects",
"dateRange": {
"from": {
"year": 2024,
"month": 8,
"day": 1
},
"to": {
"year": 2024,
"month": 9,
"day": 15
}
},
"mode": "transit-transit",
"bodyPairs": [
{
"a": "Jupiter",
"b": "Saturn"
}
]
}
Example response (captured; long values elided)
{
"events": [
{
"a": "Jupiter",
"b": "Saturn",
"angle": 90,
"mode": "transit-transit",
"jdUT": 2460542.40714
}
]
}
moon-events
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| events | "full" | "new" | "voc" | "all" | no | — |
Example request
{
"method": "moon-events",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 3,
"day": 31
}
}
}
Example response (captured; long values elided)
{
"events": [
{
"kind": "voc",
"startJd": 2460371.047762,
"endJd": 2460372.080686
},
{
"kind": "voc",
"startJd": 2460376.037952,
"endJd": 2460376.526657
},
{
"kind": "voc",
"startJd": 2460378.288654,
"endJd": 2460378.544028
},
{
"type": "new",
"jdUT": 2460379.875303
},
{
"kind": "voc",
"startJd": 2460379.875305,
"endJd": 2460380.51338
},
{
"kind": "voc",
"startJd": 2460381.963877,
"endJd": 2460382.519633
},
{
"kind": "voc",
"startJd": 2460384.247574,
"endJd": 2460384.635852
},
{
"kind": "voc",
"startJd": 2460393.14029,
"endJd": 2460394.35937
},
"… 2 more items"
]
}
lunations
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| phases | any | 4 | 8 | no | — |
Example request
{
"method": "lunations",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 4,
"day": 30
}
}
}
Example response (captured; long values elided)
{
"events": [
{
"phase": "last-quarter",
"jdUT": 2460373.141317
},
{
"phase": "new-moon",
"jdUT": 2460379.875303
},
{
"phase": "first-quarter",
"jdUT": 2460386.674115
},
{
"phase": "full-moon",
"jdUT": 2460394.791898
},
{
"phase": "last-quarter",
"jdUT": 2460402.635228
},
{
"phase": "new-moon",
"jdUT": 2460409.264486
},
{
"phase": "first-quarter",
"jdUT": 2460416.300779
},
{
"phase": "full-moon",
"jdUT": 2460424.492345
}
]
}
ingresses
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| planets | array<enum(15)> | yes | — |
| signs | array<enum(12)> | no | — |
Example request
{
"method": "ingresses",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 4,
"day": 30
}
},
"planets": [
"Sun"
]
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Sun",
"sign": "Aries",
"jdUT": 2460389.629445,
"direction": "direct"
},
{
"planet": "Sun",
"sign": "Taurus",
"jdUT": 2460420.083165,
"direction": "direct"
}
]
}
returns
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| natal.year | integer | yes | min -4000, max 4000, int |
| natal.month | integer | yes | min 1, max 12, int |
| natal.day | integer | yes | min 1, max 31, int |
| natal.hour | integer | yes | min 0, max 23, int |
| natal.minute | integer | yes | min 0, max 59, int |
| natal.second | integer | no | min 0, max 59, int |
| natal.latitude | number | yes | min -90, max 90 |
| natal.longitude | number | yes | min -180, max 180 |
| natal.timezone | number | yes | min -12, max 14 |
| natal.unknownTime | boolean | no | — |
| planet | enum(15) | yes | — |
Example request
{
"method": "returns",
"dateRange": {
"from": {
"year": 2024,
"month": 12,
"day": 1
},
"to": {
"year": 2025,
"month": 1,
"day": 31
}
},
"natal": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"planet": "Sun"
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Sun",
"jdUT": 2460676.500639
}
]
}
eclipses
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| kind | "solar" | "lunar" | "both" | no | — |
Example request
{
"method": "eclipses",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 4,
"day": 30
}
}
}
Example response (captured; long values elided)
{
"events": [
{
"kind": "lunar",
"jdMax": 2460394.800609,
"type": "penumbral",
"magnitude": 0,
"sarosSeries": null
},
{
"kind": "solar",
"jdMax": 2460409.262041,
"type": "total",
"magnitude": 1.057476,
"sarosSeries": null
}
]
}
heliacal
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| object | string | yes | minLength 1 |
| observer.latitude | number | yes | min -60, max 60 |
| observer.longitude | number | yes | min -180, max 180 |
| observer.elevationMeters | number | no | min -420, max 9000 |
| events | array<"morning_first" | "evening_last" | "evening_first" | "morning_last"> | no | — |
Example request
{
"method": "heliacal",
"dateRange": {
"from": {
"year": 2000,
"month": 7,
"day": 1
},
"to": {
"year": 2000,
"month": 9,
"day": 1
}
},
"object": "Sirius",
"observer": {
"latitude": 30.05,
"longitude": 31.25
}
}
Example response (captured; long values elided)
{
"events": [
{
"object": "Sirius",
"eventType": "morning_first",
"jdStart": 2451764.609916,
"jdOptimum": 2451764.615182,
"jdEnd": 2451764.621791,
"date": {
"year": 2000,
"month": 8,
"day": 8
}
}
]
}
retrograde-periods
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| planets | array<enum(15)> | yes | — |
Example request
{
"method": "retrograde-periods",
"dateRange": {
"from": {
"year": 2024,
"month": 1,
"day": 1
},
"to": {
"year": 2024,
"month": 6,
"day": 30
}
},
"planets": [
"Mercury"
]
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Mercury",
"startJd": 2460402.426744,
"endJd": 2460426.037591,
"clippedStart": false,
"clippedEnd": false,
"shadow": {
"pre_start": "2024-03-19T03:38:50Z",
"post_end": "2024-05-13T09:01:44Z"
}
}
]
}
stations
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| planets | array<enum(15)> | yes | — |
Example request
{
"method": "stations",
"dateRange": {
"from": {
"year": 2024,
"month": 1,
"day": 1
},
"to": {
"year": 2024,
"month": 6,
"day": 30
}
},
"planets": [
"Mercury"
]
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Mercury",
"jdUT": 2460311.630254,
"stationType": "direct"
},
{
"planet": "Mercury",
"jdUT": 2460402.42674,
"stationType": "retrograde"
},
{
"planet": "Mercury",
"jdUT": 2460426.037595,
"stationType": "direct"
}
]
}
parallels
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| bodyPairs | array<object> | yes | — |
| kind | "parallel" | "contraparallel" | no | — |
Example request
{
"method": "parallels",
"dateRange": {
"from": {
"year": 2024,
"month": 2,
"day": 1
},
"to": {
"year": 2024,
"month": 3,
"day": 31
}
},
"bodyPairs": [
{
"a": "Sun",
"b": "Saturn"
}
]
}
Example response (captured; long values elided)
{
"events": [
{
"a": "Sun",
"b": "Saturn",
"kind": "parallel",
"jdUT": 2460364.820027
}
]
}
cazimi-combust
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| planets | array<"Mercury" | "Venus" | "Mars" | "Jupiter" | "Saturn"> | yes | — |
Example request
{
"method": "cazimi-combust",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 5,
"day": 31
}
},
"planets": [
"Mercury"
]
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Mercury",
"kind": "combust",
"startJd": 2460370.500001,
"endJd": 2460378.139032
},
{
"planet": "Mercury",
"kind": "under-beams",
"startJd": 2460370.500001,
"endJd": 2460388.740983
},
{
"planet": "Mercury",
"kind": "under-beams",
"startJd": 2460399.375604,
"endJd": 2460423.430146
},
{
"planet": "Mercury",
"kind": "combust",
"startJd": 2460407.270852,
"endJd": 2460417.451959
},
{
"planet": "Mercury",
"kind": "cazimi",
"startJd": 2460412.29667,
"endJd": 2460412.62388
},
{
"planet": "Mercury",
"kind": "under-beams",
"startJd": 2460460.773645,
"endJd": 2460461.500001
}
]
}
planetary-conjunctions
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| bodyPairs | array<object> | yes | — |
| atDegree | number | no | min 0, max 360 |
Example request
{
"method": "planetary-conjunctions",
"dateRange": {
"from": {
"year": 2024,
"month": 5,
"day": 1
},
"to": {
"year": 2024,
"month": 6,
"day": 30
}
},
"bodyPairs": [
{
"a": "Venus",
"b": "Jupiter"
}
]
}
Example response (captured; long values elided)
{
"events": [
{
"a": "Venus",
"b": "Jupiter",
"jdUT": 2460453.853589
}
]
}
fixed-star-alignments
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| planets | array<enum(15)> | yes | — |
| stars | array<string> | no | — |
| orbDeg | number | no | min 0.1, max 5 |
Example request
{
"method": "fixed-star-alignments",
"dateRange": {
"from": {
"year": 2024,
"month": 8,
"day": 15
},
"to": {
"year": 2024,
"month": 10,
"day": 31
}
},
"planets": [
"Sun"
]
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Sun",
"star": "Regulus",
"jdUT": 2460545.295393,
"planetRetrograde": false
},
{
"planet": "Sun",
"star": "Denebola",
"jdUT": 2460567.785742,
"planetRetrograde": false
},
{
"planet": "Sun",
"star": "Spica",
"jdUT": 2460600.569921,
"planetRetrograde": false
},
{
"planet": "Sun",
"star": "Arcturus",
"jdUT": 2460600.964567,
"planetRetrograde": false
}
]
}
oob-periods
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| planets | array<enum(15)> | yes | — |
Example request
{
"method": "oob-periods",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 3,
"day": 31
}
},
"planets": [
"Moon"
]
}
Example response (captured; long values elided)
{
"events": [
{
"planet": "Moon",
"startJd": 2460372.00934,
"endJd": 2460376.957338,
"maxDeclination": -28.490709
},
{
"planet": "Moon",
"startJd": 2460384.558717,
"endJd": 2460389.843263,
"maxDeclination": 28.537078
},
{
"planet": "Moon",
"startJd": 2460399.234315,
"endJd": 2460400.500001,
"maxDeclination": -27.094635
}
]
}
critical-aspects-to-degree
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| targetLongitude | number | yes | min 0, max 360 |
| bodies | array<enum(15)> | yes | — |
| aspectAngles | any | "major" | array | no | — |
Example request
{
"method": "critical-aspects-to-degree",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 3,
"day": 31
}
},
"targetLongitude": 280,
"bodies": [
"Sun"
]
}
Example response (captured; long values elided)
{
"events": [
{
"body": "Sun",
"angle": 90,
"jdUT": 2460399.725202
}
]
}
fertility-window
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| natal.year | integer | yes | min -4000, max 4000, int |
| natal.month | integer | yes | min 1, max 12, int |
| natal.day | integer | yes | min 1, max 31, int |
| natal.hour | integer | yes | min 0, max 23, int |
| natal.minute | integer | yes | min 0, max 59, int |
| natal.second | integer | no | min 0, max 59, int |
| natal.latitude | number | yes | min -90, max 90 |
| natal.longitude | number | yes | min -180, max 180 |
| natal.timezone | number | yes | min -12, max 14 |
| natal.unknownTime | boolean | no | — |
Example request
{
"method": "fertility-window",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 4,
"day": 30
}
},
"natal": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
}
}
Example response (captured; long values elided)
{
"windows": [
{
"centerJd": 2460383.667699,
"startJd": 2460381.667699,
"endJd": 2460385.667699
},
{
"centerJd": 2460413.17098,
"startJd": 2460411.17098,
"endJd": 2460415.17098
}
]
}
biodynamic-gardening
| Field | Type | Required | Constraints |
|---|---|---|---|
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| plantPart | "root" | "leaf" | "flower" | "fruit" | no | — |
| nodeWindowHours | number | no | min 0, max 48 |
| perigeeWindowHours | number | no | min 0, max 48 |
| eclipseWindowHours | number | no | min 0, max 72 |
Example request
{
"method": "biodynamic-gardening",
"dateRange": {
"from": {
"year": 2024,
"month": 3,
"day": 1
},
"to": {
"year": 2024,
"month": 3,
"day": 14
}
}
}
Example response (captured; long values elided)
{
"periods": [
{
"startJd": 2460370.500001,
"endJd": 2460371.899472,
"constellation": "Libra",
"element": "air",
"plantPart": "flower"
},
{
"startJd": 2460371.899472,
"endJd": 2460374.333326,
"constellation": "Scorpius",
"element": "water",
"plantPart": "leaf"
},
{
"startJd": 2460374.333326,
"endJd": 2460376.460172,
"constellation": "Sagittarius",
"element": "fire",
"plantPart": "fruit"
},
{
"startJd": 2460376.460172,
"endJd": 2460378.31587,
"constellation": "Capricornus",
"element": "earth",
"plantPart": "root"
},
{
"startJd": 2460378.31587,
"endJd": 2460379.999654,
"constellation": "Aquarius",
"element": "air",
"plantPart": "flower"
},
{
"startJd": 2460379.999654,
"endJd": 2460382.519407,
"constellation": "Pisces",
"element": "water",
"plantPart": "leaf"
},
{
"startJd": 2460382.519407,
"endJd": 2460383.500001,
"constellation": "Aries",
"element": "fire",
"plantPart": "fruit"
}
],
"unfavorable": [
{
"kind": "perigee",
"centerJd": 2460379.790251,
"startJd": 2460379.290251,
"endJd": 2460380.290251
},
{
"kind": "node",
"centerJd": 2460381.553746,
"startJd": 2460381.053746,
"endJd": 2460382.053746
}
]
}
progressed-lunations
| 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 | — |
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| phases | any | 4 | 8 | no | — |
Example request
{
"method": "progressed-lunations",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"dateRange": {
"from": {
"year": 2020,
"month": 1,
"day": 1
},
"to": {
"year": 2026,
"month": 1,
"day": 1
}
}
}
Example response (captured; long values elided)
{
"events": [
{
"phase": "first-quarter",
"jdUT": 2459680.28179,
"progressedJdUT": 2447925.272512,
"date": {
"year": 2022,
"month": 4,
"day": 10
}
}
]
}