Skip to main content

Draw Tarot Cards

Draw N random unique cards from the 78-card deck using cryptographic randomness. Each API call produces a fresh independent draw. Count must be between 1 and 78. Default: 1. Set allow_reversed=true to enable reversed card orientation (each card independently has a 50% chance of reversal).

Endpoint

POST /v1/tarot/draw

Request parameters

FieldTypeRequiredDescription
countintegerNoNumber of cards to draw (1-78). Default: 1.
allow_reversedbooleanNoIf true, each card has a 50% chance of appearing reversed.

Example request

curl -X POST "https://api.asterwise.com/v1/tarot/draw" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"count":3,"allow_reversed":true}'

Example response

{
"success": true,
"message": "success",
"data": {
"cards": [
{
"card": {
"id": "queen-of-swords",
"name": "Queen of Swords",
"arcana_type": "minor",
"suit": "swords",
"number": 13,
"element": "air",
"astrology_correspondence": "Water of Air",
"keywords_upright": [
"independent",
"unbiased judgement",
"... and 2 more items"
],
"keywords_reversed": [
"cold-hearted",
"cruel",
"... and 3 more items"
],
"upright_meaning": "The Queen of Swords combines a sharp mind with emotional experience to deliver unbiased, direct wisdom. She has suffered…",
"reversed_meaning": "Reversed, the Queen of Swords becomes cold, bitter, or cruel. Past pain has poisoned the clarity that is this queen's gi…",
"yes_no": "yes",
"description": "A queen sits on a stone throne, sword raised, gaze distant and clear. One hand is open in offering. Clouds gather but he…"
},
"is_reversed": true,
"position": null,
"position_meaning": null,
"active_meaning": "Reversed, the Queen of Swords becomes cold, bitter, or cruel. Past pain has poisoned the clarity that is this queen's gi…",
"active_keywords": [
"cold-hearted",
"cruel",
"... and 3 more items"
]
},
{
"card": {
"id": "judgement",
"name": "Judgement",
"arcana_type": "major",
"suit": null,
"number": 20,
"element": "fire",
"astrology_correspondence": "Pluto",
"keywords_upright": [
"reflection",
"reckoning",
"... and 4 more items"
],
"keywords_reversed": [
"self-doubt",
"refusal of self-examination",
"... and 2 more items"
],
"upright_meaning": "Judgement signals a profound awakening and call to a higher purpose. Past actions are being reviewed — this is a moment…",
"reversed_meaning": "Reversed, Judgement warns of ignoring an important calling, refusing self-examination, or self-doubt preventing a necess…",
"yes_no": "yes",
"description": "An angel blows a trumpet from the clouds. Below, naked figures rise from coffins with arms outstretched. Mountains float…"
},
"is_reversed": true,
"position": null,
"position_meaning": null,
"active_meaning": "Reversed, Judgement warns of ignoring an important calling, refusing self-examination, or self-doubt preventing a necess…",
"active_keywords": [
"self-doubt",
"refusal of self-examination",
"... and 2 more items"
]
},
"... and 1 more item"
],
"count": 3,
"allow_reversed": true
}
}

Response fields

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

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