---
title: "Crystal Recommendations"
method: POST
path: "/esoteric/crystals/recommend"
tags: ["Esoteric"]
---

# Crystal Recommendations

`POST /esoteric/crystals/recommend`

Recommend crystals scored against natal sign placements (Sun/Moon/Asc) and intent keywords. Returns top-N matches with score.

## Request body

- EsotericRecommendBody
  - `sunSign` string
  - `moonSign` string
  - `ascendantSign` string
  - `intent` string
  - `limit` integer

## Response `200`

Successful calculation

- object
  - `ok` boolean
  - `data` object
    - `recommendations` object[], nullable
      - `name` string, nullable
      - `matchScore` number, nullable
    - `count` number, nullable
    - `criteria` object, nullable
      - `signs` string[], nullable
      - `intent` string, nullable

## Other responses

- `400` — Validation error
- `401` — Missing or invalid API key

---

[API](https://skmtc.net/astroway/apis/astroway-calculation-api.md) · [All operations](https://skmtc.net/astroway/apis/astroway-calculation-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/astroway/astroway-calculation-api/revisions/529d7d36d7d6/schema)
