Skip to main content

Western Synastry

Aspect grid between two natal charts using the tropical zodiac. Returns all inter-chart aspects using standard modern Western orbs. Useful for relationship compatibility analysis.

Endpoint

POST /v1/western/synastry

Request parameters

FieldTypeRequiredDescription
person1objectYes
person1.locationstring | nullNoCity name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
person1.namestringNoPerson name associated with the birth record
person1.datestringYesBirth date in YYYY-MM-DD format
person1.timestring | nullNoBirth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
person1.latitudenumber | nullNoLatitude. Required if location not provided.
person1.longitudenumber | nullNoLongitude. Required if location not provided.
person1.timezonestring | nullNoIANA timezone. Required if location not provided.
person1.ayanamsastringNoSidereal ayanamsa mode used in calculations
person2objectYes
person2.locationstring | nullNoCity name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
person2.namestringNoPerson name associated with the birth record
person2.datestringYesBirth date in YYYY-MM-DD format
person2.timestring | nullNoBirth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
person2.latitudenumber | nullNoLatitude. Required if location not provided.
person2.longitudenumber | nullNoLongitude. Required if location not provided.
person2.timezonestring | nullNoIANA timezone. Required if location not provided.
person2.ayanamsastringNoSidereal ayanamsa mode used in calculations

Example request

curl -X POST "https://api.asterwise.com/v1/western/synastry" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"person1":{"name":"Arjun Mehta","date":"1985-11-12","time":"06:45","latitude":19.076,"longitude":72.8777,"timezone":"Asia/Kolkata"},"person2":{"name":"Sofia Shah","date":"1988-03-24","time":"14:30","latitude":28.6139,"longitude":77.209,"timezone":"Asia/Kolkata"}}'

Example response

{
"success": true,
"message": "success",
"data": {
"aspects": [
{
"person1_planet": "Sun",
"person2_planet": "Sun",
"type": "sesquiquadrate",
"exact_angle": 134.3467,
"orb": 0.6533
},
{
"person1_planet": "Sun",
"person2_planet": "Venus",
"type": "opposition",
"exact_angle": 179.9187,
"orb": 0.0813
},
"... and 23 more items"
],
"total_aspects": 25
}
}

Response fields

FieldTypeDescription
successbooleanTrue if the request succeeded
messagestringHuman-readable status message
dataobject
data.aspectsarray[object]
data.aspects[].person1_planetstring
data.aspects[].person2_planetstring
data.aspects[].typestring
data.aspects[].exact_anglenumber
data.aspects[].orbnumber
data.total_aspectsinteger

Errors

CodeDescriptionReference
authentication_failedMissing or invalid API key.authentication_failed
ephemeris_unavailableUpstream ephemeris service error.ephemeris_unavailable
insufficient_tierAPI key tier does not include this endpoint.insufficient_tier
internal_errorUnexpected server error.internal_error
ip_rate_limit_exceededToo many requests in a short window.ip_rate_limit_exceeded
payload_too_largeRequest body exceeds the size limit.payload_too_large
resource_not_foundReferenced resource was not found.resource_not_found
validation_errorRequest body failed schema validation.validation_error