Skip to content
POST/api/astro/tarot/spread/1 credit

Tarot spread

A named spread with every position labelled. Six layouts, from a single card to the ten-card Celtic Cross — also past/present/future, situation/action/outcome, a five-card relationship spread and the seven-card horseshoe. The labels are the point. Three unlabelled cards are three cards; "Past, Present, Future" is a reading. Each card comes back with the position it fell in and what that position stands for. Every response carries the `seed` that produced it, and sending that seed back reproduces the draw exactly — same cards, same order, same way up. Omit it and one is generated and returned, so a fresh draw is the default and repeating it afterwards is always possible. This is what lets a client store a reading and show it again rather than handing the querent a different answer to the same question.

https://yogataraapi.prahlad.app/api/astro/tarot/spread/
Test Request

Authentication

Send your key in the X-API-Key header. Keys are server-side credentials — never put one in browser JavaScript or a mobile app.

X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/json

Request fields

FieldTypeRequiredNotes
allow_reversedbooleanoptional

Whether cards can come up reversed. Some readers work upright-only.

questionstringoptional

Optional. Echoed back, and folded into a generated seed.

reversal_chancenumber (double)optional

Probability of a reversal, when reversals are allowed.

min 0 · max 1

seedstringoptional

Send a seed to reproduce a draw exactly. Omit it and one is generated and returned, so any draw can be repeated afterwards.

spreadstringoptional

Which named spread to lay out.

celtic_crosshorseshoeone_cardrelationshipsituationthree_card

Example request

curl -X POST https://yogataraapi.prahlad.app/api/astro/tarot/spread/ \
  -H "X-API-Key: $OCCULT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question":"How is this relationship placed?","spread":"three_card","seed":"sample-spread"}'

Response

{
  "data": {
    "question": "How is this relationship placed?",
    "seed": "sample-spread",
    "reproducible": "Send this seed back to get exactly this draw again.",
    "deck": "Rider-Waite-Smith, 78 cards",
    "reversals_allowed": true,
    "cards": [
      {
        "position": 1,
        "id": 51,
        "name": "Two of Swords",
        "arcana": "minor",
        "suit": "Swords",
        "rank": "Two",
        "number": 2,
        "element": "air",
        "upright": "stalemate, a decision deferred, blindfolded",
        "reversed": "the blindfold lifted, deciding",
        "orientation": "upright",
        "meaning": "stalemate, a decision deferred, blindfolded",
        "yes_no": "maybe",
        "position_name": "Past"
      },
      {
        "position": 2,
        "id": 59,
        "name": "Ten of Swords",
        "arcana": "minor",
        "suit": "Swords",
        "rank": "Ten",
        "number": 10,
        "element": "air",
        "upright": "an ending, rock bottom, the worst passed",
        "reversed": "recovery, the only way is up",
        "orientation": "reversed",
        "meaning": "recovery, the only way is up",
        "yes_no": "yes",
        "position_name": "Present"
      },
      {
        "position": 3,
        "id": 30,
        "name": "Nine of Wands",
        "arcana": "minor",
        "suit": "Wands",
        "rank": "Nine",
        "number": 9,
        "element": "fire",
        "upright": "resilience, the last stretch, guarded",
        "reversed": "exhaustion, defensiveness",
        "orientation": "upright",
        "meaning": "resilience, the last stretch, guarded",
        "yes_no": "maybe",
        "position_name": "Future"
      }
    ],
    "spread": "three_card",
    "spread_name": "Past, present, future",
    "positions": [
      "Past",
      "Present",
      "Future"
    ],
    "count": 3
  },
  "status": 200,
  "is_error": false,
  "message": "successful"
}

Captured from a real call using the exact request above. Results sit under data.

Errors

Metering errors return { "error": "…", "message": "<code>", "is_error": true }. Show error to people and branch on message. See the error reference.