Skip to main content

Western Aspect Grid

Calculate all active aspects between any set of planetary positions. Provide a dictionary of body names to tropical ecliptic longitudes. Uses standard modern Western orbs by default: major aspects 5°, sextile 3°, minor aspects 1.5°. Custom orbs can be provided per aspect type.

Endpoint

POST /v1/western/aspects

Request parameters

FieldTypeRequiredDescription
positionsobjectYesDictionary of body name to tropical ecliptic longitude (0-360). Example: {"Sun": 229.6, "Moon": 221.8, "Mars": 189.6}
orbsobject | nullNoCustom orbs per aspect type. If omitted, uses standard modern Western orbs: major=5°, sextile=3°, minor=1.5°

Example request

curl -X POST "https://api.asterwise.com/v1/western/aspects" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"positions":{"Sun":229.6,"Moon":221.8,"Mars":189.6}}'

Example response

{
"success": true,
"message": "success",
"data": {
"aspects": [],
"orbs_used": {
"conjunction": 5.0,
"opposition": 5.0,
"trine": 5.0,
"square": 5.0,
"sextile": 3.0,
"semisextile": 1.5,
"semisquare": 1.5,
"sesquiquadrate": 1.5,
"quincunx": 1.5
},
"body_count": 3,
"aspect_count": 0
}
}

Response fields

FieldTypeDescription
successbooleanTrue if the request succeeded
messagestringHuman-readable status message
dataobject
data.aspectsarray[object]All active aspects between the provided bodies
data.aspects[].planet_astring
data.aspects[].planet_bstring
data.aspects[].typestringAspect type: conjunction | opposition | trine | square | sextile | semisextile | semisquare | sesquiquadrate | quincunx
data.aspects[].exact_anglenumberActual angular distance between planets
data.aspects[].orbnumberDifference from exact aspect angle (always positive)
data.aspects[].is_applyingbooleanTrue if the faster planet is moving toward exact aspect (orb decreasing).
data.orbs_usedobjectOrb values used for this calculation
data.body_countintegerNumber of bodies provided
data.aspect_countintegerNumber of aspects found

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