/api/v1/tarot/readingDraw a reading
Draw cards for a spread. Omit cards for a random server draw, or pass user-picked card ids from your own interactive fan. Premium spreads return a full AI interpretation; the single-card daily draw returns a free teaser.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| spread_type | string | body | optional | single_card, three_card (default), celtic_cross, horseshoe, relationship, career, monthly, year_ahead |
| spread_id | string | body | optional | Alias for spread_type — accepts frontend slugs like "three-card" |
| question | string | body | optional | The querent's question (max 1000 chars) |
| category | string | body | optional | Question category, e.g. love, career |
| cards | array | body | optional | User-picked cards: [{card_id, position, reversed}] — server draws randomly if omitted |
| seed | integer | body | optional | Optional seed for deterministic draws |
| language | string | body | optional | Two-letter language code (default en) |
Example request
curl -X POST "https://api-rho-eight-42.vercel.app/api/v1/tarot/reading" \
-H "X-API-Key: kundli_abc123..." \
-H "Content-Type: application/json" \
-d '{
"spread_type": "three_card",
"question": "What should I focus on this month?",
"category": "career",
"language": "en"
}'Example response
{
"reading_id": "9f2a1c4e-6b3d-4a5f-8e7c-2d1a3b4c5d6e",
"spread_type": "three_card",
"cards_drawn": [
{
"position": "Past",
"card_name": "The Hermit",
"orientation": "upright"
},
{
"position": "Present",
"card_name": "Ace of Pentacles",
"orientation": "upright"
},
{
"position": "Future",
"card_name": "The Star",
"orientation": "upright"
}
],
"interpretation": {
"summary": "A period of quiet preparation is paying off..."
},
"unlocked": true
}Try it — paste your own key from Developers → API Keys in place of kundli_abc123... and run the snippet against https://api-rho-eight-42.vercel.app.