MCP 服务器

Western Astrology MCP Server by RoxyAPI

com.roxyapi/astrology
其他 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Calculates Western astrology natal charts, planetary positions, aspects, transits, horoscopes, synastry, and related interpretive data.

get_astrology_horoscope_sign_daily
Daily horoscope by zodiac sign - Transit-based editorial columns
A publish-ready column for any zodiac sign, built from the dated transits over it and returned with those events for fact-checking. The reading names the aspects, sign ingresses, lunations and retrograde stations driving it and reads each into the whole-sign houses of that sign, so every sign gets different content rather than one blurb reused twelve times. Alongside the column come overview, love, career, health, finance and advice, the active transits, Moon sign and phase, an energy rating, lucky number and color, and compatible signs. No language model is involved, so a given sign and date always returns the same text and a piece scheduled months ahead is the piece that runs. Content rolls over at midnight, by default UTC. Pass date for editorial scheduling, or timezone to roll over on a local clock. Composed in 8 languages (en, de, es, fr, hi, pt, ru, tr); any other lang code returns English. Daily horoscope API, zodiac forecast, sun sign horoscope, astrology prediction.
只读
输入模式
{'type': 'object', 'examples': [{'sign': 'aries'}], 'required': ['sign'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2026-04-03', 'description': 'Forecast date in YYYY-MM-DD format. Past and future dates are both supported, for editorial scheduling and backfill. Defaults to the current period in the timezone parameter.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'sign': {'enum': ['aries', 'taurus', 'gemini', 'cancer', 'leo', 'virgo', 'libra', 'scorpio', 'sagittarius', 'capricorn', 'aquarius', 'pisces'], 'type': 'string', 'example': 'aries', 'description': 'Zodiac sign, case-insensitive (e.g., aries, Aries, ARIES all work).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'type': 'string', 'example': 'America/New_York', 'description': 'Selects which period counts as current when date is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on each day. Pass the timezone of the end user to roll over on their local clock instead. Ignored when date is set. Accepts an IANA name (e.g. "America/New_York"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").'}}}
输出模式
{'type': 'object', 'required': ['sign', 'date', 'overview', 'love', 'career', 'health', 'finance', 'advice', 'column', 'events', 'luckyNumber', 'luckyColor', 'compatibleSigns', 'activeTransits', 'moonSign', 'moonPhase', 'energyRating'], 'properties': {'date': {'type': 'string'}, 'love': {'type': 'string'}, 'sign': {'type': 'string'}, 'advice': {'type': 'string'}, 'career': {'type': 'string'}, 'column': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'at', 'bodies', 'house'], 'properties': {'at': {'type': 'string'}, 'sign': {'type': 'string'}, 'type': {'enum': ['aspect', 'sign-ingress', 'retrograde-station', 'lunar-phase', 'eclipse', 'solar-season'], 'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'aspect': {'type': 'string'}, 'bodies': {'type': 'array', 'items': {'type': 'string'}}, 'through': {'type': 'string'}}}}, 'health': {'type': 'string'}, 'finance': {'type': 'string'}, 'moonSign': {'type': 'string'}, 'overview': {'type': 'string'}, 'moonPhase': {'type': 'string'}, 'luckyColor': {'type': 'string'}, 'luckyNumber': {'type': 'number'}, 'energyRating': {'type': 'number', 'maximum': 10, 'minimum': 1}, 'activeTransits': {'type': 'array', 'items': {'type': 'string'}}, 'compatibleSigns': {'type': 'array', 'items': {'type': 'string'}}}}
get_astrology_horoscope_sign_monthly
Monthly horoscope by zodiac sign - Editorial column with key dates
A month-long column for any zodiac sign, plus a week-by-week breakdown and dated key dates a calendar page renders directly. The column names the major aspects, slow-planet sign changes, lunations and stations of the month, and reads each into the whole-sign houses of that sign, and those events come back beside the prose with their exact instants, so a piece can be checked against NASA JPL Horizons or the US Naval Observatory before it runs. Key dates are the real New Moon, Full Moon and retrograde instants, never approximations. Alongside the column come overview, love, career, health, finance and advice. Pass any date inside a month to retrieve that month, or timezone to roll over on a local clock. Composed in 8 languages (en, de, es, fr, hi, pt, ru, tr); any other lang code returns English. Monthly horoscope API, zodiac monthly forecast, astrology monthly prediction.
只读
输入模式
{'type': 'object', 'examples': [{'sign': 'aries'}], 'required': ['sign'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2026-04-03', 'description': 'Any date inside the target month, in YYYY-MM-DD format. The forecast covers the whole calendar month containing it. Defaults to the current period in the timezone parameter.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'sign': {'enum': ['aries', 'taurus', 'gemini', 'cancer', 'leo', 'virgo', 'libra', 'scorpio', 'sagittarius', 'capricorn', 'aquarius', 'pisces'], 'type': 'string', 'example': 'aries', 'description': 'Zodiac sign, case-insensitive (e.g., aries, Aries, ARIES all work).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'type': 'string', 'example': 'America/New_York', 'description': 'Selects which period counts as current when date is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on the 1st. Pass the timezone of the end user to roll over on their local clock instead. Ignored when date is set. Accepts an IANA name (e.g. "America/New_York"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").'}}}
输出模式
{'type': 'object', 'required': ['sign', 'month', 'overview', 'love', 'career', 'health', 'finance', 'advice', 'column', 'events', 'weekByWeek', 'keyDates', 'luckyNumbers', 'luckyColor', 'compatibleSigns'], 'properties': {'love': {'type': 'string'}, 'sign': {'type': 'string'}, 'month': {'type': 'string'}, 'advice': {'type': 'string'}, 'career': {'type': 'string'}, 'column': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'at', 'bodies', 'house'], 'properties': {'at': {'type': 'string'}, 'sign': {'type': 'string'}, 'type': {'enum': ['aspect', 'sign-ingress', 'retrograde-station', 'lunar-phase', 'eclipse', 'solar-season'], 'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'aspect': {'type': 'string'}, 'bodies': {'type': 'array', 'items': {'type': 'string'}}, 'through': {'type': 'string'}}}}, 'health': {'type': 'string'}, 'finance': {'type': 'string'}, 'keyDates': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'event'], 'properties': {'date': {'type': 'string'}, 'event': {'type': 'string'}}}}, 'overview': {'type': 'string'}, 'luckyColor': {'type': 'string'}, 'weekByWeek': {'type': 'array', 'items': {'type': 'object', 'required': ['week', 'focus', 'advice'], 'properties': {'week': {'type': 'number'}, 'focus': {'type': 'string'}, 'advice': {'type': 'string'}}}}, 'luckyNumbers': {'type': 'array', 'items': {'type': 'number'}}, 'compatibleSigns': {'type': 'array', 'items': {'type': 'string'}}}}
get_astrology_horoscope_sign_weekly
Weekly horoscope by zodiac sign - Seven-day editorial column
A Monday to Sunday column for any zodiac sign, naming the transits that perfect during the week and the days they fall on. Each event is read into the whole-sign houses of that sign, so content is unique per sign, and the dated events come back beside the prose so an editor can check a piece before it runs. Alongside the column come overview, love, career, health, finance and advice, plus lucky days, lucky numbers and compatible signs. No language model is involved, so the same sign and week always returns the same text. Pass any date inside a week to retrieve that week, or timezone to roll over on a local clock. Composed in 8 languages (en, de, es, fr, hi, pt, ru, tr); any other lang code returns English. Weekly horoscope API, zodiac weekly forecast, astrology weekly prediction.
只读
输入模式
{'type': 'object', 'examples': [{'sign': 'aries'}], 'required': ['sign'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2026-04-03', 'description': 'Any date inside the target week, in YYYY-MM-DD format. The forecast covers the Monday to Sunday week containing it. Defaults to the current period in the timezone parameter.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'sign': {'enum': ['aries', 'taurus', 'gemini', 'cancer', 'leo', 'virgo', 'libra', 'scorpio', 'sagittarius', 'capricorn', 'aquarius', 'pisces'], 'type': 'string', 'example': 'aries', 'description': 'Zodiac sign, case-insensitive (e.g., aries, Aries, ARIES all work).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'type': 'string', 'example': 'America/New_York', 'description': 'Selects which period counts as current when date is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on each Monday. Pass the timezone of the end user to roll over on their local clock instead. Ignored when date is set. Accepts an IANA name (e.g. "America/New_York"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").'}}}
输出模式
{'type': 'object', 'required': ['sign', 'week', 'overview', 'love', 'career', 'health', 'finance', 'advice', 'column', 'events', 'luckyDays', 'luckyNumbers', 'compatibleSigns'], 'properties': {'love': {'type': 'string'}, 'sign': {'type': 'string'}, 'week': {'type': 'string'}, 'advice': {'type': 'string'}, 'career': {'type': 'string'}, 'column': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'at', 'bodies', 'house'], 'properties': {'at': {'type': 'string'}, 'sign': {'type': 'string'}, 'type': {'enum': ['aspect', 'sign-ingress', 'retrograde-station', 'lunar-phase', 'eclipse', 'solar-season'], 'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'aspect': {'type': 'string'}, 'bodies': {'type': 'array', 'items': {'type': 'string'}}, 'through': {'type': 'string'}}}}, 'health': {'type': 'string'}, 'finance': {'type': 'string'}, 'overview': {'type': 'string'}, 'luckyDays': {'type': 'array', 'items': {'type': 'string'}}, 'luckyNumbers': {'type': 'array', 'items': {'type': 'number'}}, 'compatibleSigns': {'type': 'array', 'items': {'type': 'string'}}}}
get_astrology_horoscope_sign_yearly
Yearly horoscope by zodiac sign - Year ahead forecast with themes, key periods, eclipses and retrogrades
Get the year ahead for any zodiac sign, as a long-form column plus the structured arrays a year-ahead page is built from: the slow-body themes that set the backdrop, a dated key period for each of the twelve houses, the best month for love, career, health and finance, and every eclipse and every retrograde and direct station with the house it falls in for this sign. Love, career, health, finance and advice cover the whole year, and the dated events behind the copy come back beside it so an editor can check the piece before it runs. Omit the year for the one in progress, or pass any year from 1900 to 2100 to build an archive or a forecast ahead of time. Yearly horoscope API, year ahead astrology, annual zodiac forecast, eclipse and retrograde calendar.
只读
输入模式
{'type': 'object', 'examples': [{'sign': 'aries'}], 'required': ['sign'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'sign': {'enum': ['aries', 'taurus', 'gemini', 'cancer', 'leo', 'virgo', 'libra', 'scorpio', 'sagittarius', 'capricorn', 'aquarius', 'pisces'], 'type': 'string', 'example': 'aries', 'description': 'Zodiac sign, case-insensitive (e.g., aries, Aries, ARIES all work).'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2100, 'minimum': 1900, 'description': 'Calendar year to forecast, 1900 to 2100. Defaults to the current year in the timezone parameter.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'type': 'string', 'example': 'America/New_York', 'description': 'Selects which year counts as current when year is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on January 1. Pass the timezone of the end user to roll over on their local clock instead. Ignored when year is set. Accepts an IANA name (e.g. "America/New_York"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").'}}}
输出模式
{'type': 'object', 'required': ['sign', 'year', 'overview', 'love', 'career', 'health', 'finance', 'advice', 'column', 'events', 'themes', 'eclipses', 'retrogrades', 'keyPeriods', 'bestPeriods', 'luckyNumbers', 'luckyColor', 'compatibleSigns'], 'properties': {'love': {'type': 'string'}, 'sign': {'type': 'string'}, 'year': {'type': 'integer'}, 'advice': {'type': 'string'}, 'career': {'type': 'string'}, 'column': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'at', 'bodies', 'house'], 'properties': {'at': {'type': 'string'}, 'sign': {'type': 'string'}, 'type': {'enum': ['aspect', 'sign-ingress', 'retrograde-station', 'lunar-phase', 'eclipse', 'solar-season'], 'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'aspect': {'type': 'string'}, 'bodies': {'type': 'array', 'items': {'type': 'string'}}, 'through': {'type': 'string'}}}}, 'health': {'type': 'string'}, 'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['body', 'sign', 'house', 'theme', 'from', 'to'], 'properties': {'to': {'type': 'string'}, 'body': {'type': 'string'}, 'from': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'theme': {'type': 'string'}}}}, 'finance': {'type': 'string'}, 'eclipses': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'kind', 'house', 'theme'], 'properties': {'date': {'type': 'string'}, 'kind': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'theme': {'type': 'string'}}}}, 'overview': {'type': 'string'}, 'keyPeriods': {'type': 'array', 'items': {'type': 'object', 'required': ['from', 'to', 'body', 'house', 'focus'], 'properties': {'to': {'type': 'string'}, 'body': {'type': 'string'}, 'from': {'type': 'string'}, 'focus': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}}}}, 'luckyColor': {'type': 'string'}, 'bestPeriods': {'type': 'object', 'properties': {'love': {'type': 'object', 'required': ['from', 'to', 'count'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'count': {'type': 'integer'}}}, 'career': {'type': 'object', 'required': ['from', 'to', 'count'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'count': {'type': 'integer'}}}, 'health': {'type': 'object', 'required': ['from', 'to', 'count'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'count': {'type': 'integer'}}}, 'finance': {'type': 'object', 'required': ['from', 'to', 'count'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'count': {'type': 'integer'}}}}}, 'retrogrades': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'body', 'direction', 'house', 'theme'], 'properties': {'body': {'type': 'string'}, 'date': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'theme': {'type': 'string'}, 'direction': {'type': 'string'}}}}, 'luckyNumbers': {'type': 'array', 'items': {'type': 'number'}}, 'compatibleSigns': {'type': 'array', 'items': {'type': 'string'}}}}
get_astrology_moon_phase_calendar_year_month
Get lunar calendar - Moon phases for entire month
Get complete lunar calendar showing moon phase and illumination for every day of a specific month. Perfect for creating moon phase calendars, lunar planners, and astrology event schedules.
只读
输入模式
{'type': 'object', 'examples': [{'year': 2026, 'month': 3}], 'required': ['year', 'month'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2649, 'minimum': 1551, 'description': 'Calendar year, 1551 to 2649.'}, 'month': {'type': 'integer', 'example': 3, 'maximum': 12, 'minimum': 1, 'description': 'Calendar month (1-12). 1 = January, 12 = December.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
输出模式
{'type': 'object', 'required': ['year', 'month', 'monthName', 'calendar'], 'properties': {'year': {'type': 'number'}, 'month': {'type': 'number'}, 'calendar': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'phase', 'illumination'], 'properties': {'date': {'type': 'string'}, 'phase': {'type': 'string'}, 'illumination': {'type': 'number'}}}}, 'monthName': {'type': 'string'}}}
get_astrology_moon_phase_current
Get current moon phase - Lunar phase calculator with zodiac sign
Get current moon phase with illumination percentage, lunar age (days since new moon), zodiac sign, and distance from Earth. Returns phase name (New Moon, Waxing Crescent Moon, First Quarter Moon, Waxing Gibbous Moon, Full Moon, Waning Gibbous Moon, Last Quarter Moon, Waning Crescent Moon) plus exact lunar position. Perfect for moon tracking apps, lunar calendars, astrology widgets, and gardening by moon phase tools.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2025-12-18', 'description': 'Date in YYYY-MM-DD format. Defaults to today if omitted.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '12:00:00', 'description': 'Time in 24-hour HH:MM:SS format. Defaults to 12:00:00 (noon). Moon moves ~13 degrees per day so time affects phase precision.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'type': 'string', 'example': 'America/New_York', 'description': 'IANA name (e.g. "America/New_York", "Europe/London"), decimal hours (e.g. -5 for EST, 1 for CET), or a fixed UTC offset (e.g. "-05:00"). IANA resolved to the DST-correct offset for the given date. Defaults to 0 (UTC).'}}}
输出模式
{'type': 'object', 'required': ['date', 'phase', 'illumination', 'age', 'sign', 'degree', 'distance'], 'properties': {'age': {'type': 'number'}, 'date': {'type': 'string'}, 'sign': {'type': 'string'}, 'phase': {'type': 'string'}, 'degree': {'type': 'number'}, 'meaning': {'type': 'object', 'required': ['name', 'symbol', 'description', 'keywords', 'energy', 'illumination'], 'properties': {'name': {'type': 'string'}, 'energy': {'enum': ['waxing', 'waning', 'new', 'full'], 'type': 'string'}, 'symbol': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'string'}, 'illumination': {'type': 'string'}}}, 'distance': {'type': 'number'}, 'illumination': {'type': 'number'}}}
get_astrology_moon_phase_upcoming
Get upcoming moon phases - Next new moon, full moon, quarters
Get upcoming moon phase transitions (New Moon, First Quarter, Full Moon, Last Quarter) for the next weeks/months. Returns dates and phase names for each lunar quarter. Perfect for lunar event calendars, moon phase widgets, and astrology planning tools.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'count': {'type': 'integer', 'default': 8, 'example': 8, 'maximum': 20, 'minimum': 1, 'description': 'Number of upcoming moon phase transitions to return (1-20). Defaults to 8.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'startDate': {'type': 'string', 'format': 'date', 'example': '2025-12-18', 'description': 'Start date in YYYY-MM-DD format. Defaults to today if omitted.'}}}
输出模式
{'type': 'object', 'required': ['phases'], 'properties': {'phases': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'phase'], 'properties': {'date': {'type': 'string'}, 'phase': {'type': 'string'}}}}}}
get_astrology_planet_meanings
Get all planet meanings - Complete astrology planet interpretations list
Returns all 14 astrological bodies (the 10 classical planets Sun through Pluto, the lunar nodes, Chiron, and Black Moon Lilith) with essential meanings: name, symbol, tagline, category (personal/social/generational), ruling sign, and short descriptions. Perfect for astrology reference apps, planet meaning widgets, birth chart interpretation tools, astrology learning platforms, planetary keywords reference, and zodiac planet guides. Use GET /planet-meanings/{id} for complete profiles with detailed interpretations, keywords, temperature, and dignities (rulership/detriment/exaltation/fall).
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
get_astrology_planet_meanings_id
Get planet meaning details - Complete astrology planet interpretation
Retrieve comprehensive planet interpretation for any astrological planet using lowercase ID (e.g., "sun", "moon") or case-insensitive name (e.g., "Sun", "MOON"). Returns complete astrology meaning including: symbol, tagline, category (personal/social/generational), temperature, orbital period, retrograde status, dignities (rulership/detriment/exaltation/fall), positive and negative keywords, and short/long descriptions. Perfect for birth chart readings, planet meaning lookups, astrology education, natal chart interpretation, transit meanings, planetary symbolism reference, and keyword-based interpretations.
只读
输入模式
{'type': 'object', 'examples': [{'id': 'sun'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'example': 'sun', 'description': 'Planet ID (lowercase, e.g., sun, moon, mercury) or display name (case-insensitive, e.g., Sun, MOON). Spaces, hyphens and underscores are interchangeable, so the two lunar nodes answer to north-node and south-node as well as to their ids north node and south node, and Black Moon Lilith answers to black-moon-lilith as well as to lilith.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
输出模式
{'type': 'object', 'required': ['id', 'name', 'symbol', 'tagline', 'temperature', 'orbit', 'keywords', 'description'], 'properties': {'id': {'type': 'string'}, 'fall': {'type': 'string'}, 'name': {'type': 'string'}, 'orbit': {'type': 'string'}, 'symbol': {'type': 'string'}, 'tagline': {'type': 'string'}, 'category': {'type': 'string'}, 'keywords': {'type': 'object', 'required': ['positive', 'negative'], 'properties': {'negative': {'type': 'array', 'items': {'type': 'string'}}, 'positive': {'type': 'array', 'items': {'type': 'string'}}}}, 'detriment': {'type': 'string'}, 'rulership': {'type': 'string'}, 'exaltation': {'type': 'string'}, 'exultation': {'type': 'string'}, 'retrograde': {'type': 'boolean'}, 'description': {'type': 'object', 'required': ['short', 'long'], 'properties': {'long': {'type': 'string'}, 'short': {'type': 'string'}}}, 'temperature': {'type': 'string'}}}
get_astrology_signs
Get all zodiac signs - Complete zodiac signs list with dates and elements
Returns all 12 tropical zodiac signs (Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces) with essential information: name, symbol, element (fire, earth, air, water), date ranges, and short descriptions. Perfect for zodiac sign lists, horoscope widgets, birth chart calculators, astrology apps, star sign selectors, and zodiac reference tools. Use GET /signs/{id} for complete zodiac sign profiles with personality traits, compatibility, and detailed characteristics.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
get_astrology_signs_id
Get zodiac sign details - Complete astrology sign profile with personality traits
Retrieve comprehensive zodiac sign information for any astrological sign using lowercase ID (e.g., "aries") or case-insensitive name (e.g., "Aries", "ARIES"). Returns complete astrology profile including: element (fire, earth, air, water), modality (cardinal, fixed, mutable), ruling planet, birth date ranges, personality traits (positive, negative, keywords), zodiac sign descriptions, famous people with this sign, key strengths and qualities, sign motto, greatest gifts, challenges, and secret weapon. Perfect for horoscope readings, zodiac compatibility checks, birth chart interpretations, astrology blogs, star sign personality analysis, and zodiac meaning databases.
只读
输入模式
{'type': 'object', 'examples': [{'id': 'aries'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'example': 'aries', 'description': 'Sign ID (lowercase, e.g., aries, taurus) or display name (case-insensitive, e.g., Aries, TAURUS).'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
输出模式
{'type': 'object', 'required': ['id', 'name', 'symbolName', 'element', 'modality', 'rulingPlanet', 'dates', 'keywords', 'description', 'compatibleSigns'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'dates': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}}}, 'gifts': {'type': 'string'}, 'motto': {'type': 'string'}, 'famous': {'type': 'array', 'items': {'type': 'string'}}, 'symbol': {'type': 'string'}, 'weapon': {'type': 'string'}, 'element': {'enum': ['fire', 'earth', 'air', 'water'], 'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'modality': {'enum': ['cardinal', 'fixed', 'mutable'], 'type': 'string'}, 'strengths': {'type': 'array', 'items': {'type': 'string'}}, 'challenges': {'type': 'string'}, 'symbolName': {'type': 'string'}, 'description': {'type': 'object', 'required': ['short', 'long'], 'properties': {'long': {'type': 'string'}, 'short': {'type': 'string'}}}, 'rulingPlanet': {'type': 'string'}, 'compatibleSigns': {'type': 'array', 'items': {'type': 'string'}}, 'elementLocalized': {'type': 'string'}, 'modalityLocalized': {'type': 'string'}, 'rulingPlanetLocalized': {'type': 'string'}}}
post_astrology_arabic_lots
Arabic lots calculator - seven Hermetic parts including Part of Fortune and Spirit
Calculate the seven Hermetic lots (Arabic parts) for any birth moment. The lots are the Part of Fortune, Part of Spirit, Eros, Necessity, Courage, Victory, and Nemesis. Each lot is a sensitive point projected by arc from the Ascendant, with the day or night formula applied automatically from the chart sect. Returns the zodiac sign, degree, exact longitude, the arc used, and a plain language interpretation per lot, for Hellenistic and traditional astrology apps. Built on accurate tropical chart positions, no astronomy expertise needed.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system used to place the Sun, which determines the chart sect (day when the Sun is above the horizon, night when below) and therefore which lot formula applies. Placidus (default), Whole Sign, Equal, or Koch.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'sect', 'lots', 'summary'], 'properties': {'lots': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'longitude', 'sign', 'degree', 'formula', 'interpretation'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'formula': {'type': 'string'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'nameLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}}}}, 'sect': {'enum': ['day', 'night'], 'type': 'string'}, 'summary': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}}}
post_astrology_aspect_patterns
Detect aspect patterns - Grand Trine, Kite, T-Square, Grand Cross, Yod, Mystic Rectangle, Stellium
Identify classical Western astrology multi-planet configurations in a birth chart. Returns Grand Trines (with element), Kites (with apex), T-Squares (with apex and modality), Grand Crosses (with modality), Yods (Finger of Fate, with apex), Mystic Rectangles, and Stelliums. Each pattern carries a tightness score (0-100), dissociate flag for out-of-sign configurations, and a one-line interpretation suitable for chart reports. Disambiguation is built in: a Grand Cross suppresses its contained T-Squares, a Kite suppresses its underlying Grand Trine. Useful for personalized natal report engines, astrology chatbots, AI agents that interpret chart geometry, and editorial chart-pattern callouts.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'include': {'type': 'string', 'example': '', 'description': 'Comma-separated list of optional bodies to include beyond the classical 10 planets. Valid tokens (case-insensitive): chiron, northNode (also accepts north_node, north-node, northnode). Empty by default.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'strictOrbs': {'type': 'string', 'example': 'false', 'description': 'Use tighter orbs, so only closely formed patterns are reported. Truthy values (true, 1, yes, on; case-insensitive) narrow trine to 5 degrees, square to 5, sextile to 4, quincunx to 2. Defaults to false, the standard pattern-detection orbs.'}}}
输出模式
{'type': 'object', 'required': ['patterns', 'total', 'options'], 'properties': {'total': {'type': 'number'}, 'options': {'type': 'object', 'required': ['strictOrbs', 'include'], 'properties': {'include': {'type': 'array', 'items': {'enum': ['chiron', 'northNode'], 'type': 'string'}}, 'strictOrbs': {'type': 'boolean'}}}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'name', 'planets', 'tightness', 'interpretation', 'interpretationKey', 'interpretationVars'], 'properties': {'apex': {'type': 'string'}, 'kind': {'enum': ['GRAND_TRINE', 'KITE', 'T_SQUARE', 'GRAND_CROSS', 'YOD', 'MYSTIC_RECTANGLE', 'STELLIUM'], 'type': 'string'}, 'name': {'type': 'string'}, 'element': {'enum': ['fire', 'earth', 'air', 'water'], 'type': 'string'}, 'planets': {'type': 'array', 'items': {'type': 'string'}}, 'modality': {'enum': ['cardinal', 'fixed', 'mutable'], 'type': 'string'}, 'tightness': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'dissociate': {'type': 'boolean'}, 'interpretation': {'type': 'string'}, 'interpretationKey': {'type': 'string'}, 'interpretationVars': {'type': 'object', 'additionalProperties': {'type': 'string'}}}}}}}
post_astrology_aspects
Calculate planetary aspects - Aspect finder for any date and time
Calculate all major and minor aspects between planets for any date and time. Finds conjunctions (0°), oppositions (180°), trines (120°), squares (90°), sextiles (60°), and minor aspects. Returns aspect type, exact angle, orb, applying/separating status, and strength (0-100). Filter by specific planets or aspect types. Perfect for aspect tables, transit analysis, and aspect pattern detection. Uses standard Western astrology orbs.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'timezone': -5}], 'required': ['date', 'time', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Date in YYYY-MM-DD format'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Time in HH:MM:SS format (24-hour)'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'planets': {'type': 'array', 'items': {'type': 'string'}, 'example': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars'], 'description': 'Optional: specific bodies to calculate aspects for (defaults to all 14: the 10 classical planets, the lunar nodes, Chiron, and Black Moon Lilith)'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'aspectTypes': {'type': 'array', 'items': {'type': 'string'}, 'example': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE'], 'description': 'Optional: specific aspect types to find (defaults to all 9)'}}}
输出模式
{'type': 'object', 'required': ['date', 'time', 'timezone', 'aspectsFound', 'aspects', 'summary'], 'properties': {'date': {'type': 'string'}, 'time': {'type': 'string'}, 'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'type': 'string'}, 'angle': {'type': 'number'}, 'meaning': {'type': 'object', 'required': ['name', 'description', 'keywords', 'nature'], 'properties': {'name': {'type': 'string'}, 'nature': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'object', 'required': ['short', 'long'], 'properties': {'long': {'type': 'string'}, 'short': {'type': 'string'}}}}}, 'planet1': {'type': 'string'}, 'planet2': {'type': 'string'}, 'strength': {'type': 'number'}, 'isApplying': {'type': 'boolean'}, 'typeLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}, 'planet1Localized': {'type': 'string'}, 'planet2Localized': {'type': 'string'}}}}, 'summary': {'type': 'object', 'required': ['totalAspects', 'harmonious', 'challenging', 'neutral', 'byType'], 'properties': {'byType': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'neutral': {'type': 'number'}, 'harmonious': {'type': 'number'}, 'challenging': {'type': 'number'}, 'totalAspects': {'type': 'number'}}}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'name', 'planets', 'tightness', 'interpretation', 'interpretationKey', 'interpretationVars'], 'properties': {'apex': {'type': 'string'}, 'kind': {'enum': ['GRAND_TRINE', 'KITE', 'T_SQUARE', 'GRAND_CROSS', 'YOD', 'MYSTIC_RECTANGLE', 'STELLIUM'], 'type': 'string'}, 'name': {'type': 'string'}, 'element': {'enum': ['fire', 'earth', 'air', 'water'], 'type': 'string'}, 'planets': {'type': 'array', 'items': {'type': 'string'}}, 'modality': {'enum': ['cardinal', 'fixed', 'mutable'], 'type': 'string'}, 'tightness': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'dissociate': {'type': 'boolean'}, 'interpretation': {'type': 'string'}, 'interpretationKey': {'type': 'string'}, 'interpretationVars': {'type': 'object', 'additionalProperties': {'type': 'string'}}}}}, 'timezone': {'type': 'number'}, 'aspectsFound': {'type': 'number'}}}
post_astrology_aspects_monthly
Monthly Aspects - Tropical aspect calendar for an entire month
Get every planetary aspect that perfects during a given month, across the 13 non-lunar Western bodies: the Sun and Mercury through Pluto, both lunar nodes, Chiron and Black Moon Lilith. Detects nine aspects, five major (conjunction, sextile, square, trine, opposition) and four minor (semi-sextile, semi-square, sesquiquadrate, quincunx), each with its own traditional orb, and returns the exact date and time of closest approach in your timezone along with the nature of the aspect. Calculated on tropical longitudes. The Moon is excluded because it forms hundreds of aspects a month and belongs in a daily view rather than a monthly one. Omit year and month to get the month in progress, so a published calendar stays current without a redeploy. Essential for monthly forecast copy, transit calendars, electional timing, and newsletter automation. Monthly aspect calendar API, exact aspect times, planetary aspect ephemeris, transit timing. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2649, 'minimum': 1551, 'description': 'Year for the aspect calendar (1551 to 2649). Defaults to the current year (UTC).'}, 'month': {'type': 'integer', 'example': 3, 'maximum': 12, 'minimum': 1, 'description': 'Month number (1-12). Defaults to the current month (UTC).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 0, 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Event dates and times are reported in this zone, which is what makes a published calendar read correctly for its audience. Defaults to 0 (UTC).'}}}
输出模式
{'type': 'object', 'required': ['year', 'month', 'timezone', 'events'], 'properties': {'year': {'type': 'number'}, 'month': {'type': 'number'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'aspect', 'nature', 'date', 'time', 'datetime', 'orb', 'separation', 'planet1Longitude', 'planet2Longitude'], 'properties': {'orb': {'type': 'number'}, 'date': {'type': 'string'}, 'time': {'type': 'string'}, 'aspect': {'type': 'string'}, 'nature': {'type': 'string'}, 'planet1': {'type': 'string'}, 'planet2': {'type': 'string'}, 'datetime': {'type': 'string'}, 'separation': {'type': 'number'}, 'aspectLocalized': {'type': 'string'}, 'natureLocalized': {'type': 'string'}, 'planet1Localized': {'type': 'string'}, 'planet1Longitude': {'type': 'number'}, 'planet2Localized': {'type': 'string'}, 'planet2Longitude': {'type': 'number'}}}}, 'timezone': {'type': 'number'}}}
post_astrology_asteroids
Asteroid goddesses calculator - Ceres, Pallas, Juno, and Vesta natal positions
Calculate the natal positions of the four classical asteroid goddesses, Ceres, Pallas, Juno, and Vesta, for any birth moment. Each asteroid returns its tropical zodiac sign, degree, house placement, daily speed, retrograde status, and a plain language interpretation of its meaning in the chart. Chiron is available through the natal chart endpoint, so this endpoint stays focused on the four asteroid goddesses for natal reports and relationship astrology.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system used to assign each asteroid to a natal house. Placidus (default), Whole Sign, Equal, or Koch. Above the polar circle, quadrant systems fall back to Whole Sign and the echoed houseSystem reports the system actually used.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'houseSystem', 'asteroids', 'summary'], 'properties': {'summary': {'type': 'string'}, 'asteroids': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde', 'interpretation'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}}}}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}}}
post_astrology_astrocartography
Astrocartography map - planetary lines and relocation calculator
Generate an astrocartography map of Midheaven, Imum Coeli, Ascendant, and Descendant planetary lines for any birth moment. Each line marks where a planet turns angular across the world, the core of relocation astrology and astro mapping. Returns right ascension, declination, the two meridian line longitudes, and sampled rising and setting curves ready to plot, with a short interpretation per line.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'include': {'type': 'string', 'example': 'chiron', 'description': 'Optional comma separated list of extra bodies to plot beyond the ten classical planets. Allowed values: north-node, chiron, lilith. north-node is the mean lunar node. Unknown values are ignored. Defaults to none.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'lines', 'summary'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'rightAscension', 'declination', 'mc', 'ic', 'ascendant', 'descendant'], 'properties': {'ic': {'type': 'object', 'required': ['longitude', 'interpretation'], 'properties': {'longitude': {'type': 'number'}, 'interpretation': {'type': 'string'}}}, 'mc': {'type': 'object', 'required': ['longitude', 'interpretation'], 'properties': {'longitude': {'type': 'number'}, 'interpretation': {'type': 'string'}}}, 'planet': {'type': 'string'}, 'symbol': {'type': 'string'}, 'ascendant': {'type': 'object', 'required': ['points', 'circumpolarBeyond', 'interpretation'], 'properties': {'points': {'type': 'array', 'items': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}}}, 'interpretation': {'type': 'string'}, 'circumpolarBeyond': {'type': ['number', 'null']}}}, 'descendant': {'type': 'object', 'required': ['points', 'circumpolarBeyond', 'interpretation'], 'properties': {'points': {'type': 'array', 'items': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}}}, 'interpretation': {'type': 'string'}, 'circumpolarBeyond': {'type': ['number', 'null']}}}, 'declination': {'type': 'number'}, 'rightAscension': {'type': 'number'}, 'planetLocalized': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}}}
post_astrology_compatibility_score
Compatibility score - Relationship compatibility API
Calculate a detailed compatibility score between two birth charts using Western synastry (inter-chart aspects). Returns overall score (0-100) plus category breakdowns for romantic, emotional, intellectual, physical, and spiritual compatibility. Each category analyzes specific planetary pairs: Venus-Mars for romance, Moon-Moon for emotions, Mercury-Mercury for intellect. Includes Sun, Moon, Venus, and Mars sign compatibility narratives, element balance analysis, relationship archetype classification, and the most significant inter-chart aspects with relationship-specific interpretations.
只读
输入模式
{'type': 'object', 'examples': [{'person1': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}, 'person2': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}}], 'required': ['person1', 'person2'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'person1': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}, 'description': 'First person birth details (date, time, location, timezone). Required for calculating natal planetary positions.'}, 'person2': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}, 'description': 'Second person birth details. Compared against person1 to evaluate inter-chart aspects and compatibility.'}}}
输出模式
{'type': 'object', 'required': ['overallScore', 'categories', 'persons', 'signCompatibility', 'elementBalance', 'archetype', 'strengths', 'challenges', 'summary', 'interpretation', 'aspectBreakdown', 'keyAspects'], 'properties': {'persons': {'type': 'object', 'required': ['person1', 'person2'], 'properties': {'person1': {'type': 'object', 'required': ['sun', 'moon', 'venus', 'mars'], 'properties': {'sun': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}, 'mars': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}, 'moon': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}, 'venus': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}}}, 'person2': {'type': 'object', 'required': ['sun', 'moon', 'venus', 'mars'], 'properties': {'sun': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}, 'mars': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}, 'moon': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}, 'venus': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}}}}}}}, 'summary': {'type': 'string'}, 'archetype': {'type': 'object', 'required': ['label', 'description'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}}}, 'strengths': {'type': 'array', 'items': {'type': 'string'}}, 'categories': {'type': 'object', 'required': ['romantic', 'emotional', 'intellectual', 'physical', 'spiritual'], 'properties': {'physical': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'romantic': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'emotional': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'spiritual': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'intellectual': {'type': 'number', 'maximum': 100, 'minimum': 0}}}, 'challenges': {'type': 'array', 'items': {'type': 'string'}}, 'keyAspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'orb', 'interpretation', 'description'], 'properties': {'orb': {'type': 'number'}, 'type': {'type': 'string'}, 'planet1': {'type': 'string'}, 'planet2': {'type': 'string'}, 'description': {'type': 'string'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}}}}, 'overallScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'elementBalance': {'type': 'object', 'required': ['person1', 'person2', 'sharedElement', 'description'], 'properties': {'person1': {'type': 'object', 'required': ['fire', 'earth', 'air', 'water'], 'properties': {'air': {'type': 'number'}, 'fire': {'type': 'number'}, 'earth': {'type': 'number'}, 'water': {'type': 'number'}}}, 'person2': {'type': 'object', 'required': ['fire', 'earth', 'air', 'water'], 'properties': {'air': {'type': 'number'}, 'fire': {'type': 'number'}, 'earth': {'type': 'number'}, 'water': {'type': 'number'}}}, 'description': {'type': 'string'}, 'sharedElement': {'type': ['string', 'null']}}}, 'interpretation': {'type': 'string'}, 'aspectBreakdown': {'type': 'object', 'required': ['total', 'harmonious', 'challenging', 'neutral'], 'properties': {'total': {'type': 'number'}, 'neutral': {'type': 'number'}, 'harmonious': {'type': 'number'}, 'challenging': {'type': 'number'}}}, 'signCompatibility': {'type': 'object', 'required': ['sun', 'moon', 'venus', 'mars'], 'properties': {'sun': {'type': 'object', 'required': ['person1Sign', 'person2Sign', 'description'], 'properties': {'description': {'type': 'string'}, 'person1Sign': {'type': 'string'}, 'person2Sign': {'type': 'string'}}}, 'mars': {'type': 'object', 'required': ['person1Sign', 'person2Sign', 'description'], 'properties': {'description': {'type': 'string'}, 'person1Sign': {'type': 'string'}, 'person2Sign': {'type': 'string'}}}, 'moon': {'type': 'object', 'required': ['person1Sign', 'person2Sign', 'description'], 'properties': {'description': {'type': 'string'}, 'person1Sign': {'type': 'string'}, 'person2Sign': {'type': 'string'}}}, 'venus': {'type': 'object', 'required': ['person1Sign', 'person2Sign', 'description'], 'properties': {'description': {'type': 'string'}, 'person1Sign': {'type': 'string'}, 'person2Sign': {'type': 'string'}}}}}}}
post_astrology_composite_chart
Composite Chart - Midpoint relationship chart with interpretations
Generate a composite chart by calculating midpoints between two natal charts. The composite chart represents the relationship as a single entity, showing its core identity, emotional bond, communication style, and growth direction. Uses the midpoint method: planets, angles and house cusps are each the midpoint of the two natal values, so the Ascendant always sits on the first cusp. Returns composite planetary positions, house cusps, Ascendant, Midheaven, aspects, and relationship interpretation. Composite chart API, midpoint chart calculator, relationship astrology, couple chart analysis.
只读
输入模式
{'type': 'object', 'examples': [{'person1': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}, 'person2': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}}], 'required': ['person1', 'person2'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'person1': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}, 'description': 'First person birth details (date, time, location, timezone).'}, 'person2': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}, 'description': 'Second person birth details (date, time, location, timezone).'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for the composite chart. Placidus (default), Whole Sign, Equal, or Koch.'}}}
输出模式
{'type': 'object', 'required': ['person1', 'person2', 'compositePlanets', 'compositeHouses', 'compositeAscendant', 'compositeMidheaven', 'aspects', 'interpretation'], 'properties': {'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'planet2': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'strength': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'isApplying': {'type': 'boolean'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}}}}, 'person1': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'person2': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'interpretation': {'type': 'object', 'required': ['summary', 'strengths', 'challenges'], 'properties': {'summary': {'type': 'string'}, 'strengths': {'type': 'array', 'items': {'type': 'string'}}, 'challenges': {'type': 'array', 'items': {'type': 'string'}}}}, 'compositeHouses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'number': {'type': 'number'}, 'longitude': {'type': 'number'}}}}, 'compositePlanets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'compositeInterpretation': {'type': 'object', 'required': ['summary', 'relationshipMeaning', 'keywords'], 'properties': {'summary': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'relationshipMeaning': {'type': 'string'}}}}}}, 'compositeAscendant': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'compositeMidheaven': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}
post_astrology_ecliptic_crossings
Ecliptic Crossings - Node passages for a whole year
Get every moment a body crosses the plane of the ecliptic during a given year, for the 11 Western bodies that leave it: the Moon and Mercury through Pluto, plus Chiron and Black Moon Lilith. A crossing from south to north is an ascending node passage, north to south a descending one. These are the instants a body sits exactly on the ecliptic rather than merely near it, which is what makes an eclipse possible when a lunar crossing coincides with a New or Full Moon, and what practitioners use for node-based timing. Returns the exact date and time in your timezone with the tropical longitude and sign. The Sun and the lunar nodes are excluded because they lie on the plane by definition and so have no nodes of their own. Essential for eclipse-season work, node timing, and astronomical calendars. Ecliptic crossing API, planetary node passage, ascending and descending nodes. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{'year': 2026}], 'required': ['year'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2649, 'minimum': 1551, 'description': 'Year to scan for node passages (1551 to 2649).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 0, 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Crossing dates and times are reported in this zone. Defaults to 0 (UTC).'}}}
输出模式
{'type': 'object', 'required': ['year', 'timezone', 'events'], 'properties': {'year': {'type': 'number'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'direction', 'date', 'time', 'datetime', 'longitude', 'sign'], 'properties': {'date': {'type': 'string'}, 'sign': {'type': 'string'}, 'time': {'type': 'string'}, 'planet': {'type': 'string'}, 'datetime': {'type': 'string'}, 'direction': {'enum': ['ascending', 'descending'], 'type': 'string'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}, 'planetLocalized': {'type': 'string'}}}}, 'timezone': {'type': 'number'}}}
post_astrology_fixed_stars
Fixed stars and star conjunctions calculator - Regulus, Spica, Algol natal report
Calculate the tropical zodiac positions of the major named fixed stars for any birth moment. Covers the four Royal stars and the fifteen Behenian stars, then detects conjunctions to the natal planets, Ascendant, and Midheaven. Each star returns its precessed ecliptic longitude, zodiac sign, visual magnitude, and traditional planetary nature, with a plain language interpretation for every conjunction inside the chosen orb. A focused tool for natal reports that weigh Regulus, Spica, Aldebaran, Antares, and Algol against the chart.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'orb': {'type': 'number', 'default': 1, 'example': 1, 'maximum': 3, 'minimum': 0, 'description': 'Conjunction orb in degrees, the maximum separation for a star to count as conjunct a chart point. Defaults to 1, maximum 3. Widen it to surface looser contacts or tighten it for only the closest hits.'}, 'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'orb', 'stars', 'conjunctions', 'summary'], 'properties': {'orb': {'type': 'number'}, 'stars': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'longitude', 'sign', 'degree', 'magnitude', 'nature', 'keywords', 'conjunctions'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'nature': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'magnitude': {'type': 'number'}, 'conjunctions': {'type': 'array', 'items': {'type': 'object', 'required': ['point', 'pointLongitude', 'orb'], 'properties': {'orb': {'type': 'number'}, 'point': {'type': 'string'}, 'pointLocalized': {'type': 'string'}, 'pointLongitude': {'type': 'number'}}}}}}}, 'summary': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'conjunctions': {'type': 'array', 'items': {'type': 'object', 'required': ['star', 'point', 'orb', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'star': {'type': 'string'}, 'point': {'type': 'string'}, 'interpretation': {'type': 'string'}, 'pointLocalized': {'type': 'string'}}}}}}
post_astrology_houses
Calculate house cusps - House system calculator with comparison
Calculate astrological house cusps using Placidus, Whole Sign, Equal, or Koch house systems. Returns all 12 house cusps with zodiac signs, degrees, Ascendant, and Midheaven. Use "all" parameter to compare all 4 house systems side-by-side. Perfect for astrology charts, house cusp tables, and educational tools showing house system differences. Includes accurate Ascendant and MC calculations.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Date is critical for house cusp calculations as it determines planetary positions used in some house systems.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Time is ESSENTIAL for accurate house cusps, and even minutes matter. The Ascendant (1st house cusp) changes roughly every 4 minutes. Without accurate time, house placements will be incorrect.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Location determines the local horizon and meridian, which are fundamental to house division. Higher latitudes cause more distortion in time-based systems like Placidus.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Decimal hours from UTC (e.g. -5 for EST, 5.5 for IST, 9 for JST) OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the chart date.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Affects local time and horizon calculations for house cusps.'}, 'houseSystem': {'anyOf': [{'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, {'enum': ['all'], 'type': 'string'}], 'default': 'placidus', 'example': 'placidus', 'description': 'House system for dividing ecliptic into 12 houses. Placidus (most popular) uses time, Whole Sign (ancient) uses signs, Equal divides from Ascendant. Use "all" to compare all 4 systems side-by-side for educational purposes.'}}}
输出模式
{'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone', 'houseSystem', 'ascendant', 'midheaven', 'houses'], 'properties': {'date': {'type': 'string'}, 'time': {'type': 'string'}, 'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'number': {'type': 'number'}, 'longitude': {'type': 'number'}}}}, 'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'ascendant': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'longitude': {'type': 'number'}, 'midheaven': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'comparison': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['houses'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'number': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}}}, 'houseSystem': {'type': 'string'}}}
post_astrology_lilith
Black Moon Lilith calculator - mean and true lunar apogee in the natal chart
Calculate Black Moon Lilith for any birth chart, both the mean lunar apogee, the steady and most widely used point, and the true or osculating apogee, the exact position that can shift sign and turn retrograde. Returns the zodiac sign, degree, house, ecliptic longitude and latitude, daily speed, retrograde flag, and a plain language interpretation for each variant. Built for natal astrology apps and AI agents exploring the wild, suppressed, and reclaimed self that Lilith represents.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system used to place each Lilith variant in a house. Placidus (default), Whole Sign, Equal, or Koch.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'houseSystem', 'lilith', 'summary'], 'properties': {'lilith': {'type': 'array', 'items': {'type': 'object', 'required': ['variant', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde', 'interpretation', 'note'], 'properties': {'note': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'variant': {'enum': ['mean', 'true'], 'type': 'string'}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'interpretation': {'type': 'string'}, 'variantLocalized': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}}}
post_astrology_local_space
Local space astrology map - Directional planetary compass lines
Generate a local space astrology map that projects the natal planets onto the local horizon as compass directions and great-circle lines radiating from the birthplace. Returns each body azimuth (degrees clockwise from true north), altitude, 16-point compass direction, whether it sits above the horizon, and the latitude and longitude waypoints of its directional line. Ideal for relocation planning, directional astrology, and travel-direction maps.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Combined with time and timezone it fixes the birth instant whose planetary positions are projected onto the local horizon.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Time is essential: the local horizon rotates a full circle each day, so the azimuth (compass direction) of every body depends on the exact birth time.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'include': {'type': 'string', 'example': 'chiron,lilith', 'description': 'Optional comma-separated extra bodies to add beyond the 10 classical planets. Allowed values: north-node, chiron, lilith. north-node is the mean lunar node. Omit to return the 10 classical planets only.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birthplace latitude in decimal degrees (-90 to 90). This is the origin point of every local space line and the observer latitude used to turn each body into an azimuth and altitude.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Decimal hours from UTC (e.g. -5 for EST, 5.5 for IST, 9 for JST) OR IANA name (e.g. "America/New_York"). IANA resolved to the offset in force at the birth date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birthplace longitude in decimal degrees (-180 to 180). Sets the local horizon orientation and the starting point from which the directional lines radiate.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'bodies', 'summary'], 'properties': {'bodies': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'azimuth', 'altitude', 'compassDirection', 'aboveHorizon', 'line', 'interpretation'], 'properties': {'line': {'type': 'object', 'required': ['points'], 'properties': {'points': {'type': 'array', 'items': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}}, 'planet': {'type': 'string'}, 'symbol': {'type': 'string'}, 'azimuth': {'type': 'number'}, 'altitude': {'type': 'number'}, 'aboveHorizon': {'type': 'boolean'}, 'interpretation': {'type': 'string'}, 'planetLocalized': {'type': 'string'}, 'compassDirection': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string'}, 'time': {'type': 'string'}, 'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}
post_astrology_lunar_return
Lunar Return Chart - Monthly emotional forecast with Moon cycle chart
Generate a lunar return chart for any month, cast for the exact moment the transiting Moon returns to its natal ecliptic longitude. The Moon completes one sidereal orbit every ~27.3 days, making this the primary technique for monthly astrological forecasting. Returns full tropical zodiac chart with planetary positions, house cusps, aspects, Ascendant, and Midheaven. Reveals emotional patterns, domestic focus, and intuitive themes for the coming month. Lunar return chart API, monthly horoscope forecast, Moon cycle chart, emotional astrology prediction.
只读
输入模式
{'type': 'object', 'examples': [{'latitude': 40.7128, 'timezone': -5, 'birthDate': '1990-07-15', 'birthTime': '14:30:00', 'longitude': -74.006, 'returnDate': '2026-02-12'}], 'required': ['birthDate', 'birthTime', 'returnDate', 'latitude', 'longitude', 'timezone'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Latitude of the lunar return location in decimal degrees (-90 to 90). Affects the Ascendant and house cusps of the return chart.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Decimal hours from UTC OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the birthDate. Output datetime is adjusted to this timezone.'}, 'birthDate': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Original birth date in YYYY-MM-DD format. Used to determine natal Moon longitude for the lunar return calculation.'}, 'birthTime': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Original birth time in 24-hour HH:MM:SS format. Determines exact natal Moon position for monthly return timing.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Longitude of the lunar return location in decimal degrees (-180 to 180). Determines local sidereal time for house calculations.'}, 'returnDate': {'type': 'string', 'format': 'date', 'example': '2026-02-12', 'description': 'Approximate date near the desired lunar return (YYYY-MM-DD). The Moon returns to its natal position every ~27.3 days, so provide a date within a few days of the expected return.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for the lunar return chart. Placidus (default), Whole Sign, Equal, or Koch.'}}}
输出模式
{'type': 'object', 'required': ['birthDate', 'lunarReturnDate', 'location', 'chart', 'natalMoonPosition', 'interpretation'], 'properties': {'chart': {'type': 'object', 'required': ['birthDetails', 'planets', 'houses', 'houseSystem', 'aspects', 'partOfFortune', 'vertex'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'number': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}, 'vertex': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house'], 'properties': {'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}, 'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'planet2': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'strength': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'isApplying': {'type': 'boolean'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}}}}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}}}}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'partOfFortune': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house', 'sect'], 'properties': {'sect': {'enum': ['day', 'night'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}}, 'location': {'type': 'object', 'required': ['latitude', 'longitude', 'timezone'], 'properties': {'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'birthDate': {'type': 'string'}, 'interpretation': {'type': 'object', 'required': ['summary', 'purpose', 'keyThemes'], 'properties': {'purpose': {'type': 'string'}, 'summary': {'type': 'string'}, 'keyThemes': {'type': 'array', 'items': {'type': 'string'}}}}, 'lunarReturnDate': {'type': 'string'}, 'natalMoonPosition': {'type': 'object', 'required': ['longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}
post_astrology_natal_chart
Generate natal chart - Birth chart calculator API with houses and aspects
Calculate complete Western astrology natal chart (birth chart) with tropical zodiac. Returns all 14 celestial bodies (the 10 classical planets Sun through Pluto, the lunar nodes, Chiron, and Black Moon Lilith), 12 house cusps with customizable house systems (Placidus, Whole Sign, Equal, Koch), major and minor aspects, Ascendant, Midheaven, dominant elements and modalities. Perfect for astrology apps, birth chart generators, horoscope websites, and astrological consultation tools. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for dividing the chart into 12 houses. Placidus (default) is most popular in Western astrology and time-sensitive. Whole Sign assigns one sign per house (simpler, ancient). Equal houses divide chart into 30° segments from Ascendant. Koch emphasizes houses in high latitudes.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'planets', 'houses', 'houseSystem', 'aspects', 'aspectsInterpretation', 'ascendant', 'midheaven', 'partOfFortune', 'vertex', 'summary'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'number': {'type': 'number'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}}, 'vertex': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house'], 'properties': {'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}, 'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation', 'aspectInterpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'type': 'string'}, 'planet2': {'type': 'string'}, 'strength': {'type': 'number'}, 'isApplying': {'type': 'boolean'}, 'typeLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}, 'planet1Localized': {'type': 'string'}, 'planet2Localized': {'type': 'string'}, 'aspectInterpretation': {'type': 'object', 'required': ['summary', 'keywords'], 'properties': {'summary': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}}}}}}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'number'}, 'speed': {'type': 'number'}, 'degree': {'type': 'number'}, 'dignity': {'enum': ['domicile', 'exaltation', 'detriment', 'fall', 'peregrine'], 'type': 'string'}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}, 'interpretation': {'type': 'object', 'required': ['summary', 'detailed', 'keywords'], 'properties': {'summary': {'type': 'string'}, 'detailed': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}}}}}}, 'summary': {'type': 'object', 'required': ['dominantElement', 'dominantModality', 'retrogradePlanets', 'elementDistribution', 'modalityDistribution'], 'properties': {'dominantElement': {'type': 'string'}, 'dominantModality': {'type': 'string'}, 'retrogradePlanets': {'type': 'array', 'items': {'type': 'string'}}, 'elementDistribution': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'modalityDistribution': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'dominantElementLocalized': {'type': 'string'}, 'dominantModalityLocalized': {'type': 'string'}, 'retrogradePlanetsLocalized': {'type': 'array', 'items': {'type': 'string'}}}}, 'patterns': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'name', 'planets', 'tightness', 'interpretation', 'interpretationKey', 'interpretationVars'], 'properties': {'apex': {'type': 'string'}, 'kind': {'enum': ['GRAND_TRINE', 'KITE', 'T_SQUARE', 'GRAND_CROSS', 'YOD', 'MYSTIC_RECTANGLE', 'STELLIUM'], 'type': 'string'}, 'name': {'type': 'string'}, 'element': {'enum': ['fire', 'earth', 'air', 'water'], 'type': 'string'}, 'planets': {'type': 'array', 'items': {'type': 'string'}}, 'modality': {'enum': ['cardinal', 'fixed', 'mutable'], 'type': 'string'}, 'tightness': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'dissociate': {'type': 'boolean'}, 'interpretation': {'type': 'string'}, 'interpretationKey': {'type': 'string'}, 'interpretationVars': {'type': 'object', 'additionalProperties': {'type': 'string'}}}}}, 'ascendant': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}, 'midheaven': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}, 'houseSystem': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string'}, 'time': {'type': 'string'}, 'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'partOfFortune': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house', 'sect'], 'properties': {'sect': {'enum': ['day', 'night'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}, 'aspectsInterpretation': {'type': 'object', 'required': ['summary', 'dominant', 'harmonious', 'challenging', 'neutral'], 'properties': {'neutral': {'type': 'number'}, 'summary': {'type': 'string'}, 'dominant': {'type': 'string'}, 'harmonious': {'type': 'number'}, 'challenging': {'type': 'number'}}}}}
post_astrology_parallels_monthly
Monthly Parallels - Declination contacts for an entire month
Get every parallel and contraparallel of declination that perfects during a given month, across the 13 non-lunar Western bodies: the Sun and Mercury through Pluto, both lunar nodes, Chiron and Black Moon Lilith. A parallel is two bodies at the same declination and reads much like a conjunction; a contraparallel is equal and opposite declinations and reads much like an opposition. Neither depends on zodiacal distance, so they surface connections an aspect table cannot show, which is why traditional and modern practitioners read them alongside aspects. Declinations are geocentric, matching what an ephemeris publishes. Returns the exact date and time of closest approach in your timezone with both declinations. The Moon is excluded because its declination swings the full range every month and would bury the slow pairs. Omit year and month to get the month in progress, so a published calendar stays current without a redeploy. Essential for declination work, out-of-bounds tracking, monthly forecast copy, and electional timing. Monthly parallel calendar API, declination aspects, contraparallel ephemeris. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'orb': {'type': 'number', 'default': 1.5, 'example': 1.5, 'maximum': 3, 'minimum': 0.1, 'description': 'How far from exact still counts, in degrees. The traditional orb for a declination contact is tighter than for a zodiacal aspect because declination changes slowly. Defaults to 1.5.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2649, 'minimum': 1551, 'description': 'Year for the declination calendar (1551 to 2649). Defaults to the current year (UTC).'}, 'month': {'type': 'integer', 'example': 3, 'maximum': 12, 'minimum': 1, 'description': 'Month number (1-12). Defaults to the current month (UTC).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 0, 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Event dates and times are reported in this zone, which is what makes a published calendar read correctly for its audience. Defaults to 0 (UTC).'}}}
输出模式
{'type': 'object', 'required': ['year', 'month', 'timezone', 'orb', 'events'], 'properties': {'orb': {'type': 'number'}, 'year': {'type': 'number'}, 'month': {'type': 'number'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'date', 'time', 'datetime', 'orb', 'declination1', 'declination2'], 'properties': {'orb': {'type': 'number'}, 'date': {'type': 'string'}, 'time': {'type': 'string'}, 'type': {'enum': ['parallel', 'contraparallel'], 'type': 'string'}, 'planet1': {'type': 'string'}, 'planet2': {'type': 'string'}, 'datetime': {'type': 'string'}, 'declination1': {'type': 'number'}, 'declination2': {'type': 'number'}, 'planet1Localized': {'type': 'string'}, 'planet2Localized': {'type': 'string'}}}}, 'timezone': {'type': 'number'}}}
post_astrology_planetary_returns
Planetary Return Chart - Saturn return, Jupiter return, and inner planet cycles
Generate a planetary return chart for Mercury, Venus, Mars, Jupiter, or Saturn. A planetary return occurs when a transiting planet conjuncts its natal longitude, marking the beginning of a new cycle. Saturn return (~29 years) is the most significant life milestone in Western astrology. Jupiter return (~12 years) signals expansion and growth phases. Mars return (~2 years) resets energy and drive. Returns full tropical zodiac chart with all planetary positions, house cusps, and aspects. Planetary return chart API, Saturn return calculator, Jupiter return chart, Mars return forecast.
只读
输入模式
{'type': 'object', 'examples': [{'planet': 'Jupiter', 'latitude': 40.7128, 'timezone': -5, 'birthDate': '1990-07-15', 'birthTime': '14:30:00', 'longitude': -74.006, 'approximateDate': '2026-08-15'}], 'required': ['birthDate', 'birthTime', 'planet', 'approximateDate', 'latitude', 'longitude', 'timezone'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'planet': {'enum': ['Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn'], 'type': 'string', 'example': 'Jupiter', 'description': 'Planet for the return calculation. Supports Mercury (~88 days), Venus (~225 days), Mars (~687 days), Jupiter (~12 years), and Saturn (~29 years). Saturn return is a major life milestone in Western astrology.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Latitude of the return location in decimal degrees (-90 to 90). Affects house cusps and Ascendant of the return chart.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Decimal hours from UTC OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the birthDate. Output datetime is adjusted to this timezone.'}, 'birthDate': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Original birth date in YYYY-MM-DD format. Used to determine the natal longitude of the selected planet.'}, 'birthTime': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Original birth time in 24-hour HH:MM:SS format. Determines exact natal planet position for return timing.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Longitude of the return location in decimal degrees (-180 to 180).'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for the return chart. Placidus (default), Whole Sign, Equal, or Koch.'}, 'approximateDate': {'type': 'string', 'format': 'date', 'example': '2026-08-15', 'description': 'Approximate date near the expected planetary return (YYYY-MM-DD). The return nearest this date is returned, so a date off by months still lands on a genuine return; during a retrograde loop the planet crosses its natal degree up to three times and the crossing nearest the date is the one returned.'}}}
输出模式
{'type': 'object', 'required': ['birthDate', 'planet', 'returnDate', 'approximateCycle', 'location', 'chart', 'natalPlanetPosition', 'interpretation'], 'properties': {'chart': {'type': 'object', 'required': ['birthDetails', 'planets', 'houses', 'houseSystem', 'aspects', 'partOfFortune', 'vertex'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'number': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}, 'vertex': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house'], 'properties': {'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}, 'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'planet2': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'strength': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'isApplying': {'type': 'boolean'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}}}}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}}}}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'partOfFortune': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house', 'sect'], 'properties': {'sect': {'enum': ['day', 'night'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}}, 'planet': {'type': 'string'}, 'location': {'type': 'object', 'required': ['latitude', 'longitude', 'timezone'], 'properties': {'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'birthDate': {'type': 'string'}, 'returnDate': {'type': 'string'}, 'interpretation': {'type': 'object', 'required': ['summary', 'keyThemes'], 'properties': {'summary': {'type': 'string'}, 'keyThemes': {'type': 'array', 'items': {'type': 'string'}}}}, 'approximateCycle': {'type': 'string'}, 'natalPlanetPosition': {'type': 'object', 'required': ['longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}
post_astrology_planets
Get planetary positions - Ephemeris calculator for all planets
Calculate accurate tropical zodiac positions for all 14 celestial bodies for any date, time, and location. The bodies are the 10 classical planets Sun through Pluto, the lunar nodes, Chiron, and Black Moon Lilith. Returns longitude, latitude, zodiac sign, degree within sign, daily motion speed, and retrograde status. Perfect for transit tracking, ephemeris tables, astrology apps, and planetary position widgets. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{'date': '2025-12-18', 'time': '12:00:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2025-12-18', 'description': 'Target date for planetary positions in YYYY-MM-DD format. Use current date for transit positions, or any historical/future date for research. Planets move daily, so this date determines their zodiac positions.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '12:00:00', 'description': 'Time in 24-hour HH:MM:SS format for precise calculations. Moon moves ~13° per day, so time matters for accurate lunar position. Use 12:00:00 (noon) as default if exact time not needed.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Observer latitude in decimal degrees (-90 to 90). While planetary longitudes are geocentric (same worldwide), this is needed for house calculations if extending functionality. For basic ephemeris, use 0 as default.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Decimal hours from UTC (e.g. -5 for EST, 5.5 for IST, 9 for JST, 5.75 for NPT) OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the chart date.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Observer longitude in decimal degrees (-180 to 180). Used for precise local time conversion. For basic planetary positions, this has minimal impact but ensures accuracy.'}}}
输出模式
{'type': 'object', 'required': ['planets'], 'properties': {'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'speed', 'isRetrograde'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'speed': {'type': 'number'}, 'degree': {'type': 'number'}, 'symbol': {'type': 'string'}, 'tagline': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}, 'description': {'type': 'string'}, 'isRetrograde': {'type': 'boolean'}, 'interpretation': {'type': 'object', 'required': ['summary', 'planetMeaning', 'signExpression', 'keywords'], 'properties': {'summary': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'planetMeaning': {'type': 'string'}, 'signExpression': {'type': 'string'}}}}}}}}
post_astrology_planets_monthly
Monthly Ephemeris - Daily tropical planetary positions for a month
Get daily tropical ecliptic positions for all 14 Western bodies (the 10 classical planets Sun through Pluto, the lunar nodes, Chiron, and Black Moon Lilith) for an entire month. Returns longitude, zodiac sign, degree within sign, and retrograde status for each body on each day, calculated at noon UTC. Omit year and month to get the month in progress, so a published ephemeris page stays current without a redeploy. Essential for ephemeris tables, transit tracking, retrograde calendars, and planetary movement charts. Monthly ephemeris API, tropical position table, daily planet transit positions, ecliptic longitude calculator. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2649, 'minimum': 1551, 'description': 'Year for the monthly ephemeris (1551 to 2649). Defaults to the current year (UTC).'}, 'month': {'type': 'integer', 'example': 8, 'maximum': 12, 'minimum': 1, 'description': 'Month number (1-12) for the ephemeris. Defaults to the current month (UTC).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
输出模式
{'type': 'object', 'required': ['year', 'month', 'days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'positions'], 'properties': {'date': {'type': 'string'}, 'positions': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'longitude', 'sign', 'degreeInSign', 'isRetrograde'], 'properties': {'sign': {'type': 'string'}, 'planet': {'type': 'string'}, 'longitude': {'type': 'number'}, 'degreeInSign': {'type': 'number'}, 'isRetrograde': {'type': 'boolean'}, 'signLocalized': {'type': 'string'}, 'planetLocalized': {'type': 'string'}}}}}}}, 'year': {'type': 'number'}, 'month': {'type': 'number'}}}
post_astrology_profections
Annual profections calculator - lord of the year and yearly time lord by age
Calculate the annual profection and lord of the year for any birth chart and target date using the Hellenistic time lord technique. Each completed year of life advances the rising sign by one whole sign house, activating a new profected house, profected sign, and ruling planet that sets the tone of the year. Returns the age, profected house and sign, the lord of the year with its natal sign and house placement, and a plain language interpretation for traditional and Hellenistic astrology apps.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006, 'targetDate': '2025-08-04'}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone', 'targetDate'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'targetDate': {'type': 'string', 'format': 'date', 'example': '2025-08-04', 'description': 'Date whose profection year you want, in YYYY-MM-DD format. The completed whole years from the birth date to this date select the profected house and sign. Must fall on or after the birth date.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system used only to report where the lord of the year sits in the natal chart. The profected house and sign always use whole sign profection from the rising sign. Placidus (default), Whole Sign, Equal, or Koch.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'targetDate', 'age', 'profectedHouse', 'profectedSign', 'lordOfYear', 'lordNatalPosition', 'interpretation', 'summary'], 'properties': {'age': {'type': 'integer', 'minimum': 0}, 'summary': {'type': 'string'}, 'lordOfYear': {'type': 'string'}, 'targetDate': {'type': 'string', 'format': 'date'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'profectedSign': {'type': 'string'}, 'interpretation': {'type': 'string'}, 'profectedHouse': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'lordNatalPosition': {'type': 'object', 'required': ['sign', 'house'], 'properties': {'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}}}}}
post_astrology_progressions
Secondary progressions calculator - progressed chart, progressed Sun and Moon
Generate the secondary progressed chart for any date using the day-for-a-year key. Each day of ephemeris motion after birth stands in for one year of life. Returns every progressed body with its sign, degree, whole-sign house, motion, and retrograde state, plus the progressed Ascendant and Midheaven via the Naibod arc. The progressed Sun and progressed Moon are the headline timing markers for inner growth and emotional chapters. Secondary progressions API, progressed chart calculator, progressed Sun and Moon, progressed Ascendant and Midheaven.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006, 'targetDate': '2025-07-15'}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone', 'targetDate'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'targetDate': {'type': 'string', 'format': 'date', 'example': '2025-07-15', 'description': 'Date to progress the chart to, in YYYY-MM-DD format. Usually today or a forecast date. The day-for-a-year key turns the elapsed years since birth into the same number of ephemeris days after the birth moment.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'targetDate', 'progressedDate', 'elapsedYears', 'planets', 'ascendant', 'midheaven', 'summary'], 'properties': {'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde', 'interpretation'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}}}}, 'summary': {'type': 'string'}, 'ascendant': {'type': 'object', 'required': ['longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}, 'midheaven': {'type': 'object', 'required': ['longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}, 'targetDate': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'elapsedYears': {'type': 'number'}, 'progressedDate': {'type': 'string'}}}
post_astrology_relocation_chart
Generate relocation chart - Relocated birth chart calculator with shifted houses and angles
Calculate a relocation chart (relocated birth chart) for a new place on Earth. The birth moment stays the same, so every planet keeps its natal sign and degree, while the Ascendant, Midheaven, Vertex, and all twelve house cusps are recomputed for the new latitude and longitude. Returns the relocated houses and angles, the planets that change house, the angular planets activated at the new place, and the distance and compass direction from the birthplace. Built for relocation astrology readings, astrocartography style move planning, and travel charts. Verified against NASA JPL Horizons.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1961-08-04', 'time': '19:24:00', 'timezone': -10, 'birthLatitude': 21.3069, 'birthLongitude': -157.8583, 'relocationLatitude': 40.7167, 'relocationLongitude': -74.006}], 'required': ['date', 'time', 'timezone', 'birthLatitude', 'birthLongitude', 'relocationLatitude', 'relocationLongitude'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1961-08-04', 'description': 'Birth date in YYYY-MM-DD format. The birth moment is unchanged by relocation, so this still defines the planetary positions of the chart.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '19:24:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Combined with the timezone it fixes the exact birth instant, which the relocated angles and houses are recomputed for.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -10, 'description': 'Birth timezone: decimal hours from UTC (e.g. -5 for EST, 5.5 for IST) OR IANA name (e.g. "America/New_York"). Resolved to the offset in force at the birth date and time. This is the birthplace timezone, not the new location timezone.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for dividing the relocated chart into 12 houses. Placidus (default) is time-sensitive and most popular in Western astrology. Whole Sign assigns one sign per house. Equal divides into 30 degree segments from the Ascendant. Koch emphasizes higher latitudes. Quadrant systems fall back to Whole Sign above the polar circle.'}, 'birthLatitude': {'type': 'number', 'example': 21.3069, 'maximum': 90, 'minimum': -90, 'description': 'Birthplace latitude in decimal degrees (-90 to 90). Used for the original natal angles and houses that the relocated chart is compared against.'}, 'birthLongitude': {'type': 'number', 'example': -157.8583, 'maximum': 180, 'minimum': -180, 'description': 'Birthplace longitude in decimal degrees (-180 to 180). Positive East, negative West.'}, 'relocationLatitude': {'type': 'number', 'example': 40.7167, 'maximum': 90, 'minimum': -90, 'description': 'New location latitude in decimal degrees (-90 to 90). The relocated Ascendant and house cusps are most sensitive to north-south movement.'}, 'relocationLongitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'New location longitude in decimal degrees (-180 to 180). The relocated Midheaven shifts roughly one degree per degree of longitude moved.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'relocation', 'planets', 'houses', 'houseSystem', 'ascendant', 'midheaven', 'vertex', 'changes', 'interpretation'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'number': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}}, 'vertex': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house'], 'properties': {'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}, 'changes': {'type': 'object', 'required': ['ascendantSignChanged', 'planetsChangedHouse', 'angularPlanets', 'distanceKm', 'direction'], 'properties': {'direction': {'type': 'string'}, 'distanceKm': {'type': 'number'}, 'angularPlanets': {'type': 'array', 'items': {'type': 'string'}}, 'planetsChangedHouse': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'natalHouse', 'relocatedHouse'], 'properties': {'planet': {'type': 'string'}, 'natalHouse': {'type': 'number'}, 'relocatedHouse': {'type': 'number'}, 'planetLocalized': {'type': 'string'}}}}, 'ascendantSignChanged': {'type': 'boolean'}, 'angularPlanetsLocalized': {'type': 'array', 'items': {'type': 'string'}}}}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}, 'interpretation': {'type': 'object', 'required': ['summary', 'detailed', 'keywords'], 'properties': {'summary': {'type': 'string'}, 'detailed': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}}}}}}, 'ascendant': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}, 'midheaven': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}, 'relocation': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'houseSystem': {'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string'}, 'time': {'type': 'string'}, 'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'interpretation': {'type': 'object', 'required': ['summary'], 'properties': {'summary': {'type': 'string'}}}}}
post_astrology_solar_arc
Solar arc directions calculator - directed chart at one degree per year
Calculate a solar arc directed chart for any birth moment and target date. The solar arc is the secondary-progressed Sun longitude minus the natal Sun longitude, about one degree for each year of life, and every natal point including the Ascendant and Midheaven is advanced forward by that same arc. Returns the solar arc, each directed point with its natal and directed longitude, zodiac sign, degree, and a plain language interpretation, for predictive astrology apps timing major life events. Built on accurate tropical chart positions, no astronomy expertise needed.
只读
输入模式
{'type': 'object', 'examples': [{'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006, 'targetDate': '2025-07-15'}], 'required': ['date', 'time', 'latitude', 'longitude', 'timezone', 'targetDate'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}, 'targetDate': {'type': 'string', 'format': 'date', 'example': '2025-07-15', 'description': 'Date to direct the chart to, in YYYY-MM-DD format. Every natal point is advanced by the solar arc accumulated from birth to this date, about one degree for each year of life.'}}}
输出模式
{'type': 'object', 'required': ['birthDetails', 'targetDate', 'solarArc', 'summary', 'directed'], 'properties': {'summary': {'type': 'string'}, 'directed': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'natalLongitude', 'directedLongitude', 'sign', 'degree', 'interpretation'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'nameLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}, 'natalLongitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'directedLongitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}, 'solarArc': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'targetDate': {'type': 'string', 'format': 'date'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}}}
post_astrology_solar_return
Solar Return Chart - Annual birthday forecast with relocated chart
Generate a solar return chart for any year, the foundational technique for annual astrological forecasting. The chart is cast for the exact moment the transiting Sun returns to its natal ecliptic longitude (your astrological birthday). Returns full tropical zodiac chart with planetary positions, house cusps, aspects, Ascendant, and Midheaven. Location-sensitive: relocating your solar return chart to a different city changes the houses and Ascendant. Solar return chart API, annual horoscope forecast, birthday chart calculator, yearly astrology prediction, relocated solar return.
只读
输入模式
{'type': 'object', 'examples': [{'latitude': 40.7128, 'timezone': -5, 'birthDate': '1990-07-15', 'birthTime': '14:30:00', 'longitude': -74.006, 'returnYear': 2026}], 'required': ['birthDate', 'birthTime', 'returnYear', 'latitude', 'longitude', 'timezone'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Latitude of the solar return location in decimal degrees (-90 to 90). Use current residence or travel location at time of birthday. Solar return charts are location-sensitive.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Decimal hours from UTC OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the birthDate. Output datetime is adjusted to this timezone.'}, 'birthDate': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Original birth date in YYYY-MM-DD format. Used to determine natal Sun longitude for the solar return calculation.'}, 'birthTime': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Original birth time in 24-hour HH:MM:SS format. Determines exact natal Sun position for annual return timing.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Longitude of the solar return location in decimal degrees (-180 to 180). Affects house cusps and Ascendant of the return chart.'}, 'returnYear': {'type': 'integer', 'example': 2026, 'description': 'Year for which to cast the solar return chart. The chart is erected for the exact moment the transiting Sun conjuncts the natal Sun longitude in this year.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for the solar return chart. Placidus (default) is most common in Western astrology. Whole Sign, Equal, and Koch also supported.'}}}
输出模式
{'type': 'object', 'required': ['birthDate', 'solarReturnDate', 'solarReturnYear', 'location', 'chart', 'natalSunPosition', 'interpretation'], 'properties': {'chart': {'type': 'object', 'required': ['birthDetails', 'planets', 'houses', 'houseSystem', 'aspects', 'partOfFortune', 'vertex'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'number': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}, 'vertex': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house'], 'properties': {'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}, 'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'planet2': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'strength': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'isApplying': {'type': 'boolean'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}}}}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}}}}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, 'birthDetails': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date'}, 'time': {'type': 'string', 'format': 'time'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'timezone': {'type': 'number', 'maximum': 14, 'minimum': -12}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'partOfFortune': {'type': 'object', 'required': ['sign', 'degree', 'longitude', 'house', 'sect'], 'properties': {'sect': {'enum': ['day', 'night'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}}}}}, 'location': {'type': 'object', 'required': ['latitude', 'longitude', 'timezone'], 'properties': {'latitude': {'type': 'number'}, 'timezone': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'birthDate': {'type': 'string'}, 'interpretation': {'type': 'object', 'required': ['summary', 'purpose', 'keyThemes'], 'properties': {'purpose': {'type': 'string'}, 'summary': {'type': 'string'}, 'keyThemes': {'type': 'array', 'items': {'type': 'string'}}}}, 'solarReturnDate': {'type': 'string'}, 'solarReturnYear': {'type': 'number'}, 'natalSunPosition': {'type': 'object', 'required': ['longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}}}}}
post_astrology_synastry
Calculate synastry - Relationship compatibility analysis API
Calculate complete synastry (relationship compatibility) between two natal charts using Western tropical astrology. Analyzes inter-chart aspects between all planets to determine romantic, friendship, and karmic compatibility. Returns compatibility score (0-100), detailed inter-aspects with strength ratings, harmonious vs challenging aspect counts, and relationship dynamics analysis. Perfect for dating apps, matrimonial sites, relationship counseling tools, and astrology compatibility features. Based on professional astrological techniques.
只读
输入模式
{'type': 'object', 'examples': [{'person1': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}, 'person2': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}}], 'required': ['person1', 'person2'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'person1': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'name': {'type': 'string', 'example': 'Alex', 'description': 'Optional display name for this person. Included in the response for easy identification.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}}, 'person2': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'name': {'type': 'string', 'example': 'Alex', 'description': 'Optional display name for this person. Included in the response for easy identification.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system for both natal charts. Placidus (default), Whole Sign, Equal, or Koch.'}}}
输出模式
{'type': 'object', 'required': ['person1', 'person2', 'compatibilityScore', 'interAspects', 'summary', 'analysis'], 'properties': {'person1': {'type': 'object', 'required': ['ascendant', 'sunSign', 'moonSign', 'planets'], 'properties': {'name': {'type': 'string'}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'sign', 'degree', 'house', 'houseInOtherChart', 'isRetrograde'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'number'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}, 'houseInOtherChart': {'type': 'number'}}}}, 'sunSign': {'type': 'string'}, 'moonSign': {'type': 'string'}, 'ascendant': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}, 'sunSignLocalized': {'type': 'string'}, 'moonSignLocalized': {'type': 'string'}}}, 'person2': {'type': 'object', 'required': ['ascendant', 'sunSign', 'moonSign', 'planets'], 'properties': {'name': {'type': 'string'}, 'planets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'sign', 'degree', 'house', 'houseInOtherChart', 'isRetrograde'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'number'}, 'degree': {'type': 'number'}, 'longitude': {'type': 'number'}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}, 'houseInOtherChart': {'type': 'number'}}}}, 'sunSign': {'type': 'string'}, 'moonSign': {'type': 'string'}, 'ascendant': {'type': 'object', 'required': ['sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number'}, 'signLocalized': {'type': 'string'}}}, 'sunSignLocalized': {'type': 'string'}, 'moonSignLocalized': {'type': 'string'}}}, 'summary': {'type': 'object', 'required': ['total', 'harmonious', 'challenging', 'neutral', 'byType'], 'properties': {'total': {'type': 'number'}, 'byType': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'neutral': {'type': 'number'}, 'harmonious': {'type': 'number'}, 'challenging': {'type': 'number'}}}, 'analysis': {'type': 'object', 'required': ['overall', 'strengths', 'challenges'], 'properties': {'overall': {'type': 'string'}, 'strengths': {'type': 'array', 'items': {'type': 'string'}}, 'challenges': {'type': 'array', 'items': {'type': 'string'}}}}, 'interAspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'strength', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'type': 'string'}, 'angle': {'type': 'number'}, 'meaning': {'type': 'object', 'required': ['name', 'description', 'keywords', 'nature', 'relationshipContext'], 'properties': {'name': {'type': 'string'}, 'nature': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'object', 'required': ['short', 'long'], 'properties': {'long': {'type': 'string'}, 'short': {'type': 'string'}}}, 'relationshipContext': {'type': 'string'}}}, 'planet1': {'type': 'string'}, 'planet2': {'type': 'string'}, 'strength': {'type': 'number'}, 'typeLocalized': {'type': 'string'}, 'interpretation': {'type': 'string'}, 'planet1Localized': {'type': 'string'}, 'planet2Localized': {'type': 'string'}}}}, 'compatibilityScore': {'type': 'number'}}}
post_astrology_transit_aspects
Transit Aspects - Detailed transit-to-natal aspect analysis with interpretations
Calculate all transit-to-natal aspects with detailed interpretations, strength ratings, and timing guidance. Compares current (or future) planetary positions against your natal chart to identify active transits. Returns aspect type, orb, applying/separating status, narrative interpretation, impact rating, and practical guidance for each transit. Supports planet and aspect-type filtering. More detailed than the /transits endpoint, adding AI-friendly interpretation fields. Transit aspects API, transit-to-natal analysis, predictive astrology, personalized transit forecast.
只读
输入模式
{'type': 'object', 'examples': [{'natalChart': {'date': '1990-07-15', 'time': '14:30:00', 'latitude': 40.7128, 'timezone': -5, 'longitude': -74.006}}], 'required': ['natalChart'], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'planets': {'type': 'array', 'items': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'example': ['Jupiter', 'Saturn', 'Pluto'], 'description': 'Filter to specific transiting planets. Omit to include all planets. Useful for focusing on slow-moving outer planet transits (Saturn, Jupiter, Pluto).'}, 'natalChart': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved to the offset in force at the given date and time.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.'}}, 'description': 'Natal chart birth details (date, time, location, timezone). Used to calculate natal planetary positions that transits are compared against.'}, 'aspectTypes': {'type': 'array', 'items': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'example': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE'], 'description': 'Filter to specific aspect types (conjunction, opposition, trine, square, sextile, etc.). Omit to include all aspect types.'}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string', 'default': 'placidus', 'example': 'placidus', 'description': 'House system used to divide the natal chart into 12 houses. Every house number in the response is read against these natal cusps, for the natal bodies and the transiting bodies alike. Placidus (default) is time sensitive and the most widely used in Western astrology. Whole Sign assigns one sign per house. Equal divides into 30 degree segments from the Ascendant. Koch emphasizes higher latitudes. Quadrant systems fall back to Whole Sign above the polar circle.'}, 'minStrength': {'type': 'number', 'example': 50, 'maximum': 100, 'minimum': 0, 'description': 'Minimum aspect strength threshold (0-100). Higher values return only tighter, more potent aspects. Useful for filtering out wide-orb aspects.'}, 'transitDate': {'type': 'string', 'format': 'date', 'example': '2026-02-03', 'description': 'Transit date in YYYY-MM-DD format. Defaults to current date if omitted. Use future dates for predictive transit analysis.'}, 'transitTime': {'type': 'string', 'format': 'time', 'example': '12:00:00', 'description': 'Transit time in HH:MM:SS format. Defaults to 12:00:00 (noon) if omitted.'}}}
输出模式
{'type': 'object', 'required': ['transitDate', 'houseSystem', 'houses', 'ascendant', 'transitPlanets', 'natalPlanets', 'aspects', 'summary'], 'properties': {'houses': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'longitude', 'sign', 'degree'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'number': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}}, 'aspects': {'type': 'array', 'items': {'type': 'object', 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation', 'transitInterpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'planet2': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'strength': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'isApplying': {'type': 'boolean'}, 'typeLocalized': {'type': 'string'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}, 'planet1Localized': {'type': 'string'}, 'planet2Localized': {'type': 'string'}, 'transitInterpretation': {'type': 'object', 'required': ['summary', 'timing', 'impact', 'guidance', 'keywords'], 'properties': {'impact': {'type': 'string'}, 'timing': {'type': 'string'}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}}}}}}, 'summary': {'type': 'object', 'required': ['total', 'harmonious', 'challenging', 'neutral', 'strongest', 'byType'], 'properties': {'total': {'type': 'number'}, 'byType': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'neutral': {'type': 'number'}, 'strongest': {'type': ['object', 'null'], 'required': ['planet1', 'planet2', 'type', 'angle', 'orb', 'isApplying', 'strength', 'interpretation', 'transitInterpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'enum': ['CONJUNCTION', 'OPPOSITION', 'TRINE', 'SQUARE', 'SEXTILE', 'SEMI_SEXTILE', 'QUINCUNX', 'SEMI_SQUARE', 'SESQUIQUADRATE'], 'type': 'string'}, 'angle': {'type': 'number'}, 'planet1': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'planet2': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'strength': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'isApplying': {'type': 'boolean'}, 'typeLocalized': {'type': 'string'}, 'interpretation': {'enum': ['harmonious', 'challenging', 'neutral'], 'type': 'string'}, 'planet1Localized': {'type': 'string'}, 'planet2Localized': {'type': 'string'}, 'transitInterpretation': {'type': 'object', 'required': ['summary', 'timing', 'impact', 'guidance', 'keywords'], 'properties': {'impact': {'type': 'string'}, 'timing': {'type': 'string'}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}}}}}, 'harmonious': {'type': 'number'}, 'challenging': {'type': 'number'}}}, 'ascendant': {'type': 'object', 'required': ['sign', 'degree', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'signLocalized': {'type': 'string'}}}, 'houseSystem': {'enum': ['placidus', 'whole-sign', 'equal', 'koch'], 'type': 'string'}, 'transitDate': {'type': 'string'}, 'natalPlanets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}}}}, 'transitPlanets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'house', 'speed', 'isRetrograde'], 'properties': {'name': {'enum': ['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'North Node', 'South Node', 'Chiron', 'Black Moon Lilith'], 'type': 'string'}, 'sign': {'type': 'string'}, 'house': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'speed': {'type': 'number'}, 'degree': {'type': 'number', 'maximum': 30, 'minimum': 0}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number', 'maximum': 360, 'minimum': 0}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}}}}}}
post_astrology_transits
Calculate planetary transits - Current transits with natal chart comparison
Calculate current or future planetary transits (positions of all bodies now). Optionally compare transits to natal chart to find transit-to-natal aspects. Returns all 14 celestial bodies (the 10 classical planets, the lunar nodes, Chiron, and Black Moon Lilith) with signs, degrees, and speeds. When natal chart provided, includes transit aspects (transiting Sun conjunct natal Mars, etc.) with orbs and applying/separating status. Perfect for daily transit forecasts, aspect alerts, and personalized transit reports.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2025-12-19', 'description': 'Transit date in YYYY-MM-DD format (defaults to current date)'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '12:00:00', 'description': 'Transit time in HH:MM:SS format (defaults to current time)'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 0, 'example': 0, 'description': 'Transit timezone: decimal hours from UTC OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the transit date. Defaults to 0 (UTC).'}, 'natalChart': {'type': 'object', 'required': ['date', 'time', 'latitude', 'longitude', 'timezone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-15', 'description': 'Date in YYYY-MM-DD format. A single-digit month or day is accepted and zero-padded (2026-3-5 becomes 2026-03-05). Impossible calendar dates are rejected. Calculations that read planetary positions support 1550-01-02 to 2650-01-22; outside that span they answer 400 with code date_out_of_range, and a calculation that reads a window around the date (a sunrise search, a run of days) may answer the same 400 for a date within a few days of either end.'}, 'time': {'type': 'string', 'format': 'time', 'example': '14:30:00', 'description': 'Time in 24-hour format. Seconds are optional and default to 00 (14:30 becomes 14:30:00); a single-digit hour is zero-padded. Out-of-range values are rejected.'}, 'latitude': {'type': 'number', 'example': 40.7128, 'maximum': 90, 'minimum': -90, 'description': 'Natal birth latitude in decimal degrees, positive north. Sets the local sidereal time behind the natal Ascendant and house cusps that the transits are measured against.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'example': -5, 'description': 'Natal timezone: decimal hours OR IANA name (e.g. "America/New_York"). IANA resolved to the DST-correct offset for the natal date.'}, 'longitude': {'type': 'number', 'example': -74.006, 'maximum': 180, 'minimum': -180, 'description': 'Natal birth longitude in decimal degrees, positive east and negative west. Example: New York -74.0060, London -0.1276, Sydney 151.2093.'}}, 'description': 'Optional natal chart data to compare transits against'}}}
输出模式
{'type': 'object', 'required': ['transitDate', 'transitTime', 'timezone', 'transitPlanets'], 'properties': {'summary': {'type': 'object', 'required': ['totalAspects', 'harmonious', 'challenging', 'neutral'], 'properties': {'neutral': {'type': 'number'}, 'harmonious': {'type': 'number'}, 'challenging': {'type': 'number'}, 'totalAspects': {'type': 'number'}}}, 'timezone': {'type': 'number'}, 'transitDate': {'type': 'string'}, 'transitTime': {'type': 'string'}, 'transitAspects': {'type': 'array', 'items': {'type': 'object', 'required': ['transitPlanet', 'natalPlanet', 'type', 'angle', 'orb', 'isApplying', 'strength', 'nature', 'interpretation'], 'properties': {'orb': {'type': 'number'}, 'type': {'type': 'string'}, 'angle': {'type': 'number'}, 'nature': {'type': 'string'}, 'strength': {'type': 'number'}, 'isApplying': {'type': 'boolean'}, 'natalPlanet': {'type': 'string'}, 'transitPlanet': {'type': 'string'}, 'typeLocalized': {'type': 'string'}, 'interpretation': {'type': 'object', 'required': ['summary', 'timing', 'impact', 'guidance', 'keywords'], 'properties': {'impact': {'type': 'string'}, 'timing': {'type': 'string'}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}}}}, 'natalPlanetLocalized': {'type': 'string'}, 'transitPlanetLocalized': {'type': 'string'}}}}, 'transitPlanets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'longitude', 'latitude', 'sign', 'degree', 'speed', 'isRetrograde'], 'properties': {'name': {'type': 'string'}, 'sign': {'type': 'string'}, 'speed': {'type': 'number'}, 'degree': {'type': 'number'}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}, 'isRetrograde': {'type': 'boolean'}, 'nameLocalized': {'type': 'string'}, 'signLocalized': {'type': 'string'}}}}}}
post_astrology_transits_monthly
Monthly Transits - Tropical sign ingresses for an entire month
Get every tropical sign change for a given month, for all 14 Western bodies: the Sun through Pluto, both lunar nodes, Chiron and Black Moon Lilith. Returns the starting sign of each body on the first of the month and then each ingress with its exact date and time in your timezone. Omit year and month to get the month in progress, so a published transit calendar stays current without a redeploy. Essential for transit calendars, monthly forecast copy, retrograde and ingress tracking, and newsletter automation. Monthly transit API, planetary ingress calendar, sign change dates, tropical transit table. Verified against NASA JPL Horizons, with the four cardinal ingresses cross-checked against published equinox and solstice times.
只读
输入模式
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'year': {'type': 'integer', 'example': 2026, 'maximum': 2649, 'minimum': 1551, 'description': 'Year for the monthly transit table (1551 to 2649). Defaults to the current year (UTC).'}, 'month': {'type': 'integer', 'example': 3, 'maximum': 12, 'minimum': 1, 'description': 'Month number (1-12). Defaults to the current month (UTC).'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'nodeType': {'enum': ['mean', 'true'], 'type': 'string', 'default': 'true', 'example': 'true', 'description': 'Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is the osculating node and the default, because it is what most Western chart software reports; mean is the smoothed node preferred by several evolutionary schools, so pass "mean" to match one. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 0, 'example': -5, 'description': 'Timezone: an IANA name (e.g. "America/New_York", "Europe/London", or `cities[0].timezone` from /location/search) or decimal hours from UTC (e.g. -5 for EST, 5.5 for IST). An IANA name is resolved once, at the start of the window, and that offset applies to every time in the response. Ingress dates and times are reported in this zone, which is what makes a published calendar read correctly for its audience. Defaults to 0 (UTC).'}}}
输出模式
{'type': 'object', 'required': ['year', 'month', 'timezone', 'startingPositions', 'transitEvents'], 'properties': {'year': {'type': 'number'}, 'month': {'type': 'number'}, 'timezone': {'type': 'number'}, 'transitEvents': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'fromSign', 'toSign', 'date', 'time', 'datetime', 'isRetrograde'], 'properties': {'date': {'type': 'string'}, 'time': {'type': 'string'}, 'planet': {'type': 'string'}, 'toSign': {'type': 'string'}, 'datetime': {'type': 'string'}, 'fromSign': {'type': 'string'}, 'isRetrograde': {'type': 'boolean'}, 'planetLocalized': {'type': 'string'}, 'toSignLocalized': {'type': 'string'}, 'fromSignLocalized': {'type': 'string'}}}}, 'startingPositions': {'type': 'array', 'items': {'type': 'object', 'required': ['planet', 'sign', 'longitude'], 'properties': {'sign': {'type': 'string'}, 'planet': {'type': 'string'}, 'longitude': {'type': 'number'}, 'signLocalized': {'type': 'string'}, 'planetLocalized': {'type': 'string'}}}}}}
已更改
post_astrology_planetary_returns
2026年10月1日 02:54
已更改
post_astrology_ecliptic_crossings
2026年10月1日 02:54
已更改
post_astrology_parallels_monthly
2026年10月1日 02:54
已更改
post_astrology_transits_monthly
2026年10月1日 02:54
已更改
post_astrology_transits
2026年10月1日 02:54
已更改
post_astrology_aspects_monthly
2026年10月1日 02:54
已更改
get_astrology_moon_phase_calendar_year_month
2026年10月1日 02:54
已更改
post_astrology_planets_monthly
2026年10月1日 02:54
已更改
post_astrology_profections
2026年9月25日 03:03
已更改
post_astrology_solar_arc
2026年9月25日 03:03
已更改
post_astrology_progressions
2026年9月25日 03:03
已更改
post_astrology_lilith
2026年9月25日 03:03
已更改
post_astrology_asteroids
2026年9月25日 03:03
已更改
post_astrology_arabic_lots
2026年9月25日 03:03
已更改
post_astrology_fixed_stars
2026年9月25日 03:03
已更改
post_astrology_astrocartography
2026年9月25日 03:03
已更改
post_astrology_compatibility_score
2026年9月25日 03:03
已更改
post_astrology_composite_chart
2026年9月25日 03:03
已更改
post_astrology_ecliptic_crossings
2026年9月25日 03:03
已更改
post_astrology_parallels_monthly
2026年9月25日 03:03
已更改
post_astrology_transit_aspects
2026年9月25日 03:03
已更改
post_astrology_transits_monthly
2026年9月25日 03:03
已更改
post_astrology_aspect_patterns
2026年9月25日 03:03
已更改
post_astrology_aspects_monthly
2026年9月25日 03:03
已更改
post_astrology_aspects
2026年9月25日 03:03
已更改
post_astrology_synastry
2026年9月25日 03:03
已更改
post_astrology_natal_chart
2026年9月25日 03:03
已更改
post_astrology_profections
2026年9月21日 03:01
已更改
post_astrology_solar_arc
2026年9月21日 03:01
已更改
post_astrology_progressions
2026年9月21日 03:01