Skip to main content

Crystal recommendations

Recommend crystals based on zodiac sign, chakra, or intention keyword. At least one filter must be provided. Providing multiple filters returns crystals that match the most criteria first. Valid chakras: Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown. Returns up to limit crystals (default 5, max 20).

Endpoint

POST /v1/crystals/recommend

Request parameters

FieldTypeRequiredDescription
zodiac_signstring | nullNoWestern zodiac sign to filter by. Example: 'Taurus', 'Scorpio'.
chakrastring | nullNoChakra to filter by. One of: Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown.
intentionstring | nullNoIntention keyword to match. Example: 'protection', 'love', 'abundance'.
limitintegerNoMaximum number of recommendations to return.

Example request

curl -X POST "https://api.asterwise.com/v1/crystals/recommend" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"zodiac_sign":"Aries","chakra":"Heart","intention":"abundance","limit":3}'

Example response

{
"success": true,
"message": "success",
"data": {
"total": 3,
"filters_applied": {
"zodiac_sign": "Aries",
"chakra": "Heart",
"intention": "abundance"
},
"crystals": [
{
"slug": "bloodstone",
"name": "Bloodstone",
"colors": [
"dark green with red spots"
],
"hardness_mohs": 7.0,
"chakras": [
"Root",
"Heart"
],
"element": "Earth",
"zodiac_signs": [
"Aries",
"Pisces"
],
"vedic_planet": "Mars",
"vedic_correspondence": "uparatna",
"western_planet": "Mars",
"keywords": [
"courage",
"resilience",
"... and 3 more items"
],
"healing_physical": "Supports blood purification, iron absorption, and immune function.",
"healing_emotional": "Grants resilience and courage in times of extreme adversity.",
"healing_spiritual": "Known as Heliotrope — the sun turner. Mars Uparatna in Jyotish.",
"description": "Dark green chalcedony with red iron oxide spots. One of the oldest known gemstones, used in ancient Babylonia. Mars Upar…",
"origins": [
"India",
"Brazil",
"... and 2 more items"
],
"affirmation": "I face all challenges with courage and am renewed by strength.",
"caution": null
},
{
"slug": "ruby",
"name": "Ruby",
"colors": [
"red",
"deep red",
"... and 1 more item"
],
"hardness_mohs": 9.0,
"chakras": [
"Root",
"Heart"
],
"element": "Fire",
"zodiac_signs": [
"Leo",
"Aries"
],
"vedic_planet": "Sun",
"vedic_correspondence": "navaratna",
"western_planet": "Sun",
"keywords": [
"leadership",
"vitality",
"... and 3 more items"
],
"healing_physical": "Supports heart, blood, and adrenal function.",
"healing_emotional": "Cultivates leadership, authority, radiant vitality, and immense self-confidence.",
"healing_spiritual": "Manikya — the primary Navaratna gemstone for the Sun. Activates solar energy and kingly qualities.",
"description": "Red corundum — the King of Gemstones. Manikya is the primary Sun gemstone in the classical nine Navaratna of Vedic tradi…",
"origins": [
"Burma (Myanmar)",
"Sri Lanka",
"... and 2 more items"
],
"affirmation": "I lead with confidence and my inner light shines brilliantly.",
"caution": "Wear only on qualified Jyotish recommendation. Strengthens the Sun — not suitable for those with malefic Sun placements…"
},
"... and 1 more item"
]
}
}

Response fields

FieldTypeDescription
successbooleanTrue if the request succeeded
messagestringHuman-readable status message
dataobject
data.totalintegerNumber of crystals returned.
data.filters_appliedobjectThe filters used for this recommendation.
data.crystalsarray[object]Recommended crystals sorted by match strength.
data.crystals[].slugstringURL-safe identifier, e.g. 'amethyst', 'blue-sapphire'.
data.crystals[].namestringDisplay name of the crystal.
data.crystals[].colorsarray[string]Primary colours of this crystal.
data.crystals[].hardness_mohsnumberHardness on the Mohs scale (1-10).
data.crystals[].chakrasarray[string]Associated chakras.
data.crystals[].elementstringClassical element: Earth, Water, Fire, Air, or All.
data.crystals[].zodiac_signsarray[string]Associated Western zodiac signs.
data.crystals[].vedic_planetstring | nullVedic planetary correspondence. Null if no classical Vedic text assigns this stone.
data.crystals[].vedic_correspondencestring'navaratna' (primary classical gem), 'uparatna' (substitute gem), or 'none_classical' (no Vedic text assigns this stone).
data.crystals[].western_planetstring | nullWestern metaphysical planetary correspondence.
data.crystals[].keywordsarray[string]Primary energy keywords.
data.crystals[].healing_physicalstringPhysical healing properties.
data.crystals[].healing_emotionalstringEmotional healing properties.
data.crystals[].healing_spiritualstringSpiritual healing properties.
data.crystals[].descriptionstringOverview description.
data.crystals[].originsarray[string]Primary geographic origins.
data.crystals[].affirmationstringAffirmation for working with this crystal.
data.crystals[].cautionstring | nullImportant safety or usage cautions. Null if none.

Errors

CodeDescriptionReference
authentication_failedMissing or invalid API key.authentication_failed
ephemeris_unavailableUpstream ephemeris service error.ephemeris_unavailable
insufficient_tierAPI key tier does not include this endpoint.insufficient_tier
internal_errorUnexpected server error.internal_error
ip_rate_limit_exceededToo many requests in a short window.ip_rate_limit_exceeded
payload_too_largeRequest body exceeds the size limit.payload_too_large
resource_not_foundReferenced resource was not found.resource_not_found
validation_errorRequest body failed schema validation.validation_error