Zodiacal Releasing
GET /v1/zodiacal-releasing — Valens's releasing from a lot: sign-by-sign periods at up to four levels, with lords, angularity to Fortune, and the loosing of the bond.
Zodiacal Releasing
Zodiacal releasing (Valens, Anthology IV) walks the signs in order from the released lot's sign, the Lot of Spirit by default, each sign lasting its planetary years. Each deeper level divides the unit by twelve and starts again from its parent's sign, so a chapter of years holds months, a month holds 2.5-day units, and those hold 5-hour units. When the children of a long period complete a full circuit of the zodiac, the sequence jumps to the sign opposite the parent: the loosing of the bond. Periods whose sign is angular to the Lot of Fortune's are marked, the tenth being the peak.
Ask for one instant to get the period in force at each level, or for a range to get every period overlapping it as flat records, ready for a timeline.
GET /v1/zodiacal-releasing
POST /v1/zodiacal-releasingCredit cost: 2
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
datetime | string | One of datetime or jd | — | Natal moment, ISO 8601 UTC |
jd | number | One of datetime or jd | — | Natal moment as a Julian Day (UT1) |
lat, lon | number | Yes | — | Natal location, for the lots |
at | string | One of at or start+end | — | One instant, ISO 8601 UTC: returns the period in force at each level (or at_jd) |
start, end | string | One of at or start+end | — | A range, ISO 8601 UTC: returns every period overlapping it. end after start, capped by depth (below) (or start_jd, end_jd) |
from | string | No | part_of_spirit | The lot released from: part_of_spirit or part_of_fortune are the classical choices; any of the seven Hermetic lots, ascendant, midheaven, or a body is accepted. Only its sign matters |
max_level | number | No | 2 | Deepest level to return: 1 chapters, 2 adds months, 3 the 2.5-day units, 4 the 5-hour units |
bodies | string | No | planets | Bodies in the natal chart. The Sun and Moon are needed for Spirit and Fortune |
sidereal | string | No | — | Ayanamsha. The lots' signs, and so the walk, are then sidereal |
The walk
| Sign | Years | Sign | Years | Sign | Years |
|---|---|---|---|---|---|
| Aries | 15 | Leo | 19 | Sagittarius | 12 |
| Taurus | 8 | Virgo | 20 | Capricorn | 27 |
| Gemini | 20 | Libra | 8 | Aquarius | 30 |
| Cancer | 25 | Scorpio | 15 | Pisces | 12 |
A year is 360 days, fixed, which is what makes the nesting exact: a chapter of N years is exactly 12N months. Inside a period of sign S the next level begins from S and proceeds in order, each child lasting its own count of the smaller unit, the last child cut to the parent's end.
Loosing of the bond. The twelve signs total 211 units, so a parent of 18 years or more (Gemini, Cancer, Leo, Virgo, Capricorn, Aquarius) outlasts one full circuit of its children. When they have completed all twelve signs, at exactly unit 211, the next child does not return to S but begins at the sign opposite the parent and continues from there. That child carries loosing_of_bond. No parent is long enough for a second loosing. The top level has no parent and simply continues around the zodiac.
Angularity from Fortune. A period whose sign is the 1st, 4th, 7th, or 10th from the Lot of Fortune's sign, counted inclusively, is angular to Fortune, and the 10th is the peak. angle_from_fortune carries the count so the four are distinguishable. Without a Lot of Fortune in the chart (no Moon among bodies) the flag is unset on every period and warnings says so.
Range caps. The deeper the level the shorter the units, so the range a request may cover shrinks with max_level: 120 years at levels 1 and 2, 10 years at level 3, one year at level 4. A ten-day request at level 4 does not compute a lifetime; generation covers only the periods overlapping the range.
Nothing precedes birth. A range that begins earlier is cut to the birth instant, unflagged. An at before birth returns 400.
Response
{
"data": {
"from": "part_of_spirit",
"from_sign": "virgo",
"fortune_sign": "aquarius",
"max_level": 2,
"at": { "jd": 2461100.5, "datetime": "2026-03-01T00:00:00.000Z" },
"periods": [
{
"level": 1,
"sign": "scorpio",
"lord": "mars",
"angle_from_fortune": 10,
"loosing_of_bond": false,
"start": { "jd": 2459895.1, "datetime": "2022-11-11T14:24:00.000Z" },
"end": { "jd": 2465295.1, "datetime": "2037-08-24T14:24:00.000Z" },
"clamped_start": false,
"clamped_end": false
},
{
"level": 2,
"sign": "aquarius",
"lord": "saturn",
"angle_from_fortune": 1,
"loosing_of_bond": false,
"start": { "jd": 2461095.1, "datetime": "2026-02-23T14:24:00.000Z" },
"end": { "jd": 2461995.1, "datetime": "2028-08-11T14:24:00.000Z" },
"clamped_start": false,
"clamped_end": false
}
]
},
"meta": { "..." }
}| Field | Type | Description |
|---|---|---|
from | string | The point released from, as requested |
from_sign | string | Its natal sign: the first chapter |
fortune_sign | string | The Lot of Fortune's natal sign, which angularity counts from. Absent when the chart has no Lot of Fortune |
max_level | number | The deepest level returned |
at | instant | The instant asked about, as { jd, datetime }. Present for an at query |
start, end | instant | The range asked about. Present for a range query |
periods[].level | number | 1 for a chapter, 2–4 for the nested sub-periods |
periods[].sign | string | The period's sign |
periods[].lord | string | The sign's classical domicile ruler |
periods[].angle_from_fortune | number | 1, 4, 7, or 10 when the sign is that many signs from Fortune's, counted inclusively. Absent otherwise |
periods[].loosing_of_bond | boolean | This period begins the jump to the sign opposite its parent |
periods[].start, end | instant | When the period begins and ends |
periods[].clamped_start | boolean | start is the range's start, not the period's own |
periods[].clamped_end | boolean | end is the range's end, not the period's own |
Records are flat, ordered by start then level, so a renderer draws one track per level and recovers the nesting from time containment. An at query returns one whole period per level, never clamped.
Examples
The chapter and month right now
curl "https://api.morphemeris.com/v1/zodiacal-releasing?datetime=1990-06-15T14:30:00Z&lat=40.7&lon=-74&at=2026-03-01T00:00:00Z" \
-H "Authorization: Bearer morphemeris_live_YOUR_KEY"const res = await fetch(
"https://api.morphemeris.com/v1/zodiacal-releasing?datetime=1990-06-15T14:30:00Z&lat=40.7&lon=-74&at=2026-03-01T00:00:00Z",
{ headers: { Authorization: "Bearer morphemeris_live_YOUR_KEY" } }
);
const { data } = await res.json();
for (const p of data.periods) {
const peak = p.angle_from_fortune === 10 ? " (peak)" : p.angle_from_fortune ? ` (angular ${p.angle_from_fortune})` : "";
console.log(`L${p.level} ${p.sign} / ${p.lord}${peak}`);
}import requests
res = requests.get(
"https://api.morphemeris.com/v1/zodiacal-releasing",
params={
"datetime": "1990-06-15T14:30:00Z", "lat": 40.7, "lon": -74,
"at": "2026-03-01T00:00:00Z",
},
headers={"Authorization": "Bearer morphemeris_live_YOUR_KEY"},
)
periods = res.json()["data"]["periods"]A life's chapters from the Lot of Spirit
curl "https://api.morphemeris.com/v1/zodiacal-releasing?datetime=1990-06-15T14:30:00Z&lat=40.7&lon=-74&max_level=1&start=1990-06-15T14:30:00Z&end=2090-06-15T00:00:00Z" \
-H "Authorization: Bearer morphemeris_live_YOUR_KEY"Two months at the fourth level, from Fortune
curl "https://api.morphemeris.com/v1/zodiacal-releasing?datetime=1990-06-15T14:30:00Z&lat=40.7&lon=-74&from=part_of_fortune&max_level=4&start=2026-03-01T00:00:00Z&end=2026-05-01T00:00:00Z" \
-H "Authorization: Bearer morphemeris_live_YOUR_KEY"See Time Lords for the technique, Profections and Firdaria for the other two, Arabic Parts/Lots for the lots released from, and the time-lords guide for building a timeline from the records.