astro_render_timeline
Time-aligned visualizations — birthday, dasha, decennials, circumambulations, time-map.
- Layer: render
- Methods: birthday, dasha, time-map, decennials, circumambulations
- Free tier: —
- Paid tier: birthday, dasha, time-map, decennials, circumambulations
Description
Time-aligned visualizations — birthday, dasha, decennials, circumambulations, time-map.
Methods:
birthday [Paid] — solar-return timeline (diamond markers) plus one row per labeled life event
dasha [Paid] — Vimshottari maha/antar-dasha period bands on a horizontal time axis
time-map [Paid] — entering→exact→leaving bars for transit-natal aspect windows over a date range
decennials [Paid] — Valens decennial cycle + month sub-period bands on a horizontal time axis
circumambulations [Paid] — term-lord distribution bands for the directed Ascendant/MC, with participation markers
Input schema
birthday
| 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 | — |
| lifeEvents | array<object> | no | — |
| dateRange.from | object | yes | — |
| dateRange.to | object | yes | — |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "birthday",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"dateRange": {
"from": {
"year": 2024,
"month": 1,
"day": 1
},
"to": {
"year": 2024,
"month": 12,
"day": 31
}
}
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1120 639\" width=\"1120\" height=\"639\">\n<defs>\n<path id=\"wm-admetos\" d… (107166 chars total)",
"rows": 2
}
Rendered example
dasha
| 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 | — |
| levels | any | 1 | 2 | no | — |
| atDate.year | integer | yes | int |
| atDate.month | integer | yes | min 1, max 12, int |
| atDate.day | integer | yes | min 1, max 31, int |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "dasha",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"dateRange": {
"from": {
"year": 2024,
"month": 1,
"day": 1
},
"to": {
"year": 2024,
"month": 12,
"day": 31
}
}
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 380\" width=\"760\" height=\"380\">\n<rect width=\"100%\" height=\"100%\"… (102612 chars total)",
"periods": [
{
"lord": "Saturn",
"startJd": 2460310.5,
"endJd": 2460675.5,
"level": 1
}
]
}
Rendered example
time-map
| 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 | — |
| bodyPairs | array<object> | yes | — |
| aspectAngles | array<number> | yes | — |
| orb | number | no | min 0.5, max 15 |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "time-map",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"dateRange": {
"from": {
"year": 2024,
"month": 1,
"day": 1
},
"to": {
"year": 2024,
"month": 12,
"day": 31
}
},
"bodyPairs": [
{
"a": "Jupiter",
"b": "Saturn"
}
],
"aspectAngles": [
0,
90,
180
]
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 313\" width=\"760\" height=\"313\">\n<defs>\n<path id=\"wm-admetos\" d=\"… (101029 chars total)",
"bars": []
}
Rendered example
decennials
| 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 | — |
| levels | any | 1 | 2 | no | — |
| apheta | enum(7) | no | — |
| cycles | integer | no | min 1, max 12, int |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "decennials",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"dateRange": {
"from": {
"year": 1990,
"month": 1,
"day": 1
},
"to": {
"year": 2040,
"month": 12,
"day": 31
}
}
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 378\" width=\"760\" height=\"378\">\n<rect width=\"100%\" height=\"100%\"… (106679 chars total)",
"apheta": "Sun",
"periods": [
{
"lord": "Sun",
"startJd": 2447893.000004,
"endJd": 2451763.000004,
"level": 1
},
{
"lord": "Saturn",
"startJd": 2451763.000004,
"endJd": 2455633.000004,
"level": 1
},
{
"lord": "Mercury",
"startJd": 2455633.000004,
"endJd": 2459503.000004,
"level": 1
},
{
"lord": "Venus",
"startJd": 2459503.000004,
"endJd": 2463373.000004,
"level": 1
},
{
"lord": "Moon",
"startJd": 2463373.000004,
"endJd": 2466519.5,
"level": 1
}
]
}
Rendered example
circumambulations
| 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 | — |
| significator | "Ascendant" | "Midheaven" | no | — |
| scheme | "lilly" | "egyptian" | no | — |
| maxYears | number | no | min 1, max 120 |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "circumambulations",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"dateRange": {
"from": {
"year": 1990,
"month": 1,
"day": 1
},
"to": {
"year": 2060,
"month": 12,
"day": 31
}
}
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 393\" width=\"760\" height=\"393\">\n<rect width=\"100%\" height=\"100%\"… (107606 chars total)",
"significator": "Ascendant",
"periods": [
{
"lord": "Mars",
"startJd": 2447893.000004,
"endJd": 2448070.390282,
"boundaryLongitude": null
},
{
"lord": "Saturn",
"startJd": 2448070.390282,
"endJd": 2448758.429529,
"boundaryLongitude": 26
},
{
"lord": "Venus",
"startJd": 2448758.429529,
"endJd": 2450215.093908,
"boundaryLongitude": 30
},
{
"lord": "Mercury",
"startJd": 2450215.093908,
"endJd": 2451600.578974,
"boundaryLongitude": 38
},
{
"lord": "Jupiter",
"startJd": 2451600.578974,
"endJd": 2453116.59286,
"boundaryLongitude": 45
},
{
"lord": "Saturn",
"startJd": 2453116.59286,
"endJd": 2454052.179546,
"boundaryLongitude": 52
},
{
"lord": "Mars",
"startJd": 2454052.179546,
"endJd": 2455044.862416,
"boundaryLongitude": 56
},
{
"lord": "Mercury",
"startJd": 2455044.862416,
"endJd": 2456935.367058,
"boundaryLongitude": 60
},
"… 8 more items"
],
"markers": [
{
"planet": "Jupiter",
"jd": 2466882.292209,
"distributor": "Mars",
"longitude": 95.148793
}
]
}
Rendered example