Skip to content

Repository files navigation

Tarot API

Tarot API

Three-card past, present, future. Celtic Cross, yes no, love spread, daily card. Seeded RNG over the curated 78-card deck for deterministic per-user readings. One key covers 12+ spiritual domains. MCP-first, no local setup required.

Get API KeyTry LiveCardsMCP ServerSDK

What is Tarot API

The RoxyAPI tarot endpoint ships the full 78-card Rider-Waite-Smith deck (22 Major Arcana plus 56 Minor Arcana) with upright and reversed meanings, position-specific interpretations, keyword arrays, and CDN-hosted card artwork. The three-card spread returns Past, Present, and Future positions in one call. Draws use a seedable RNG so the same seed always returns the same cards in the same positions, which makes daily-card features and shareable readings trivial. One RoxyAPI subscription covers 12+ spiritual domains: Western astrology, Vedic astrology, numerology, tarot, Human Design, Forecast, biorhythm, I Ching, crystals, dreams, angel numbers, and location. This repo ships working TypeScript, JavaScript, and Python samples so you can drop tarot reading features into a divination, dating, or wellness product in minutes.

Why this API

PropertyValue
Coverage12+ spiritual domains in one subscription
CalculationSeedable RNG over the curated 78-card deck
SpreadsThree-Card, Celtic Cross, Love, Career, Yes No, Daily, plus custom builder
MCP serverhttps://roxyapi.com/mcp/tarot (Streamable HTTP, no local setup)
SDKsTypeScript on npm @roxyapi/sdk, Python on PyPI roxy-sdk, PHP on Packagist roxyapi/sdk, C# on NuGet RoxyApi.Sdk, Go github.com/RoxyAPI/sdk-go, WordPress plugin roxyapi
PricingOne key, flat per call, from $39/mo
LicensingPersonal and commercial use, including closed source apps. No AGPL or GPL entanglement. Full terms
Last verified2026-Q3

Quick start

  1. Get a key at roxyapi.com/pricing
  2. Pick a language below
  3. Copy the snippet, run, ship

cURL

curl -X POST https://roxyapi.com/api/v2/tarot/spreads/three-card \
-H "X-API-Key: $ROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"What do I need to know about my career?","seed":"sample-user-2026"}'

Python

importosfromroxy_sdkimportcreate_roxyroxy=create_roxy(os.environ["ROXY_API_KEY"])
# Three-card past, present, future. Same seed reproduces identical cards in identical positions.reading=roxy.tarot.cast_three_card(
question="What do I need to know about my career?",
seed="sample-user-2026",
)
print(reading["spread"]) # Three-Cardforposinreading["positions"]:
card=pos["card"]
print(pos["name"], card["name"], "reversed"ifcard["reversed"] else"upright")
print(" keywords:", card["keywords"])
print(reading["summary"])

JavaScript (Node)

import{createRoxy}from'@roxyapi/sdk';constroxy=createRoxy(process.env.ROXY_API_KEY);// Three-card spread: Past, Present, Future. Stickiest beginner reading on tarot apps.const{ data, error }=awaitroxy.tarot.castThreeCard({body: {question: 'What do I need to know about my career?',seed: 'sample-user-2026'},});if(error)thrownewError(error.error);console.log('Spread:',data.spread);for(constposofdata.positions){constr=pos.card.reversed ? ' (reversed)' : '';console.log(`${pos.name}: ${pos.card.name}${r}`,pos.card.keywords);}console.log('Summary:',data.summary);

TypeScript

import{createRoxy}from'@roxyapi/sdk';constroxy=createRoxy(process.env.ROXY_API_KEY!);// Three-card past, present, future. Returns 3 positions with card data and position-specific interpretations.const{ data, error }=awaitroxy.tarot.castThreeCard({body: {question: 'What do I need to know about my career?',seed: 'sample-user-2026'},});if(error)thrownewError(error.error);console.log('Spread:',data.spread);// Three-Cardconsole.log('Past:',data.positions[0].card.name);// e.g. The Hanged Manconsole.log('Present:',data.positions[1].card.name);// e.g. Three of Wandsconsole.log('Future:',data.positions[2].card.name);// e.g. Ten of Cupsconsole.log('Reversed flags:',data.positions.map((p)=>p.card.reversed));console.log('Summary:',data.summary);

Request schema

FieldTypeRequiredDescription
questionstringnoOptional specific question to focus the reading. Examples: "What should I know about my relationship?", "How can I improve my finances?", "What is blocking my creative growth?". Leave empty for general guidance.
seedstringnoOptional seed for reproducible results. Same seed equals same 3 cards in same positions. Useful for sharing readings, testing, or ensuring users get consistent results. Omit for random draws.

