此 MCP 可以做什么
Calculates Western astrology natal charts, planetary positions, aspects, transits, horoscopes, synastry, and related interpretive data.
工具
输入模式
{'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'}}}}
输入模式
{'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'}}}}
输入模式
{'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'}}}}
输入模式
{'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'}}}}
输入模式
{'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'}}}
输入模式
{'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'}}}
输入模式
{'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'}}}}}}
输入模式
{'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.'}}}
输入模式
{'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'}}}
输入模式
{'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.'}}}
输入模式
{'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'}}}
输入模式
{'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}}}}}
输入模式
{'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'}}}}}}}
输入模式
{'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'}}}
输入模式
{'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'}}}
输入模式
{'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}}}}}
输入模式
{'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}}}}}
输入模式
{'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'}}}}}}}
输入模式
{'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'}}}}}
输入模式
{'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'}}}
输入模式
{'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'}}}}}}
输入模式
{'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'}}}
输入模式
{'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}}}}}
输入模式
{'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'}}}}}
输入模式
{'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'}}}}}
输入模式
{'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'}}}}}
输入模式
{'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'}}}
输入模式
{'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'}}}}}
输入模式
{'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'}}}}}}}}
输入模式
{'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'}}}
输入模式
{'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}}}}}
输入模式
{'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'}}}
输入模式
{'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'}}}}}
输入模式
{'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}}}}}
输入模式
{'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'}}}}}
输入模式
{'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'}}}
输入模式
{'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'}}}}}}
输入模式
{'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'}}}}}}
输入模式
{'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'}}}}}}
近期工具变更
类似的 MCP 服务器
Asterwise
Provides Vedic and Western astrology, numerology, tarot, dream-symbol, crystal, compatibility, and related esoteric calculations …
Vedic Astrology and Kundli MCP Server by RoxyAPI
Calculates and explains Vedic astrology charts, planetary positions, dashas, nakshatras, yogas, doshas, aspects, compatibility, a…
Sahadeva
Calculates and analyzes Vedic astrology charts, compatibility, dashas, transits, yogas, remedies, and evidence or readiness check…
tollbooth-sample
Provides current, forecast, and historical weather data alongside Lightning-based usage credits, pricing, coupons, balances, and …
Thesportsdb
Provides sports catalog and match data, including teams, players, leagues, schedules, standings, lineups, timelines, scores, and …
Rescuegroups
Searches adoptable animals, breeds, rescues, shelters, and organization details from RescueGroups.org.
Recipes
Provides meal and recipe discovery by ingredient, random selection, and detailed cooking instructions.
F1
Provides Formula 1 schedules, race results, driver profiles, and current championship standings.