POST/v1/western/solar-return
Western Solar Return
Solar return chart for a given year. Finds the exact moment the Sun returns to its natal tropical longitude and builds a complete Western natal chart for that moment at the birth location. Provide the year as an integer (e.g. 2026).
Request parameters
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.
nameoptional
string
Person name associated with the birth record
daterequired
string
Birth date in YYYY-MM-DD format
timeoptional
string | null
Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
latitudeoptional
number | null
Latitude. Required if location not provided.
longitudeoptional
number | null
Longitude. Required if location not provided.
timezoneoptional
string | null
IANA timezone. Required if location not provided.
ayanamsaoptional
string
Sidereal ayanamsa mode used in calculations
yearrequired
integer
Year for the solar return (e.g. 2026)
Response fields
success
boolean
True if the request succeeded
message
string
Human-readable status message
data
object
data.planet
string
data.natal_longitude
number
Natal longitude of the return planet (tropical)
data.return_utc
string
Exact UTC moment of return (ISO 8601)
data.return_jd
number
Julian Day of return moment
data.chart
object
data.chart.zodiac
string
Always 'tropical' for Western natal
data.chart.house_system
string
House system used
data.chart.ascendant
object
data.chart.ascendant.longitude
number
Tropical ecliptic longitude 0–360°
data.chart.ascendant.sign
string
Zodiac sign name
data.chart.ascendant.sign_index
integer
Sign index 0=Aries … 11=Pisces
data.chart.ascendant.degree_in_sign
number
Degrees within sign 0–29.999
data.chart.mc
object
data.chart.mc.longitude
number
Tropical ecliptic longitude 0–360°
data.chart.mc.sign
string
Zodiac sign name
data.chart.mc.sign_index
integer
Sign index 0=Aries … 11=Pisces
data.chart.mc.degree_in_sign
number
Degrees within sign 0–29.999
data.chart.planets
array[object]
data.chart.planets[].name
string
Planet name
data.chart.planets[].longitude
number
Tropical ecliptic longitude 0–360°
data.chart.planets[].sign
string
Zodiac sign name
data.chart.planets[].sign_index
integer
data.chart.planets[].degree_in_sign
number
Degrees within sign 0–29.999
data.chart.planets[].house
integer
House number (Placidus or chosen system)
data.chart.planets[].is_retrograde
boolean
data.chart.planets[].dignity
string
Essential dignity: domicile | exaltation | detriment | fall | peregrine
data.chart.planets[].dignity_score
integer
Essential dignity weight: domicile=5, exaltation=4, detriment=-5, fall=-4, peregrine=0
data.chart.planets[].is_exaltation_degree
boolean
True if planet is in the exact classical exaltation degree (Nth degree = N-1°00' to N-1°59'59"). Always false for outer planets (no exact degree defined).
data.chart.planets[].dignity_disputed
boolean
True for outer planet (Uranus/Neptune/Pluto) exaltation/fall — no classical consensus.
data.chart.houses
array[object]
data.chart.houses[].house
integer
data.chart.houses[].cusp_longitude
number
Tropical ecliptic longitude of house cusp
data.chart.houses[].sign
string
data.chart.houses[].sign_index
integer
data.chart.houses[].degree_in_sign
number
data.chart.aspects
array[object]
data.chart.aspects[].planet_a
string
data.chart.aspects[].planet_b
string
data.chart.aspects[].type
string
Aspect type: conjunction | opposition | trine | square | sextile | semisextile | semisquare | sesquiquadrate | quincunx
data.chart.aspects[].exact_angle
number
Actual angular distance between planets
data.chart.aspects[].orb
number
Difference from exact aspect angle (always positive)
data.chart.aspects[].is_applying
boolean
True if the faster planet is moving toward exact aspect (orb decreasing).
data.chart.elements
object
data.chart.elements.fire
integer
data.chart.elements.earth
integer
data.chart.elements.air
integer
data.chart.elements.water
integer
data.chart.elements.dominant
string | null
Most common element, or null if tied
data.chart.modalities
object
data.chart.modalities.cardinal
integer
data.chart.modalities.fixed
integer
data.chart.modalities.mutable
integer
data.chart.modalities.dominant
string | null
data.chart.hemisphere
object
data.chart.hemisphere.eastern
integer
Planet count in houses 7–12
data.chart.hemisphere.western
integer
Planet count in houses 1–6
data.chart.hemisphere.northern
integer
Planet count in houses 1–6 (below horizon)
data.chart.hemisphere.southern
integer
Planet count in houses 7–12 (above horizon)
data.chart.ayanamsa_value
number
Always 0.0 — tropical zodiac
data.chart.ayanamsa_used
string
data.chart.birth_time_provided
boolean
Whether a precise birth time was provided. False when birth time was not supplied or treated as unknown — calculations using this field will have lagna-dependent accuracy limits.
Errors
Missing or invalid API key.
Upstream ephemeris service error.
API key tier does not include this endpoint.
Unexpected server error.
Too many requests in a short window.
Request body exceeds the size limit.
Referenced resource was not found.
Request body failed schema validation.