Skip to main content
POST/v1/astro/gemstones

Gemstone Recommendations

Recommends gemstones based on the natal chart. Primary gemstone strengthens the Lagna lord (always a functional benefic). Further slots: Yogakaraka, 5th lord, 9th lord, and Atmakaraka. secondary is the first of those that is not the lagna lord's and not contraindicated. Returns contraindicated gemstones: dusthana (6/8/12) lords that own no trikona, debilitated planets, and combust planets — the same rule as POST /v1/crystals/recommend/natal. A slot whose planet is contraindicated carries contraindicated: true and a caution; it is never a silent recommendation. Request JSON follows BirthInput: name, date, time, location or latitude/longitude/timezone, ayanamsa.

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.primary
object
Lagna lord's gem: planet, reason, gemstone, substitute_gemstone, metal, colour, note. The lagna lord is always a functional benefic (BPHS Ch.34), so this is never withheld for lordship; it can still be contraindicated when the planet is debilitated or combust. Every slot also carries contraindicated (bool) and caution (string or null): when the slot's planet appears in contraindicated, the slot says contraindicated: true with a caution — do not wear that gem for this role. A 5th/9th lord that also owns a dusthana keeps contraindicated: false with a caution naming the dusthana.
data.secondary
object | null
The first usable second gem: the yogakaraka, 9th lord, 5th lord or Atmakaraka gem, in that order, skipping the lagna lord's and any contraindicated one. role names the slot it came from. Null when none is usable.
data.yogakaraka_gem
object | null
Yogakaraka's gem (planet, gemstone); null when the lagna has no yogakaraka. Every slot also carries contraindicated (bool) and caution (string or null): when the slot's planet appears in contraindicated, the slot says contraindicated: true with a caution — do not wear that gem for this role. A 5th/9th lord that also owns a dusthana keeps contraindicated: false with a caution naming the dusthana.
data.fifth_lord_gem
object | null
5th lord's gem (planet, gemstone). Every slot also carries contraindicated (bool) and caution (string or null): when the slot's planet appears in contraindicated, the slot says contraindicated: true with a caution — do not wear that gem for this role. A 5th/9th lord that also owns a dusthana keeps contraindicated: false with a caution naming the dusthana.
data.ninth_lord_gem
object | null
9th lord's gem (planet, gemstone). Every slot also carries contraindicated (bool) and caution (string or null): when the slot's planet appears in contraindicated, the slot says contraindicated: true with a caution — do not wear that gem for this role. A 5th/9th lord that also owns a dusthana keeps contraindicated: false with a caution naming the dusthana.
data.atmakaraka_gem
object | null
Atmakaraka's gem (planet, gemstone). Every slot also carries contraindicated (bool) and caution (string or null): when the slot's planet appears in contraindicated, the slot says contraindicated: true with a caution — do not wear that gem for this role. A 5th/9th lord that also owns a dusthana keeps contraindicated: false with a caution naming the dusthana.
data.contraindicated
array[object]
Planets whose gem must not be worn in this chart (planet, gemstone, reason): dusthana (6/8/12) lords that own no trikona, debilitated planets, combust planets. Same rule as POST /v1/crystals/recommend/natal.
data.note
string

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.