AI Interpretations

Tarot Spread Reading

AI reading of a tarot, Marseille or Lenormand spread: each position read in context, then a synthesis of the whole spread and one piece of advice. Takes card slugs or the drawn array of any draw response. Multi-language.

post/interpret/tarot

Query parameters

lang'uk' | 'en' | 'de' | 'ru' | 'pl' | 'es' | 'pt' | 'fr' | 'it' | 'nl' | 'cs' | 'ro' | 'hu' | 'el' | 'tr' | 'ar' | 'hi' | 'ja' | 'ko' | 'vi' | 'id'

Alternative to Accept-Language for clients without header control.

fieldsstring

Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.

precisioninteger

Round every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.

Headers

Accept-Language'uk' | 'en' | 'de' | 'ru' | 'pl' | 'es' | 'pt' | 'fr' | 'it' | 'nl' | 'cs' | 'ro' | 'hu' | 'el' | 'tr' | 'ar' | 'hi' | 'ja' | 'ko' | 'vi' | 'id'

Target language for response text fields. RFC 7231 q-weighted. Falls back to ?lang= query param, then body.language, then source uk. Unknown codes silently fall through to uk.

X-Provider'openai' | 'anthropic' | 'google' | 'groq' | 'mistral' | 'openrouter' | 'deepseek' | 'together'

Bring your own model key: the LLM provider that should run this completion. Send together with X-Provider-Key or the request is refused: a key with no provider bills us for tokens you meant to pay for, and a provider with no key would look like it worked. The endpoint is fixed per provider on our side and is never taken from the request. There is no fallback to our own chain: if your key fails you get the provider's status and message.

X-Provider-Keystring

Your own credential for X-Provider. Never logged, stored or cached: it travels in a header because the request body is hashed into two cache keys, and a BYOK turn bypasses both caches in each direction. A provider error that quotes the key back is redacted before it reaches our logs or your response. Such a turn costs 5 credits instead of the endpoint price, and only when a completion actually ran on your key.

X-Provider-Modelstring

Optional model id, overriding the default for that provider. Defaults: openai → gpt-4o-mini, anthropic → claude-sonnet-4-5, google → gemini-2.5-flash, groq → openai/gpt-oss-120b, mistral → mistral-large-latest, openrouter → meta-llama/llama-3.3-70b-instruct, deepseek → deepseek-chat, together → meta-llama/Llama-3.3-70B-Instruct-Turbo.

Request body

deck'rider-waite' | 'marseille' | 'lenormand'
spreadstring
questionstring
language'uk' | 'en' | 'de' | 'pl' | 'es' | 'pt' | 'fr' | 'it' | 'nl' | 'cs' | 'ro' | 'hu' | 'el' | 'tr' | 'ar' | 'hi' | 'ja' | 'ko' | 'vi' | 'id' | 'ru'
artstring

Card art set for the images in the answer. GET /v1/tarot/decks lists them.

Response

Successful calculation

okboolean

Example response

{
  "ok": true
}

Changes

Changed in 1 of the 32 revisions of this API.1