Gemstone Recommendation API
Gemstones by functional lordship: the lagna lord's, the 9th (or 5th) lord's, the mahadasha lord's, and those to avoid
POST/v1/kundli/gemstones
2 credits · Secret key (test or live) · getGemstones
Functional benefics are the lords of the 1st, 5th and 9th from the lagna; functional malefics the lords of the 6th, 8th and 12th with no trikona lordship, and their stones are listed in avoid. dasha_stone only when the running mahadasha lord is not a functional malefic. Not the same rule as classical.lucky.gem (the rashi lord's stone). Needs a birth time.
Request body
birthBirth requireddatestring (date) requirede.g.
"1990-08-13"timestringpattern
^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$· e.g."06:30"time_accuracystringWith "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.
one of
exact,approximate,unknown· default"exact"placeCoordinates or object or object requiredCoordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.
One of:
- Coordinates
Fields
latitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
No other fields are accepted.
- object
Fields
place_idstring required
No other fields are accepted.
- object
Fields
querystring requiredat least 2 characters · at most 120 characters
No other fields are accepted.
- Coordinates
timezonestring"auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".
default
"auto"
No other fields are accepted.
optionsOptionsayanamsastringEach system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.
one of
lahiri,raman,krishnamurti,yukteshwar,fagan_bradley· default"lahiri"house_systemstringone of
whole_sign· default"whole_sign"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one of
true,mean· default"true"langstringone of
en,hi· default"en"viewstringcompact drops labels and prose — for LLM callers.
one of
full,compact· default"full"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
lagna_signstring requiredprimaryGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
secondaryGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
dasha_stoneGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
avoidarray of string requiredhealing_stonesarray of string requiredfunctional_beneficsarray of string requiredfunctional_maleficsarray of string requiredyoga_specificarray of object requiredstonestring requiredyogastring or null requiredOne of:
- string
- null
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/gemstones' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/gemstones", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"birth": {
"date": "1990-08-13",
"time": "06:30",
"place": {
"latitude": 28.6139,
"longitude": 77.209
}
}
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"birth": {
"date": "1990-08-13",
"time": "06:30",
"place": {
"latitude": 28.6139,
"longitude": 77.209,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/gemstones",
method="POST",
headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
data=json.dumps(body).encode(),
)
try:
with urllib.request.urlopen(req) as res:
print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
print(err.code, err.read().decode())PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/kundli/gemstones');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 1,796 characters
{
"data": {
"lagna_sign": "leo",
"primary": {
"planet": "sun",
"stone": "ruby",
"alternatives": [
"red_garnet",
"sunstone",
"red_spinel"
],
"finger": "ring",
"metal": "gold",
"basis": "lagna_lord"
},
"secondary": {
"planet": "mars",
"stone": "red_coral",
"alternatives": [
"red_jasper",
"carnelian",
"garnet"
],
"finger": "ring",
"metal": "copper_or_gold",
"basis": "ninth_lord"
},
"dasha_stone": {
"planet": "rahu",
"stone": "hessonite",
"alternatives": [
"orange_zircon",
"garnet",
"spessartite"
],
"finger": "middle",
"metal": "silver",
"basis": "mahadasha_lord"
},
"avoid": [
"blue_sapphire",
"pearl"
],
"healing_stones": [
"pyrite",
"sunstone",
"citrine",
"amber",
"bloodstone",
"carnelian"
],
"functional_benefics": [
"sun",
"jupiter",
"mars"
],
"functional_malefics": [
"saturn",
"moon"
],
"yoga_specific": [
{
"stone": "yellow_sapphire",
"yoga": "gajakesari_yoga"
},
{
"stone": "yellow_sapphire",
"yoga": "dhana_yoga"
},
{
"stone": "yellow_sapphire",
"yoga": "chandra_mangala_yoga"
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
More in Kundli
- Kundli Chart API: Lagna and Nine Grahas: Birth chart: lagna and the nine grahas
- Avakhada Birth Details API: Avakhada birth details
- Divisional Charts API (D1–D60, Navamsa): Divisional charts D1–D60
- Graha Drishti (Aspects) API: Graha drishti: houses and planets aspected
- Kundli Yogas API: Yogas present, with strength and rule
- Ashtakavarga API: Bhinna and Sarva Ashtakavarga, the bindus of the signs being transited, each planet's best and worst signs
- Wealth Astrology API (D2, D9, D10): Wealth reading from D1, D2, D9 and D10: hora placements, the D10 lagna and 10th lord, vargottama, scores 0–10
- Shadbala API: Shadbala: the six-fold strength of the seven grahas
- Bhava Bala and Graha Avastha API: The classical layer: house cusps, bhava bala, prastara ashtakavarga, graha avasthas, sthira karakas, lucky points
- Outer Planets in the Kundli API: Uranus, Neptune and Pluto: sidereal position, house from the lagna, and the house reading in English and Hindi
- Dwadasamsa (D12) API: Dwadasamsa (D12) read for the lineage: father, mother, the 4th and 9th, strength 0–10
- Upagrahas API (Gulika and More): Upagrahas: the five from the Sun, and Kala, Mrityu, Ardhaprahara, Yamaghantaka and Gulika from the day's eight parts
- Arudha Lagna and Upapada API: Arudha padas of the twelve houses, with Arudha Lagna and Upapada
- Jaimini Chara Karaka API: Jaimini chara karakas on the seven-planet scheme, with the karakamsha
- Bhav Chalit Chart API: Bhav chalit: the Sripati bhavas, and which planets shift from their rashi house
- Planet Combustion (Asta and Uday) API: Asta and Uday: when each planet sets and rises near the Sun, for a place
- Sidereal Ephemeris Series API: A series of sidereal positions over a range, at up to 400 steps
- Rashi Reference API: The 12 rashis: span, lord, element, modality, varna, vashya and nakshatras
- Nakshatra Reference API: The 27 nakshatras: span, lord, gana, yoni, nadi, deity and symbol
- Sidereal Planet Positions API: Sidereal positions at any moment and place
- Planets Now API: The sky now: sidereal positions at the top of the current hour
- Retrograde Cycle API (Saturn to Pluto): The retrograde cycle of Saturn, Uranus, Neptune or Pluto: its stations and whether it is retrograde now
- Kundli Bundle API: Several Charts in One Call: Several chart operations in one call: one rate-limit slot, charged their sum less one credit