Annual Profections API: Find Your Lord of the Year
Calculate annual profections and the lord of the year from any birth chart with one API call. See the formula, real response, and no-code widget.
TL;DR
- Annual profections are the Hellenistic time-lord technique: each completed year of life advances your rising sign by one whole sign, naming a profected house, a profected sign, and a lord of the year.
- The profected house is (age mod 12) + 1, so ages 0, 12, and 24 all return to house 1, and the lord of the year is the traditional ruler of the profected sign.
- One authenticated call to POST /astrology/profections returns the age, profected house and sign, the lord of the year, and where that lord sits natally.
- Ship the lord-of-the-year card on any page with the drop-in profection-card widget, no backend required.
What is my lord of the year is one of the most searched questions in traditional astrology, yet almost no API returns a direct answer. Annual profections are the Hellenistic time-lord technique that assigns each year of life to a single house, sign, and ruling planet, and that ruling planet, the lord of the year, becomes the headline of any yearly forecast. Building it by hand means modular age arithmetic, whole sign house logic, and a classical rulership table that predates the modern outer planets. This guide walks the exact technique, then shows a single API call that returns the profected house, the profected sign, the lord of the year, and where that lord sits in the natal chart, all captured from a real production response.
What are annual profections and the lord of the year?
Annual profections are an age-driven timing technique from Hellenistic astrology that activates one house of the birth chart each year. At age 0 the technique profects the first whole sign house, the sign holding the Ascendant. Every completed year advances the activation one whole sign in zodiacal order. The traditional ruler of the activated sign becomes the lord of the year, the planet whose natal condition sets the tone of the twelve months ahead.
Because the wheel has twelve signs, the cycle repeats every twelve years. Ages 0, 12, 24, 36, and 48 all return to the first house and the Ascendant sign, which is why traditional astrologers read those birthdays as fresh chapters of the same story. The technique is prized for being fast and deterministic: it needs only an accurate Ascendant and an age, no transiting positions, so the same birth data and target date always produce the same lord of the year. Profections are distinct from solar and lunar return charts, which recompute a full sky at the moment a body comes back to its natal degree.
The profected house. Age 0 profects house 1 (the rising sign). The activation advances one whole sign per completed year and repeats every twelve years.
Ready to ship the lord of the year? The Astrology API returns the full profection in one call. See pricing.
How is the profected house calculated from age?
The profected house is (age mod 12) + 1, where age is the completed whole years from birth to the target date. Age 0 is the birth year and profects the first house. A birthday that has not yet arrived does not count, so the profection year turns over on each birthday. Because the modulo wraps at twelve, the sequence cycles from house 1 up to 12, then back to house 1.
The profected sign follows the same step. Advance the Ascendant sign by (age mod 12) signs in zodiacal order and you land on the profected sign. Take the verified example: a birth on 1990-07-15 evaluated for a target date of 2026-01-01 gives a completed age of 35. Then 35 mod 12 is 11, and 11 + 1 is house 12. Advancing the Ascendant eleven signs lands the profection on Libra, so house 12 in Libra is the activated combination for that year.
The whole procedure is four steps:
- Compute completed whole years from the birth date to the target date.
- profected house = (age mod 12) + 1.
- profected sign = Ascendant sign advanced by (age mod 12) whole signs.
- lord of the year = the traditional ruler of the profected sign.
Which planet becomes your lord of the year?
The lord of the year is the traditional domicile ruler of the profected sign. Traditional astrology uses only the seven visible planets, so the rulership table predates Uranus, Neptune, and Pluto. Scorpio answers to Mars, Aquarius to Saturn, and Pisces to Jupiter, not to the modern outer planets. Once the profected sign is known, its classical ruler is fixed, and that planet is the lord of the year for the twelve months.
| Profected sign | Lord of the year (traditional ruler) |
|---|---|
| Aries, Scorpio | Mars |
| Taurus, Libra | Venus |
| Gemini, Virgo | Mercury |
| Cancer | Moon |
| Leo | Sun |
| Sagittarius, Pisces | Jupiter |
| Capricorn, Aquarius | Saturn |
The lord alone names the theme; its natal placement grounds it. The API reports the sign and house the lord occupies in the birth chart, computed with Roxy Ephemeris and verified against NASA JPL Horizons, so the reading can point to the exact area of life the year draws on. That accuracy is checked the same way every position is, documented on the public methodology page.
How do you call the Annual Profections API?
Annual profections are coordinate dependent, so start by resolving the birth place to coordinates and an IANA timezone, then post the birth moment and a target date. The endpoint is POST /astrology/profections. Send date, time, latitude, longitude, timezone, and targetDate, and the response returns the age, profected house, profected sign, the lord of the year, and the natal placement of that lord.
First resolve the city to coordinates:
curl -s "https://roxyapi.com/api/v2/location/search?q=New%20York" \
-H "X-API-Key: YOUR_KEY"
The first match returns the coordinates and timezone to feed into the profection call:
{
"city": "New York City",
"latitude": 40.71427,
"longitude": -74.00597,
"timezone": "America/New_York"
}
Now post the birth data and the target date:
curl -s -X POST https://roxyapi.com/api/v2/astrology/profections \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"date": "1990-07-15",
"time": "14:30:00",
"latitude": 40.71427,
"longitude": -74.00597,
"timezone": "America/New_York",
"targetDate": "2026-01-01"
}'
const res = await fetch("https://roxyapi.com/api/v2/astrology/profections", {
method: "POST",
headers: {
"X-API-Key": process.env.ROXYAPI_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
date: "1990-07-15",
time: "14:30:00",
latitude: 40.71427,
longitude: -74.00597,
timezone: "America/New_York",
targetDate: "2026-01-01",
}),
});
const profection = await res.json();
The timezone field accepts an IANA name such as America/New_York and is coerced to the correct offset, including daylight saving, so you never hand-calculate a numeric UTC offset. An optional houseSystem field defaults to placidus and changes only where the lord is reported to sit natally; the profection itself is always whole sign. Test it live in the API reference, where you paste your key and run the exact request above.
How do you read the profection response?
The response is a flat object built for a yearly report intro. For the example above the API returns age 35, profected house 12, profected sign Libra, and Venus as the lord of the year, with Venus sitting natally in Gemini in the eighth house. The birthDetails object echoes the birth input, and the interpretation and summary strings arrive ready to render.
{
"targetDate": "2026-01-01",
"age": 35,
"profectedHouse": 12,
"profectedSign": "Libra",
"lordOfYear": "Venus",
"lordNatalPosition": { "sign": "Gemini", "house": 8 },
"interpretation": "This profection year activates The Twelfth House in Libra, making Venus your lord of the year. The year takes its tone from solitude and inner reflection and from how Venus sits in your birth chart.",
"summary": "At age 35, the annual profection activates house 12 in Libra, making Venus the lord of the year for 2026-01-01."
}
The interpretation localizes with the ?lang= query across eight languages, native-speaker reviewed. The same call with ?lang=es returns a fully translated reading, not a machine gloss:
{
"interpretation": "Este año de profección activa tu Duodécima Casa en Libra, haciendo de Venus tu señor del año. El año toma su tono de soledad y reflexión interior y de cómo Venus se sitúa en tu carta natal.",
"summary": "A los 35 años, la profección anual activa la casa 12 en Libra, haciendo de Venus el señor del año para 2026-01-01."
}
A targetDate before the birth date returns HTTP 400 with the message targetDate must fall on or after the birth date. Age is counted in completed years, so a target on the exact birthday advances to the new profection year while the day before stays on the previous one. Validate the target against the birth date before sending, and surface that boundary in any birthday-driven UI.
How do you embed a lord-of-the-year card with no backend?
Drop the profection-card web component on any page and it fetches the endpoint and renders the lord-of-the-year card itself, no server code required. It authenticates with a publishable pk_ key that is safe to expose in the browser, with an optional origin allowlist, so the birth inputs go straight from the visitor to the API and back as a finished card.
This is the fastest path from zero to a live profection feature, and it uses the same POST /astrology/profections endpoint under the hood. The component sits alongside the rest of the drop-in visual layer: natal wheels, panchang, tarot, and numerology cards that render from the API response without a frontend build. Browse the full set and copy the embed on the widgets page. For a server-rendered stack you can call the endpoint directly and style the card yourself, but for a landing page or a practitioner site the widget is a single tag.
FAQ
What is my lord of the year?
Your lord of the year is the traditional ruling planet of the sign your annual profection activates. RoxyAPI computes it from your birth chart and a target date in one call to the Annual Profections endpoint, returning the profected house, the profected sign, the lord of the year, and where that planet sits in your natal chart.
How do you calculate annual profections?
The profected house is (age mod 12) + 1, counted in completed years from birth to the target date, and the profected sign is your rising sign advanced one whole sign per year. The lord of the year is the traditional ruler of that sign. The RoxyAPI Annual Profections endpoint returns all of these plus a ready-to-read interpretation in one request.
Is there an API for the lord of the year technique?
Yes. RoxyAPI ships a dedicated Annual Profections endpoint at POST /astrology/profections that returns the age, profected house and sign, the lord of the year, and its natal placement. It is one of 164 plus endpoints across 12 insight domains including Western astrology, Vedic astrology, forecast, and human design, all reachable with a single API key.
Does the profection use whole sign houses?
Yes. The profection itself is always whole sign: the activated house and sign advance from the rising sign regardless of house system. On RoxyAPI the optional houseSystem field, default placidus, changes only where the lord of the year is reported to sit in the natal chart, never the profection.
Can I show a lord-of-the-year card without a backend?
Yes. The RoxyAPI profection-card widget is a self-fetching web component that renders the card in the browser with a publishable key, so you can embed it with no server code. It calls the same Annual Profections endpoint and honors an origin allowlist for safe front-end use.
Conclusion
Annual profections turn a birth chart and a date into a single, memorable headline: the lord of the year. RoxyAPI returns that headline, the profected house and sign, and the natal placement of the lord in one authenticated call, captured here from a real production response. Start with the Astrology API and pick a plan on the pricing page.