Skip to main content
POST/v1/crystals/recommend/natal

Natal Chart Crystal Recommendations

Recommend crystals from the natal chart's functional benefics, using the same rule as POST /v1/astro/gemstones (BPHS Ch.34 lordship, whole-sign from the lagna). Recommended: the lagna lord (always auspicious) = Life Stone (+5), the Yogakaraka = supreme benefic (+5), the 9th lord = Fortune Stone (+4), the 5th lord = Lucky Stone (+3). A 5th/9th lord that also owns a Dusthana (6, 8, 12) is still recommended, with that Dusthana named in warnings[]. Contraindicated (natal_context.contraindicated_lords, never returned): Dusthana lords that own no Trikona, and debilitated or combust planets. Kendra-only and 2nd/3rd/11th lords are neither recommended nor contraindicated. Only crystals with Vedic assignments (Navaratna or Uparatna) are returned. Dangerous gem combinations are flagged in warnings[].

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
timerequired
string
Birth time in HH:MM 24-hour format. Required: this endpoint has no sunrise 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 (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.
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.
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 when a birth time was supplied. False when it was not: house, Ascendant and Moon-dependent results then carry the accuracy limits of an unknown birth time.
data.natal_context
object
data.natal_context.lagna_sign
string
Ascendant sign (English).
data.natal_context.lagna_lord
string
Lord of the 1st house.
data.natal_context.fifth_sign
string
5th house sign (English).
data.natal_context.fifth_lord
string
Lord of the 5th house (Panchamesh — Lucky Stone).
data.natal_context.ninth_sign
string
9th house sign (English).
data.natal_context.ninth_lord
string
Lord of the 9th house (Bhagyesh — Fortune Stone).
data.natal_context.yogakaraka
string | null
Yogakaraka planet — lords both a non-1st Kendra and a non-1st Trikona. Null if none for this Lagna.
data.natal_context.contraindicated_lords
array[string]
Planets whose gems are contraindicated in this chart: Dusthana (6/8/12) lords that own no Trikona, plus debilitated or combust planets. Same rule as POST /v1/astro/gemstones.
data.natal_context.ayanamsa
string
Ayanamsa the chart was cast with: the request's ayanamsa (until 2026-10 this always read "lahiri").
data.total
integer
data.crystals
array[object]
data.crystals[].slug
string
data.crystals[].name
string
data.crystals[].colors
array[string]
data.crystals[].hardness_mohs
number
data.crystals[].chakras
array[string]
data.crystals[].element
string
data.crystals[].zodiac_signs
array[string]
data.crystals[].vedic_planet
string | null
data.crystals[].vedic_correspondence
string
data.crystals[].western_planet
string | null
data.crystals[].keywords
array[string]
data.crystals[].healing_physical
string
data.crystals[].healing_emotional
string
data.crystals[].healing_spiritual
string
data.crystals[].description
string
data.crystals[].origins
array[string]
data.crystals[].affirmation
string
data.crystals[].caution
string | null
data.crystals[].match_score
integer
Gemstone match score based on house lordship.
data.crystals[].match_reasons
array[string]
Classical factors — which house lordship triggered this recommendation.
data.crystals[].warnings
array[string]
Classical cautions for this specific chart context.

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.
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.