AstroWay Calculation API V1 API

Professional astrology calculation API powered by Swiss Ephemeris. Compute natal charts, synastry, progressions, directions, transits, Human Design, and 80+ other calculation types via a simple REST API.

Operations 800

Showing the first 250 of 800. The full set is in the contract, and via get_provider_operations.

POST /chart Natal Chart #
POST /planets Planet Positions #
POST /ephemeris Ephemeris Range #
POST /sun-times Sun Times #
POST /synastry Synastry #
POST /match/score Match Score (dating compatibility) #
POST /composite Composite Chart #
POST /davison Davison Chart #
POST /coalescent Coalescent Chart #
POST /group-synastry Group Synastry #
POST /synastry/aspect-grid Synastry Aspect Grid #
POST /synastry/house-overlay Synastry House Overlay #
POST /synastry/element-balance Synastry Element Balance #
POST /synastry/attraction-score Synastry Attraction Score #
POST /transits Transits #
POST /transit-calendar Transit Calendar #
POST /forecast-calendar Forecast Calendar #
POST /progressions Secondary Progressions #
POST /tertiary-progressions Tertiary Progressions #
POST /minor-progressions Minor Progressions #
POST /primary-directions Primary Directions #
POST /symbolic-directions Symbolic Directions #
POST /solar-return Solar Return #
POST /lunar-return Lunar Return #
POST /planetary-return Planetary Return #
POST /profections Profections #
POST /firdaria Firdaria #
POST /rectification Rectification #
POST /rectification/trutine Trutine of Hermes #
POST /harmonics Harmonic Chart #
POST /draconic Draconic Chart #
POST /heliocentric Heliocentric Chart #
POST /horizon Horizon Chart #
POST /vedic-divisional Vedic Divisional Chart (DEPRECATED: use /vedic/varga/{D}<*>) #
POST /render/wheel-western Western Wheel (SVG) #
POST /render/aspect-grid Aspect Grid (SVG) #
POST /render/moon-phase Moon Phase (SVG) #
POST /render/timeline Timeline (SVG) #
POST /render/bi-wheel Bi-Wheel (SVG) #
POST /render/tri-wheel Tri-Wheel (SVG) #
POST /render/composite Composite Chart (SVG) #
POST /render/biorhythm Biorhythm (SVG) #
POST /render/wheel-vedic-north Vedic Wheel: North Indian (SVG) #
POST /render/wheel-vedic-south Vedic Wheel: South Indian (SVG) #
POST /render/wheel-vedic-east Vedic Wheel: East Indian (SVG) #
POST /render/cosmogram Cosmogram: Hamburg School 90° dial (SVG) #
POST /render/eclipse-path Eclipse Path Map (SVG) #
POST /render/star-map Star Map (SVG) #
POST /chinese/true-solar-time True solar time #
POST /chinese/solar-terms 24 Solar Terms (節氣) #
POST /chinese/lunar-date Gregorian to Lunar Date #
POST /chinese/zodiac/animal Chinese Zodiac Animal #
POST /chinese/zodiac/element Chinese Element #
POST /chinese/zodiac/inner-animal Inner Animal (month branch) #
POST /chinese/zodiac/secret-animal Secret Animal (hour branch) #
POST /chinese/zodiac/compatibility Animal Compatibility #
POST /chinese/feng-shui/kua Kua Number #
POST /chinese/feng-shui/lucky-directions Lucky / Unlucky Directions #
POST /chinese/feng-shui/bagua Bagua Life Areas #
POST /chinese/feng-shui/flying-star Flying Star natal chart (Xuan Kong Fei Xing) #
POST /chinese/feng-shui/annual-stars Annual flying stars and afflictions #
POST /chinese/tong-shu Tong Shu day: officer and mansion #
POST /chinese/tong-shu/select Tong Shu date selection #
POST /vastu/mandala Vastu Purusha Mandala (81 padas) #
POST /vastu/entrance Main door pada and its result #
POST /vastu/rooms Room placement and score #
POST /vastu/directions The eight directions #
POST /mayan/tzolkin Tzolkin Day Sign #
POST /mayan/haab Haab Civil Day #
POST /mayan/long-count Long Count #
POST /mayan/calendar-round Calendar Round #
POST /mayan/lord-of-night Lord of the Night #
POST /mayan/full Full Mayan Date #
POST /mayan/compatibility Mayan Compatibility #
POST /mayan/dreamspell Dreamspell (Argüelles 1990) #
POST /wellness/medical-astrology Medical Astrology (Body Rulership) #
POST /wellness/diet Dietary Suggestions #
POST /wellness/yoga Yoga Practice by Sign #
POST /wellness/exercise Exercise Recommendations #
POST /wellness/mental-health Mental-Health Profile #
POST /wellness/sleep-cycles Moon-Phase Sleep Tips #
POST /wellness/herbs Herbs by Planetary Ruler #
POST /wellness/crystals Healing Crystals by Sign #
POST /wellness/cycle Wellness Cycle Milestones #
POST /wellness/biorhythm Biorhythm (JSON) #
POST /pet/birth-chart Pet Birth Chart #
POST /pet/sun-sign-meaning Pet Sun-Sign Meaning #
POST /pet/personality Pet Personality Profile #
POST /pet/temperament Pet Temperament #
POST /pet/training-style Training Style #
POST /pet/diet-by-sign Diet by Sign #
POST /pet/grooming-by-element Grooming by Element #
POST /pet/exercise-needs Exercise Needs #
POST /pet/communication-style Communication Style #
POST /pet/play-style Play Style + Toys #
POST /pet/health-tips Health Watch-Outs #
POST /pet/best-names Best Names by Sign #
POST /pet/lucky-day Lucky Days #
POST /pet/owner-pet-compatibility Owner-Pet Compatibility #
POST /business/founder-personality Founder Personality #
POST /business/leadership-style Leadership Style #
POST /business/ideal-industry Ideal Industries #
POST /business/founding-chart Founding-Day Chart #
POST /business/electional-day Electional-Day Suitability #
POST /business/name-suggestions Name Suggestions #
POST /business/team-compatibility Team Compatibility #
POST /business/customer-archetype Customer Archetype #
POST /business/marketing-style Marketing Style #
POST /business/risk-profile Risk Profile #
POST /business/ideal-partner-sign Ideal Partner Signs #
POST /business/expansion-timing Expansion Timing #
POST /financial/investor-archetype Investor Archetype #
POST /financial/risk-tolerance Risk Tolerance #
POST /financial/spending-style Spending Style #
POST /financial/savings-tips Savings Tips #
POST /financial/career-money-style Career Money Style #
POST /financial/wealth-house 2nd & 8th House #
POST /financial/lucky-numbers Lucky Numbers #
POST /financial/lucky-day Lucky Day of Week #
POST /financial/market-timing Market-Timing Caution Windows #
POST /financial/wealth-cycle Wealth Cycle (long) #
POST /bazi/year-pillar Year Pillar #
POST /bazi/month-pillar Month Pillar #
POST /bazi/four-pillars Four Pillars (full) #
POST /bazi/chart Full BaZi chart #
POST /bazi/hidden-stems Hidden stems (Cang Gan) #
POST /bazi/na-yin Na Yin sound-element #
POST /bazi/life-stages Twelve life stages #
POST /bazi/symbolic-stars Symbolic stars (Shen Sha) #
POST /bazi/interactions Branch and stem interactions #
POST /bazi/strength Day-master strength #
POST /bazi/day-master Day Master #
POST /bazi/element-balance 5-Element Balance #
POST /bazi/yearly Yearly Forecast #
POST /bazi/monthly Monthly Forecast #
POST /bazi/year-pillar-decade Year Pillars × 10 #
POST /bazi/hour-pillar Hour Pillar #
POST /bazi/ten-gods Ten Gods (Shi Shen) #
POST /bazi/luck-pillars Luck Pillars (Da Yun) #
POST /ziwei/twelve-palaces 12 Palaces #
POST /ziwei/chart Full Chart (computed) #
POST /ziwei/four-transformations Four Transformations (四化) #
POST /ziwei/main-stars 14 Main Stars #
POST /ziwei/full-chart Full Chart (deprecated) #
POST /ziwei/palace-destiny Destiny Palace (Ming) #
POST /ziwei/palace-siblings Siblings Palace (Xiongdi) #
POST /ziwei/palace-spouse Spouse Palace (Fuqi) #
POST /ziwei/palace-children Children Palace (Zinu) #
POST /ziwei/palace-wealth Wealth Palace (Caibo) #
POST /ziwei/palace-health Health Palace (Ji'e) #
POST /ziwei/palace-travel Travel Palace (Qianyi) #
POST /ziwei/palace-career Career Palace (Guanlu) #
POST /ziwei/palace-property Property Palace (Tianzhai) #
POST /midpoints Midpoints #
POST /midpoint-trees Midpoint Trees (Uranian) #
POST /antiscia Antiscia #
POST /parallel-aspects Parallel Aspects #
POST /arabic-parts Arabic Parts (Lots) #
POST /fixed-stars Fixed Stars #
GET /fixed-stars/catalog Fixed star catalogue #
POST /gauquelin-sectors Gauquelin Sectors #
POST /sabian-symbols Sabian Symbols #
POST /aspect-timeline Aspect Timeline #
POST /aspect-bar Aspect Bars (Gantt) #
POST /eclipses Eclipses #
POST /ingresses Planet Ingresses #
POST /planetary-cycles Planetary Cycles #
POST /retrograde-periods Retrograde Periods #
POST /moon-voc Moon Void-of-Course #
POST /planetary-hours Planetary Hours #
POST /lunar-calendar Lunar Calendar #
POST /moon-aspects Moon Aspects #
POST /moon-phase Moon Phase #
POST /houses House Cusps #
POST /aspects Aspect Matrix #
POST /planetary-phases Planetary Phases #
POST /algol-minimum Algol Minimum #
POST /algol-minimum/nearest Algol Nearest Minimum #
POST /cyclic-index Cyclic Index #
POST /essential-dignities Essential Dignities #
POST /almuten Almuten Figuris #
POST /hyleg Hyleg & Alcocoden #
POST /receptions Mutual Receptions #
POST /disposition-chains Disposition Chains #
POST /disposition-chains/layout Disposition Chains Layout #
POST /horary Horary Chart #
POST /horary/diagnostics Horary Diagnostics #
POST /horary/planetary-hours Horary Planetary Hours #
POST /horary/moon-aspects Horary Moon Aspects #
POST /horary/moon-voc Horary Moon VOC #
POST /horary/via-combusta Via Combusta Check #
POST /human-design Human Design Chart #
POST /human-design/compatibility HD Compatibility #
POST /human-design/transits HD Transits #
POST /hd/incarnation-cross Incarnation Cross #
POST /hd/dream-rave Dream Rave #
POST /hd/hologenetic Hologenetic Profile #
POST /hd/penta Penta Chart #
POST /hd/group-overlay HD Group Overlay #
POST /hd/sensitivity HD Time Sensitivity #
POST /hd/rave-new-years Rave New Years #
POST /hd/design-date HD Design Date #
POST /hd/circuitry HD Circuitry Analysis #
POST /acg Astrocartography (A*C*G) #
POST /parans Parans #
POST /acg/best-places Best places for a life category #
GET /acg/countries Countries available for ranking #
POST /parans/star Star-planet parans (Brady) #
POST /zenith Zenith #
POST /local-space Local Space Chart #
POST /local-space/influence-zone Local Space Influence Zone #
POST /relocation Relocation Chart #
POST /ccg-analysis CCG Analysis #
POST /eclipse-analysis Eclipse Analysis #
POST /geodetic Geodetic Equivalents #
POST /solar-acg Solar A*C*G #
POST /acg-zones A*C*G Lines Near a Point #
GET /acg/categories A*C*G Life Categories #
POST /acg/by-category A*C*G by Life Category #
POST /acg/line-report A*C*G Line Report #
POST /phase-return Phase Return #
POST /nakshatras Nakshatras #
POST /ashtakavarga Ashtakavarga #
POST /vedic/varga/D1 Varga D1: Rashi #
POST /vedic/varga/D2 Varga D2: Hora #
POST /vedic/varga/D3 Varga D3: Drekkana #
POST /vedic/varga/D4 Varga D4: Chaturthamsa #
POST /vedic/varga/D7 Varga D7: Saptamsa #
POST /vedic/varga/D9 Varga D9: Navamsa #
POST /vedic/varga/D10 Varga D10: Dasamsa #
POST /vedic/varga/D12 Varga D12: Dwadasamsa #
POST /vedic/varga/D16 Varga D16: Shodasamsa #
POST /vedic/varga/D20 Varga D20: Vimsamsa #
POST /vedic/varga/D24 Varga D24: Chaturvimsamsa #
POST /vedic/varga/D27 Varga D27: Saptavimsamsa #
POST /vedic/varga/D30 Varga D30: Trimsamsa #
POST /vedic/varga/D40 Varga D40: Khavedamsa #
POST /vedic/varga/D45 Varga D45: Akshavedamsa #
POST /vedic/varga/D60 Varga D60: Shashtiamsa #
POST /vedic/panchang/full Panchang: full #
POST /vedic/panchang/tithi Panchang: Tithi #
POST /vedic/panchang/karana Panchang: Karana #
POST /vedic/panchang/yoga Panchang: Yoga #
POST /vedic/panchang/nakshatra-of-day Panchang: Nakshatra of Day #
POST /vedic/panchang/choghadia Panchang: Choghadia #
POST /vedic/panchang/hora Panchang: Hora #
POST /vedic/panchang/rahu-kaal Panchang: Rahu Kaal block #
POST /vedic/shadbala/sthana Shadbala: Sthana (positional) #
POST /vedic/shadbala/dig Shadbala: Dig (directional) #
POST /vedic/shadbala/kala Shadbala: Kala (temporal) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/astroway-info:astroway-calculation-api-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

astroway-info-v1-openapi.json Raw ↑
{"openapi":"3.1.0","info":{"title":"AstroWay Calculation API","version":"2.296.18","description":"Professional astrology calculation API powered by Swiss Ephemeris. Compute natal charts, synastry, progressions, directions, transits, Human Design, and 80+ other calculation types via a simple REST API.","contact":{"url":"https://app.astroway.info"}},"servers":[{"url":"https://api.astroway.info/v1","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key for authentication. Include in X-Api-Key header."}},"schemas":{"ChartInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","nullable":true,"minimum":-14,"maximum":14,"default":0,"description":"Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"houseSystem":{"type":"string","enum":["P","K","R","C","E","W","B","M","O","A","T","V","D","F","G","H","I","i","L","N","Q","S","U","X","Y"],"default":"P"},"name":{"type":"string","default":""},"city":{"type":"string","default":""},"zodiacType":{"type":"string","enum":["tropical","sidereal"]},"ayanamsaId":{"type":"number","nullable":true},"ayanamsa":{"type":"string","enum":["fagan-bradley","lahiri","de-luce","raman","krishnamurti","kp","yukteshwar","jn-bhasin","true-citra","djwhal-khul"],"description":"Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either."},"cosmogram":{"type":"boolean"}},"required":["date","time","latitude","longitude"],"additionalProperties":{"nullable":true},"description":"Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."},"EmptyBody":{"type":"object","properties":{},"description":"This endpoint reads nothing from the request body. Send {} (or any object, which is ignored)."},"WhitelabelConfigPatch":{"type":"object","properties":{"primaryColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"secondaryColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","minLength":1,"maxLength":64},"footerText":{"type":"string","nullable":true,"maxLength":500},"customDomain":{"type":"string","nullable":true,"maxLength":255,"pattern":"^([a-z0-9-]+\\.)+[a-z]{2,}$/i"},"companyName":{"type":"string","nullable":true,"minLength":1,"maxLength":80},"companyUrl":{"type":"string","nullable":true,"maxLength":255,"format":"uri"},"companyEmail":{"type":"string","nullable":true,"maxLength":120,"format":"email"},"companyMobile":{"type":"string","nullable":true,"maxLength":40},"companyBio":{"type":"string","nullable":true,"maxLength":500},"reportName":{"type":"string","nullable":true,"minLength":1,"maxLength":80}}},"ThemedReport":{"type":"object","properties":{"chart":{"allOf":[{"$ref":"#/components/schemas/ChartInput"},{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"Birth latitude. Required here: the whole document is computed from it."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"Birth longitude. Required here: the whole document is computed from it."}},"additionalProperties":{"nullable":true}}],"description":"Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."},"language":{"type":"string","enum":["uk","en","de","ru","pl","es","pt","hi","fr","ko","it","ja","id","tr","nl","ro","cs","vi","ar","el","hu"]},"whitelabel":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"companyName":{"type":"string","minLength":1,"maxLength":80},"companyUrl":{"type":"string","format":"uri"},"companyEmail":{"type":"string","format":"email"},"companyMobile":{"type":"string","maxLength":40},"companyBio":{"type":"string","maxLength":500},"logoUrl":{"type":"string","format":"uri"},"frontImage":{"type":"string","format":"uri"},"textPrimaryColor":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"textSecondaryColor":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"backgroundColor":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"themeColor":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$","description":"Accent colour, used for section heading text and inline emphasis."},"headingColor":{"type":"string","pattern":"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$","description":"Colour of the divider rule under each section heading (not the heading text, which is themeColor)."},"footerText":{"type":"string","maxLength":200},"fontPairing":{"type":"string","enum":["serif-sans","sans-serif","serif-only","sans-only","system"]},"reportName":{"type":"string","minLength":1,"maxLength":80}},"additionalProperties":false}]}},"required":["chart"]},"DestinyMatrixLadini":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"]},"KabbalahGematria":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":500}},"required":["text"]},"HoraryViaCombusta":{"type":"object","properties":{"moonLongitude":{"type":"number","nullable":true}},"required":["moonLongitude"]},"BaziDecade":{"type":"object","properties":{"startYear":{"type":"integer","minimum":1900,"maximum":2100},"language":{"type":"string"}},"required":["startYear"]},"WellnessDate":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"]},"EsotericDecodeBody":{"type":"object","properties":{"sequence":{"type":"string","minLength":1,"maxLength":8,"pattern":"^\\d+$"},"context":{"type":"string","maxLength":200}},"required":["sequence"]},"EsotericDreamDecodeBody":{"type":"object","properties":{"text":{"type":"string","minLength":3,"maxLength":2000},"recurring":{"type":"boolean","default":false}},"required":["text"]},"EsotericRecommendBody":{"type":"object","properties":{"sunSign":{"type":"string","minLength":3},"moonSign":{"type":"string","minLength":3},"ascendantSign":{"type":"string","minLength":3},"intent":{"type":"string","minLength":2,"maxLength":80},"limit":{"type":"integer","minimum":1,"maximum":20,"default":5}}},"ZiweiDateInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."}},"required":["date"]},"ZiweiSihuaInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"school":{"type":"string","enum":["zhongzhou","quanji","quanshu","beipai"]}},"required":["date"]},"ZiweiChartInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"gender":{"type":"string","enum":["male","female"]},"school":{"type":"string","enum":["zhongzhou","quanji","quanshu","beipai"]},"yearDivide":{"type":"string","enum":["lunar","lichun"]},"fixLeap":{"type":"boolean"},"dayDivide":{"type":"string","enum":["forward","current"]},"tianmaSchool":{"type":"string","enum":["year","month"]},"age":{"type":"integer","minimum":1,"maximum":120},"language":{"type":"string"}},"required":["date","time","gender"]},"BaziDateInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"language":{"type":"string"}},"required":["date"]},"BaziFourPillarsInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"language":{"type":"string"}},"required":["date"]},"BaziBirthInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"dayBoundary":{"type":"string","enum":["23:00","midnight"]},"language":{"type":"string"}},"required":["date"]},"BaziChartInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"dayBoundary":{"type":"string","enum":["23:00","midnight"]},"language":{"type":"string"},"stageSchool":{"type":"string","enum":["classical","unified"]},"includeFullTable":{"type":"boolean"},"includeLuck":{"type":"boolean"},"gender":{"type":"string","enum":["male","female"]}},"required":["date"]},"ChineseTrueSolarTimeInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"language":{"type":"string"}},"required":["date","time","timezoneOffset","longitude"]},"BaziHourInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"default":8,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"language":{"type":"string"}},"required":["date","time"]},"BaziLuckPillarsInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"dayBoundary":{"type":"string","enum":["23:00","midnight"]},"language":{"type":"string"},"gender":{"type":"string","enum":["male","female"]},"count":{"type":"integer","minimum":1,"maximum":10,"default":8}},"required":["date","gender"]},"BaziMonthlyInput":{"type":"object","properties":{"natalDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"natalTime":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"natalTzOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"dayBoundary":{"type":"string","enum":["23:00","midnight"]},"targetYear":{"type":"integer","minimum":1900,"maximum":2100},"targetMonth":{"type":"integer","minimum":1,"maximum":12},"language":{"type":"string"}},"required":["natalDate","targetYear","targetMonth"]},"BaziTenGodsInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"dayBoundary":{"type":"string","enum":["23:00","midnight"]},"language":{"type":"string"}},"required":["date"]},"BaziYearlyInput":{"type":"object","properties":{"natalDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"natalTime":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"natalTzOffset":{"type":"number","minimum":-14,"maximum":14,"description":"Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"longitude":{"type":"number","minimum":-180,"maximum":180},"trueSolarTime":{"type":"boolean"},"dayBoundary":{"type":"string","enum":["23:00","midnight"]},"targetYear":{"type":"integer","minimum":1900,"maximum":2100},"gender":{"type":"string","enum":["male","female"]},"includeMonths":{"type":"boolean"},"language":{"type":"string"}},"required":["natalDate","targetYear"]},"WellnessCycleInput":{"type":"object","properties":{"birthDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"targetDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["birthDate"]},"WellnessSignFromChartInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","nullable":true,"minimum":-14,"maximum":14,"default":0,"description":"Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"houseSystem":{"type":"string","enum":["P","K","R","C","E","W","B","M","O","A","T","V","D","F","G","H","I","i","L","N","Q","S","U","X","Y"],"default":"P"},"name":{"type":"string","default":""},"city":{"type":"string","default":""},"zodiacType":{"type":"string","enum":["tropical","sidereal"]},"ayanamsaId":{"type":"number","nullable":true},"ayanamsa":{"type":"string","enum":["fagan-bradley","lahiri","de-luce","raman","krishnamurti","kp","yukteshwar","jn-bhasin","true-citra","djwhal-khul"],"description":"Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either."},"cosmogram":{"type":"boolean"}},"required":["date","time","latitude","longitude"],"additionalProperties":{"nullable":true},"description":"Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."},"FinancialDate":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"]},"MayanDateOnlyInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"]},"MayanPairInput":{"type":"object","properties":{"person1":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"]},"person2":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["date"]}},"required":["person1","person2"]},"FinancialFinancialInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","nullable":true,"minimum":-14,"maximum":14,"default":0,"description":"Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"houseSystem":{"type":"string","enum":["P","K","R","C","E","W","B","M","O","A","T","V","D","F","G","H","I","i","L","N","Q","S","U","X","Y"],"default":"P"},"name":{"type":"string","default":""},"city":{"type":"string","default":""},"zodiacType":{"type":"string","enum":["tropical","sidereal"]},"ayanamsaId":{"type":"number","nullable":true},"ayanamsa":{"type":"string","enum":["fagan-bradley","lahiri","de-luce","raman","krishnamurti","kp","yukteshwar","jn-bhasin","true-citra","djwhal-khul"],"description":"Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either."},"cosmogram":{"type":"boolean"}},"required":["date","time","latitude","longitude"],"additionalProperties":{"nullable":true},"description":"Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."},"BusinessBusinessInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","nullable":true,"minimum":-14,"maximum":14,"default":0,"description":"Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"houseSystem":{"type":"string","enum":["P","K","R","C","E","W","B","M","O","A","T","V","D","F","G","H","I","i","L","N","Q","S","U","X","Y"],"default":"P"},"name":{"type":"string","default":""},"city":{"type":"string","default":""},"zodiacType":{"type":"string","enum":["tropical","sidereal"]},"ayanamsaId":{"type":"number","nullable":true},"ayanamsa":{"type":"string","enum":["fagan-bradley","lahiri","de-luce","raman","krishnamurti","kp","yukteshwar","jn-bhasin","true-citra","djwhal-khul"],"description":"Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either."},"cosmogram":{"type":"boolean"}},"required":["date","time","latitude","longitude"],"additionalProperties":{"nullable":true},"description":"Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."},"PetNameInput":{"allOf":[{"$ref":"#/components/schemas/ChartInput"},{"type":"object","properties":{"gender":{"type":"string","enum":["masculine","feminine"]}},"additionalProperties":{"nullable":true}}],"description":"Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."},"PetPairInput":{"type":"object","properties":{"owner":{"$ref":"#/components/schemas/ChartInput"},"pet":{"$ref":"#/components/schemas/ChartInput"}},"required":["owner","pet"]},"PetPetInput":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},"timezoneOffset":{"type":"number","nullable":true,"minimum":-14,"maximum":14,"default":0,"description":"Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent."},"timezone":{"type":"string","example":"Europe/Kyiv","description":"IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset 

# --- truncated at 32 KB (4383 KB total) ---
# Full source: https://artifacts.apis.io/astroway-info/openapi/_original/astroway-info-v1-openapi.json