Skip to main content

Western Composite Chart

Midpoint composite chart for two people using modern Western midpoint technique. Each composite planet is the midpoint of the two natal positions. Returns composite planets with dignities and internal aspects.

Endpoint

POST /v1/western/composite

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/composite" \
-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": {
"planets": [
{
"name": "Sun",
"longitude": 296.770075,
"sign": "Capricorn",
"sign_index": 9,
"degree_in_sign": 26.770075,
"dignity": "peregrine",
"dignity_score": 0
},
{
"name": "Moon",
"longitude": 153.200022,
"sign": "Virgo",
"sign_index": 5,
"degree_in_sign": 3.200022,
"dignity": "peregrine",
"dignity_score": 0
},
"... and 8 more items"
],
"ascendant_longitude": 180.27487,
"ascendant_sign": "Libra",
"ascendant_sign_index": 6,
"aspects": [
{
"person1_planet": "Jupiter",
"person2_planet": "Uranus",
"type": "square",
"exact_angle": 87.757,
"orb": 2.243
},
{
"person1_planet": "Mars",
"person2_planet": "Moon",
"type": "square",
"exact_angle": 87.0676,
"orb": 2.9324
},
"... and 6 more items"
]
}
}

Response fields

FieldTypeDescription
successbooleanTrue if the request succeeded
messagestringHuman-readable status message
dataobject
data.planetsarray[object]
data.planets[].namestring
data.planets[].longitudenumber
data.planets[].signstring
data.planets[].sign_indexinteger
data.planets[].degree_in_signnumber
data.planets[].dignitystring
data.planets[].dignity_scoreinteger
data.ascendant_longitudenumber
data.ascendant_signstring
data.ascendant_sign_indexinteger
data.aspectsarray[object]
data.aspects[].person1_planetstring
data.aspects[].person2_planetstring
data.aspects[].typestring
data.aspects[].exact_anglenumber
data.aspects[].orbnumber

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