Synastry
curl -X POST https://api.astroway.info/v1/synastry \ -H "X-Api-Key: aw_live_..." \ -H "Content-Type: application/json" \ -d '{ "chart1": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "chart2": { "date": "1985-11-03", "time": "08:15:00", "timezoneOffset": 2, "latitude": 48.46, "longitude": 35.04 } }'const res = await fetch('https://api.astroway.info/v1/synastry', { method: 'POST', headers: { 'X-Api-Key': process.env.ASTROWAY_API_KEY, 'Content-Type': 'application/json', }, body: JSON.stringify({ "chart1": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "chart2": { "date": "1985-11-03", "time": "08:15:00", "timezoneOffset": 2, "latitude": 48.46, "longitude": 35.04 } }),});const { ok, data, error } = await res.json();if (!ok) throw new Error(error.message);console.log(data);import os, requests
r = requests.post( 'https://api.astroway.info/v1/synastry', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'}, json={ 'chart1': { 'date': "1990-05-15", 'time': "14:30:00", 'timezoneOffset': 3, 'latitude': 50.45, 'longitude': 30.52 }, 'chart2': { 'date': "1985-11-03", 'time': "08:15:00", 'timezoneOffset': 2, 'latitude': 48.46, 'longitude': 35.04 } },)result = r.json()if not result['ok']: raise RuntimeError(result['error']['message'])print(result['data'])<?phpuse GuzzleHttp\Client;
$client = new Client(['base_uri' => 'https://api.astroway.info/v1/']);$r = $client->post('synastry', [ 'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')], 'json' => [ 'chart1' => [ 'date' => '1990-05-15', 'time' => '14:30:00', 'timezoneOffset' => 3, 'latitude' => 50.45, 'longitude' => 30.52, ], 'chart2' => [ 'date' => '1985-11-03', 'time' => '08:15:00', 'timezoneOffset' => 2, 'latitude' => 48.46, 'longitude' => 35.04, ], ],]);$result = json_decode($r->getBody(), true);if (!$result['ok']) throw new \RuntimeException($result['error']['message']);print_r($result['data']);Calculate cross-chart aspects between two natal charts for relationship analysis. Either partner may set timeUnknown: true: cross-aspects are still returned, while that partner’s houses, angles and sect come back null.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”Pair of natal charts where either birth time may be unknown. A chart with timeUnknown: true contributes planets and cross-aspects but no houses, angles or overlays.
object
Birth data where the clock time may be unknown. Either pass time (HH:mm:ss), or set timeUnknown: true and omit it. In the second case the response carries planets and aspects but no houses, angles or sect.
object
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.
Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.
Birth data where the clock time may be unknown. Either pass time (HH:mm:ss), or set timeUnknown: true and omit it. In the second case the response carries planets and aspects but no houses, angles or sect.
object
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.
Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.
Example
{ "chart1": { "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "chart2": { "date": "1985-11-03", "time": "08:15:00", "timezoneOffset": 2, "latitude": 48.46, "longitude": 35.04 }}Responses
Section titled “ Responses ”Successful calculation
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "ok": true, "data": { "chart1": { "input": { "name": "", "date": "1990-05-15", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52, "houseSystem": "P", "city": "", "cosmogram": false }, "julianDay": 2448026.9791666665, "siderealTime": 3.029043551629416, "planets": [ { "id": 0, "name": "Sun", "longitude": 54.37601980167181, "latitude": -0.000020054940759470553, "distance": 1.0108955908980104, "speedLong": 0.9642248003676466, "speedLat": 0.00003805311526169511, "speedDist": 0.00022039347866615117, "isRetrograde": false, "declination": 18.867035147029778, "rightAscension": 52.00919841916813 } ], "houses": { "system": "P", "cusps": [ 169.9679500481848 ], "ascendant": 169.9679500481848, "mc": 77.07426201523143, "armc": 75.95565327444125, "vertex": 336.6271586045666, "equatorialAsc": 164.74875654391414, "coAscWK": 149.27468505332592, "coAscMunkasey": 168.73706704232438, "polarAsc": 329.2746850533259 }, "aspects": [ { "planet1": "Sun", "planet2": "Moon", "planet1Id": 0, "planet2Id": 1, "type": { "name": "Trine", "i18nKey": "aspect_trine", "angle": 120, "orb": 12, "symbol": "△", "isMajor": true, "color": "#3366cc" }, "exactAngle": 117.47133202515602, "orb": 2.5286679748439838, "isApplying": false } ], "houseAspects": [ { "planetName": "Sun", "planetId": 0, "houseIndex": 0, "cuspLongitude": 169.9679500481848, "type": { "name": "Trine", "i18nKey": "aspect_trine", "angle": 120, "orb": 12, "symbol": "△", "isMajor": true, "color": "#3366cc" }, "exactAngle": 115.59193024651299, "orb": 4.408069753487013, "isApplying": false } ], "parallelAspects": [ { "planet1": "Moon", "planet2": "Saturn", "planet1Id": 1, "planet2Id": 6, "type": "parallel", "exactDiff": 0.9889902750346735, "orb": 0.9889902750346735 } ], "antiscia": [ { "planetId": 0, "planetName": "Sun", "antiscion": 125.62398019832818, "contraAntiscion": 305.6239801983282 } ], "antisciaAspects": [], "chartSect": "diurnal", "meta": { "engineVersion": "2.10.03", "calculatedAt": "2026-08-23T22:24:02.486Z" } }, "chart2": { "input": { "name": "", "date": "1985-11-03", "time": "08:15:00", "timezoneOffset": 2, "latitude": 48.46, "longitude": 35.04, "houseSystem": "P", "city": "", "cosmogram": false }, "julianDay": 2446372.7604166665, "siderealTime": 9.08021654643949, "planets": [ { "id": 0, "name": "Sun", "longitude": 220.77033612885523, "latitude": 0.00017390409589492878, "distance": 0.9919111684105741, "speedLong": 1.001466165031108, "speedLat": 0.00001657793612950324, "speedDist": -0.00024797941616784515, "isRetrograde": false, "declination": -15.058009781877828, "rightAscension": 218.34750425400088 } ], "houses": { "system": "P", "cusps": [ 239.2194912194484 ], "ascendant": 239.2194912194484, "mc": 170.4692673562458, "armc": 171.24324819659233, "vertex": 102.15081754955976, "equatorialAsc": 261.95619251649237, "coAscWK": 287.38103061998686, "coAscMunkasey": 243.52896760432273, "polarAsc": 107.38103061998683 }, "aspects": [ { "planet1": "Sun", "planet2": "Moon", "planet1Id": 0, "planet2Id": 1, "type": { "name": "Trine", "i18nKey": "aspect_trine", "angle": 120, "orb": 12, "symbol": "△", "isMajor": true, "color": "#3366cc" }, "exactAngle": 119.79213346849329, "orb": 0.20786653150670986, "isApplying": false } ], "houseAspects": [ { "planetName": "Sun", "planetId": 0, "houseIndex": 2, "cuspLongitude": 311.9608523725515, "type": { "name": "Square", "i18nKey": "aspect_square", "angle": 90, "orb": 10, "symbol": "□", "isMajor": true, "color": "#cc3333" }, "exactAngle": 91.1905162436963, "orb": 1.190516243696294, "isApplying": true } ], "parallelAspects": [ { "planet1": "Sun", "planet2": "true Node", "planet1Id": 0, "planet2Id": 11, "type": "contra-parallel", "exactDiff": 0.5016816840850105, "orb": 0.5016816840850105 } ], "antiscia": [ { "planetId": 0, "planetName": "Sun", "antiscion": 319.2296638711448, "contraAntiscion": 139.22966387114477 } ], "antisciaAspects": [], "chartSect": "diurnal", "meta": { "engineVersion": "2.10.03", "calculatedAt": "2026-08-23T22:24:02.486Z" } }, "crossAspects": [ { "planet1": "Sun", "planet1Id": 0, "planet2": "Saturn", "planet2Id": 6, "type": { "name": "Opposition", "i18nKey": "aspect_opposition", "angle": 180, "orb": 12, "symbol": "☍", "isMajor": true, "color": "#cc3333" }, "exactAngle": 175.99902688473145, "orb": 4.00097311526855, "isApplying": true } ], "compatibility": { "score": 55, "label": "balanced", "harmony": 23.1, "tension": 18.7 } }}Validation error
Example
{ "ok": false, "error": { "code": "INVALID_INPUT", "message": "Validation failed: date: Date must be YYYY-MM-DD", "details": [ { "path": "date", "message": "Date must be YYYY-MM-DD" } ] }}Missing or invalid API key
Example
{ "ok": false, "error": { "code": "INVALID_API_KEY", "message": "Invalid API key" }}