Skip to main content

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.

Endpoint

POST /v1/tarot/spread/three-card

Request parameters

FieldTypeRequiredDescription
allow_reversedbooleanNoIf true, each card has a 50% chance of appearing reversed.
questionstring | nullNoOptional question or intention for the reading.

Example request

curl -X POST "https://api.asterwise.com/v1/tarot/spread/three-card" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"allow_reversed":true,"question":"What should I focus on now?"}'

Example response

{
"success": true,
"message": "success",
"data": {
"spread_type": "three_card",
"positions": [
{
"card": {
"id": "the-hermit",
"name": "The Hermit",
"arcana_type": "major",
"suit": null,
"number": 9,
"element": "earth",
"astrology_correspondence": "Virgo",
"keywords_upright": [
"solitude",
"inner guidance",
"... and 3 more items"
],
"keywords_reversed": [
"isolation",
"loneliness",
"... and 3 more items"
],
"upright_meaning": "The Hermit calls for a period of solitude and deep introspection. Wisdom is found within, not in the noise of the world.…",
"reversed_meaning": "Reversed, The Hermit warns of excessive isolation, loneliness, or refusal to accept guidance. Withdrawal has become avoi…",
"yes_no": "maybe",
"description": "An old man in grey robes stands alone on a snowy peak. He holds a lantern in one hand, a staff in the other. Stars are i…"
},
"is_reversed": true,
"position": "past",
"position_meaning": "The past — what has led to this moment",
"active_meaning": "Reversed, The Hermit warns of excessive isolation, loneliness, or refusal to accept guidance. Withdrawal has become avoi…",
"active_keywords": [
"isolation",
"loneliness",
"... and 3 more items"
]
},
{
"card": {
"id": "four-of-swords",
"name": "Four of Swords",
"arcana_type": "minor",
"suit": "swords",
"number": 4,
"element": "air",
"astrology_correspondence": "Jupiter in Libra",
"keywords_upright": [
"rest",
"recuperation",
"... and 3 more items"
],
"keywords_reversed": [
"restlessness",
"burn-out",
"... and 2 more items"
],
"upright_meaning": "The Four of Swords calls for rest, recovery, and temporary withdrawal from the world. The body and mind need sanctuary.…",
"reversed_meaning": "Reversed, the Four of Swords warns of burn-out, restlessness preventing needed recovery, or refusing to rest when the bo…",
"yes_no": "maybe",
"description": "A knight in effigy lies on a tomb in a church, hands in prayer. Three swords hang on the wall above; one lies beneath. A…"
},
"is_reversed": false,
"position": "present",
"position_meaning": "The present — the current situation and energy",
"active_meaning": "The Four of Swords calls for rest, recovery, and temporary withdrawal from the world. The body and mind need sanctuary.…",
"active_keywords": [
"rest",
"recuperation",
"... and 3 more items"
]
},
"... and 1 more item"
],
"question": "What should I focus on now?"
}
}

Response fields

FieldTypeDescription
successbooleanTrue if the request succeeded
messagestringHuman-readable status message
dataobject
data.spread_typestringSpread type: 'three_card' or 'celtic_cross'
data.positionsarray[object]
data.positions[].cardobject
data.positions[].card.idstringUnique slug identifier e.g. 'the-fool'
data.positions[].card.namestringFull card name e.g. 'The Fool'
data.positions[].card.arcana_typestring'major' or 'minor'
data.positions[].card.suitstring | nullSuit for minor arcana: wands, cups, swords, pentacles. Null for major arcana.
data.positions[].card.numberintegerCard number. Major arcana: 0-21. Minor arcana: 1=Ace, 11=Page, 12=Knight, 13=Queen, 14=King.
data.positions[].card.elementstringElemental correspondence: fire, water, air, earth, spirit
data.positions[].card.astrology_correspondencestringAstrological planet or sign correspondence
data.positions[].card.keywords_uprightarray[string]Upright keywords
data.positions[].card.keywords_reversedarray[string]Reversed keywords
data.positions[].card.upright_meaningstringFull upright interpretation
data.positions[].card.reversed_meaningstringFull reversed interpretation
data.positions[].card.yes_nostringYes/No polarity: 'yes', 'no', or 'maybe'
data.positions[].card.descriptionstringVisual description of the card imagery
data.positions[].is_reversedbooleanTrue if the card was drawn in reversed orientation
data.positions[].positionstring | nullSpread position name e.g. 'past', 'present', 'outcome'
data.positions[].position_meaningstring | nullWhat this spread position represents
data.positions[].active_meaningstringThe meaning to apply — upright_meaning when is_reversed=False, reversed_meaning when True
data.positions[].active_keywordsarray[string]Active keywords for this orientation
data.questionstring | nullThe question posed, if provided

Errors

CodeDescriptionReference
authentication_failedMissing or invalid API key.authentication_failed
ephemeris_unavailableUpstream ephemeris service error.ephemeris_unavailable
insufficient_tierAPI key tier does not include this endpoint.insufficient_tier
internal_errorUnexpected server error.internal_error
ip_rate_limit_exceededToo many requests in a short window.ip_rate_limit_exceeded
payload_too_largeRequest body exceeds the size limit.payload_too_large
resource_not_foundReferenced resource was not found.resource_not_found
validation_errorRequest body failed schema validation.validation_error