Skip to main content
POST/v1/tarot/spread/three-card

Three-Card Spread

Past / Present / Future spread. Draws 3 unique cards and assigns them to positions: past (what led here), present (current situation), future (where this leads). Each position includes the card data, its orientation, the position meaning, and the active interpretation for that orientation.

Request parameters

allow_reversedoptional
boolean
If true, each card has a 50% chance of appearing reversed.
questionoptional
string | null
Optional question or intention for the reading.

Response fields

success
boolean
True if the request succeeded
message
string
Human-readable status message
data
object
data.spread_type
string
Spread type: 'three_card' or 'celtic_cross'
data.positions
array[object]
data.positions[].card
object
data.positions[].card.id
string
Unique slug identifier e.g. 'the-fool'
data.positions[].card.name
string
Full card name e.g. 'The Fool'
data.positions[].card.arcana_type
string
'major' or 'minor'
data.positions[].card.suit
string | null
Suit for minor arcana: wands, cups, swords, pentacles. Null for major arcana.
data.positions[].card.number
integer
Card number. Major arcana: 0-21. Minor arcana: 1=Ace, 11=Page, 12=Knight, 13=Queen, 14=King.
data.positions[].card.element
string
Elemental correspondence: fire, water, air, earth, spirit
data.positions[].card.astrology_correspondence
string
Astrological planet or sign correspondence
data.positions[].card.keywords_upright
array[string]
Upright keywords
data.positions[].card.keywords_reversed
array[string]
Reversed keywords
data.positions[].card.upright_meaning
string
Full upright interpretation
data.positions[].card.reversed_meaning
string
Full reversed interpretation
data.positions[].card.yes_no
string
Yes/No polarity: 'yes', 'no', or 'maybe'
data.positions[].card.description
string
Visual description of the card imagery
data.positions[].is_reversed
boolean
True if the card was drawn in reversed orientation
data.positions[].position
string | null
Spread position name e.g. 'past', 'present', 'outcome'
data.positions[].position_meaning
string | null
What this spread position represents
data.positions[].active_meaning
string
The meaning to apply — upright_meaning when is_reversed=False, reversed_meaning when True
data.positions[].active_keywords
array[string]
Active keywords for this orientation
data.question
string | null
The question posed, if provided

Errors

Missing or invalid API key.
Upstream ephemeris service error.
API key tier does not include this endpoint.
Unexpected server error.
Too many requests in a short window.
Request body exceeds the size limit.
Referenced resource was not found.
Request body failed schema validation.