Response shape

{
"spread": "Three-Card",
"question": "What do I need to know about my career?",
"seed": "sample-user-2026",
"positions": [
{
"position": 1,
"name": "Past",
"interpretation": "What has led to this situation and the foundational influences at play...",
"card": {
"id": "hanged-man",
"name": "The Hanged Man",
"arcana": "major",
"reversed": true,
"keywords": ["Delays", "resistance", "stalling", "indecision"],
"meaning": "The upright Hanged Man encourages you to pause...",
"imageUrl": "https://roxyapi.com/img/tarot/major/hanged-man.jpg"
}
},
{ "position": 2, "name": "Present", "card": { "name": "Three of Wands" } },
{ "position": 3, "name": "Future", "card": { "name": "Ten of Cups" } }
],
"summary": "Your past (The Hanged Man reversed) has shaped your present situation (Three of Wands)..."
}
FieldTypeDescription
spreadstringName of the tarot spread used (Three-Card, Celtic Cross, Career, Love).
questionstringThe querent question, if one was provided.
seedstringSeed used for this reading, if one was provided. Same seed reproduces identical results.
positionsarrayArray of spread positions, each containing a drawn card with position-specific interpretation.
positions[].positionnumberPosition number in the spread layout (1-based).
positions[].namestringPosition name describing what this card reveals (Past, Present, Future).
positions[].interpretationstringPosition-specific interpretation explaining how this card meaning applies to this position.
positions[].card.idstringUnique card identifier in kebab-case (e.g. the-fool, ace-of-cups).
positions[].card.namestringDisplay name of the tarot card.
positions[].card.arcanastringMajor Arcana (22 trump cards, major life themes) or Minor Arcana (56 suit cards, daily situations).
positions[].card.reversedbooleanTrue if the card was drawn reversed. Reversed cards carry modified or blocked energy.
positions[].card.keywordsarrayKey themes associated with this card in its current orientation.
positions[].card.meaningstringFull interpretation of this card in its current orientation.
positions[].card.imageUrlstringURL to the tarot card artwork image (CDN hosted).
summarystringNarrative connecting all three cards into a cohesive reading.

Common use cases

Use caseEndpoint flow
Beginner-friendly daily guidance feature in a tarot reading appPOST /tarot/spreads/three-card with the user ID plus today as seed
Decision-making screen in a personal-growth or coaching productPOST /tarot/spreads/three-card with the decision phrased as question
Shareable reading link with a deterministic seedPOST /tarot/spreads/three-card with the share-token as seed, store the response, link to it
AI tarot chatbot answering quick questionsPOST /tarot/spreads/three-card from an LLM tool call, format positions in the chat response
Dating app icebreaker or compatibility promptPOST /tarot/spreads/three-card keyed on the matched user pair, render Past, Present, Future

Related endpoints in this domain

  • POST /tarot/spreads/celtic-cross (castCelticCross) - 10-position professional-reader spread for deeper readings
  • POST /tarot/spreads/love (castLoveSpread) - 5-card relationship spread covering emotional dynamics, compatibility, and partnership potential
  • POST /tarot/yes-no (castYesNo) - single-card yes, no, or maybe oracle for impulse decisions, the highest-conversion tarot surface

Use this in your AI agent

Connect Claude, GPT, Gemini, or Cursor to RoxyAPI through the remote MCP server. No Docker. No self hosting. The full MCP tool catalog for this domain is at https://roxyapi.com/mcp/tarot.

{
"mcpServers": {
"tarot": {
"url": "https://roxyapi.com/mcp/tarot",
"headers": { "X-API-Key": "$ROXY_API_KEY" }
}
}
}

See docs/mcp for Claude Desktop, Cursor, Windsurf, VS Code, and Claude Code setup.

For AI coding agents

This repo ships an AGENTS.md execution playbook. Cursor, Claude Code, Aider, Codex, Windsurf, RooCode, and Gemini CLI will pick it up automatically. Top level overview lives at roxyapi.com/AGENTS.md.

Resources

Other RoxyAPI samples

KP Astrology APIKundli APIPanchang APISynastry APIBiorhythm API

License

MIT for this sample repo. See LICENSE.

Catalog licensing: Personal and commercial use, including closed source proprietary apps. No AGPL or GPL entanglement. RoxyAPI APIs and SDKs are safe to embed in commercial products. Full terms at roxyapi.com/policy/license.

Contact

About

Tarot API. Three card past present future, Celtic Cross, yes no, love spread, daily card. Seeded for deterministic per user reads.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages