# Tarot

Trei pachete: Rider-Waite-Smith (78 cărți), Tarot Marsilia (78) și Lenormand (36). Fiecare carte din fiecare răspuns tarot are o imagine, iar `POST /v1/interpret/tarot` transformă un aranjament într-o interpretare: fiecare poziție în context, un rezumat al întregului aranjament și un sfat.

## Alegeți designul cărților

`GET /v1/tarot/decks` returnează fiecare pachet, aranjamentele sale și seturile de design care pot fi transmise ca `art` la orice rută tarot (în corpul POST sau ca `?art=` în GET). Toate seturile sunt domeniul public și sunt servite de la CDN-ul nostru.

| Pachet | `art` | Cărți |
|---|---|---|
| Rider-Waite-Smith | `rws-1909` (implicit), `rws-restored`, `rws-vector` | 78 |
| Tarot Marsilia | `arnoult-1748` | 78 |
| Lenormand | `dondorf` | 35 din 36, fără Lună |

Fiecare carte primește `image` cu `urlSmall` (300 px lățime, pentru cărți de până la aproximativ 150 px pe pagină), `url` (600 px), `url2x` (1200 px), `width`, `height` și `art`. Aranjamentul returnează și `back`, spatele cărții, pentru ca pagina să poată afișa mai întâi cărțile cu fața în jos. Un `art` de la un alt pachet returnează `400 INVALID_ART` cu o listă de valori valide. Cartea pentru care nu există imagine în set (Luna în Lenormand) este indicată în `missing` al acestui set și vine fără `image`, așa că afișați o carte text pentru ea.

<Tabs>
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/tarot/rider-waite/draw/three-card \
      -H "X-Api-Key: aw_live_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{ "seed": 12345, "art": "rws-restored" }'
    ```
  </TabItem>
</Tabs>

```json
{
  "drawn": [
    {
      "position": { "index": 0, "name": "Past", "meaning": "Forces from the past shaping the situation." },
      "card": {
        "slug": "8-of-pentacles",
        "name": "Eight of Pentacles",
        "image": {
          "url": "https://cdn.astroway.info/tarot/rws-restored/8-of-pentacles.webp",
          "url2x": "https://cdn.astroway.info/tarot/rws-restored/8-of-pentacles@2x.webp",
          "urlSmall": "https://cdn.astroway.info/tarot/rws-restored/8-of-pentacles-300.webp",
          "width": 600,
          "height": 1028,
          "art": "rws-restored"
        }
      },
      "reversed": false
    }
  ],
  "back": { "url": "https://cdn.astroway.info/tarot/rws-1909/back.webp", "url2x": "https://cdn.astroway.info/tarot/rws-1909/back@2x.webp", "urlSmall": "https://cdn.astroway.info/tarot/rws-1909/back-300.webp", "width": 600, "height": 1039, "art": "rws-1909" }
}
```

Aranjamentul `POST /v1/tarot/rider-waite/draw/three-card` costă **10 credite**.

## Textele cărților fără model

`GET /v1/public/tarot/texts?cards=the-fool,9-of-swords&lang=uk` funcționează fără cheie și returnează pentru fiecare carte `description` cu trei paragrafe (imagine, semnificație directă, semnificație inversată) și text despre `love`, `career`, `finance`, `health` și `spirit` pentru `upright` și `reversed`, împreună cu numele localizat `name` și până la cinci `keywords` pentru fiecare parte. Fără `cards` vin toate cele 78. Textele nu se schimbă, așadar încărcați cărțile pe care le afișează pagina și le faceți cache.

```bash
curl 'https://api.astroway.info/v1/public/tarot/texts?cards=the-fool,9-of-swords&lang=uk'
```

## Interpretarea întregului aranjament

`POST /v1/interpret/tarot` acceptă un pachet, un aranjament, cărți și o întrebare opțională și generează interpretări în limba specificată în `language` (21 limbi). Cărțile pot fi transmise ca slug-uri, obiecte `{ "slug", "reversed" }` sau ca un array `drawn` din orice răspuns de aranjament, fără modificări.

<Tabs>
  <TabItem label="Node.js">
    ```js
    const headers = { 'Content-Type': 'application/json', 'X-Api-Key': process.env.ASTROWAY_API_KEY };
    const api = (path, body) =>
      fetch(`https://api.astroway.info/v1${path}`, { method: 'POST', headers, body: JSON.stringify(body) }).then((r) => r.json());
    
    const { data: spread } = await api('/tarot/rider-waite/draw/three-card', { art: 'rws-1909' });
    const { data: reading } = await api('/interpret/tarot', {
      spread: 'three-card',
      question: 'What should I focus on at work?',
      cards: spread.drawn,
      language: 'en',
    });
    
    for (const p of reading.positions) {
      console.log(p.position, p.card.name, p.reversed ? '(reversed)' : '', p.card.image.url);
      console.log(' ', p.reading);
    }
    console.log('Summary:', reading.synthesis);
    ```
  </TabItem>
</Tabs>

În răspuns există `positions[]` (poziție, carte cu `image`, `reversed`, `reading`), `synthesis`, `advice` și `disclaimer`. Cărțile Rider-Waite-Smith au și `nameLocalized` și `positionLocalized` în limba interpretării. Interpretarea costă **100 de credite** (Tier 4) și este disponibilă pe planul Free; cu propria cheie de model este mai ieftin, vezi [Cheia proprie de model](/agent-setup/).

<Aside type="note">
Interpretarea este un text generat pe baza semnificației tradiționale a fiecărei cărți în poziția sa. API-ul leagă cărțile, poziția lor și pozițiile de cererea dvs. și respinge interpretările care săriți o carte, dar tratați textul ca un punct de plecare pentru reflecții, nu ca o prezicere.
</Aside>
