POST/v1/western/composite
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.
Request parameters
person1required
object
person1.locationoptional
string | null
City name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
person1.nameoptional
string
Person name associated with the birth record
person1.daterequired
string
Birth date in YYYY-MM-DD format
person1.timeoptional
string | null
Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
person1.latitudeoptional
number | null
Latitude. Required if location not provided.
person1.longitudeoptional
number | null
Longitude. Required if location not provided.
person1.timezoneoptional
string | null
IANA timezone. Required if location not provided (unless utc_offset is given). For dates before the zone adopted a standard time, the birthplace's local mean time (longitude / 15 hours) is used.
person1.utc_offsetoptional
string | null
Optional explicit UTC offset of the birth time, as ±HH:MM or ±HH:MM:SS (e.g. '+04:51:31' for Bombay mean time). Overrides the offset
timezone would give. Use it when the birth record states the offset, or for historical local times the IANA database cannot represent.person1.ayanamsaoptional
string
Sidereal ayanamsa mode used in calculations
person2required
object
person2.locationoptional
string | null
City name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
person2.nameoptional
string
Person name associated with the birth record
person2.daterequired
string
Birth date in YYYY-MM-DD format
person2.timeoptional
string | null
Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
person2.latitudeoptional
number | null
Latitude. Required if location not provided.
person2.longitudeoptional
number | null
Longitude. Required if location not provided.
person2.timezoneoptional
string | null
IANA timezone. Required if location not provided (unless utc_offset is given). For dates before the zone adopted a standard time, the birthplace's local mean time (longitude / 15 hours) is used.
person2.utc_offsetoptional
string | null
Optional explicit UTC offset of the birth time, as ±HH:MM or ±HH:MM:SS (e.g. '+04:51:31' for Bombay mean time). Overrides the offset
timezone would give. Use it when the birth record states the offset, or for historical local times the IANA database cannot represent.person2.ayanamsaoptional
string
Sidereal ayanamsa mode used in calculations
Response fields
success
boolean
True if the request succeeded
message
string
Human-readable status message
data
object
data.birth_time_provided
boolean
True only when both people supplied a birth time. See person1_birth_time_provided and person2_birth_time_provided.
data.person1_birth_time_provided
boolean
True when person 1 supplied a birth time.
data.person2_birth_time_provided
boolean
True when person 2 supplied a birth time.
data.planets
array[object]
data.planets[].name
string
data.planets[].longitude
number
data.planets[].sign
string
data.planets[].sign_index
integer
data.planets[].degree_in_sign
number
data.planets[].dignity
string
data.planets[].dignity_score
integer
Weight of the primary sign-level dignity only: domicile=5, exaltation=4, detriment=-5, fall=-4, peregrine=0. Triplicity, term and face are not scored, and the weights are not summed (e.g. Mercury in Virgo scores 5 for domicile, not 5+4). Full traditional scoring is in essential_dignities (natal and return charts).
data.planets[].dignity_disputed
boolean
True for outer planet (Uranus/Neptune/Pluto) exaltation/fall — no established consensus.
data.ascendant_longitude
number
data.ascendant_sign
string
data.ascendant_sign_index
integer
data.aspects
array[object]
Aspects between planets within the composite chart
data.aspects[].planet_a
string
First composite planet
data.aspects[].planet_b
string
Second composite planet
data.aspects[].person1_planet
string
Legacy name for planet_a, kept for compatibility. Both planets belong to the composite chart, not to person 1 or person 2.
data.aspects[].person2_planet
string
Legacy name for planet_b, kept for compatibility (see person1_planet).
data.aspects[].type
string
data.aspects[].exact_angle
number
data.aspects[].orb
number
Errors
Invalid API key format.
API key is missing. Include it in the Authorization header as 'Bearer YOUR_KEY'.
The provided API key was not found. Verify the key in your Asterwise dashboard.
This API key has been revoked.
Too many requests per minute. Please slow down.
Something went wrong on our end. Please try again, or contact [email protected] if the problem persists. Include your request_id when contacting support.
Request body is missing or malformed.
Too many requests from this IP address. Please slow down.
Monthly API call limit reached. Upgrade your plan to continue.
Request body exceeds maximum allowed size of 64KB.
Your subscription has expired. Please renew at asterwise.com/dashboard to continue.
The request couldn't be processed. See the 'details' field for specific field-level issues.