# Tarot

Tiga dek: Rider-Waite-Smith (78 kartu), Tarot Marseille (78) dan Lenormand (36). Setiap kartu dalam setiap respons tarot memiliki gambar, dan `POST /v1/interpret/tarot` mengubah tata letak menjadi penjelasan: setiap posisi dalam konteks, ringkasan seluruh tata letak dan satu nasihat.

## Pilih gaya kartu

`GET /v1/tarot/decks` mengembalikan setiap dek, tata letaknya dan kumpulan gaya yang dapat dikirim sebagai `art` ke setiap jalur tarot (di tubuh POST atau sebagai `?art=` dalam GET). Semua kumpulan adalah aset publik dan dikirim dari CDN kami.

| Deck | `art` | Jumlah kartu |
|---|---|---|
| Rider-Waite-Smith | `rws-1909` (default), `rws-restored`, `rws-vector` | 78 |
| Tarot Marseille | `arnoult-1748` | 78 |
| Lenormand | `dondorf` | 35 dari 36, tanpa Bulan |

Setiap kartu menerima `image` dengan `urlSmall` (300 px lebar, untuk kartu hingga sekitar 150 px pada halaman), `url` (600 px), `url2x` (1200 px), `width`, `height` dan `art`. Tata letak juga mengembalikan `back`, baju kartu, agar halaman dapat pertama kali menampilkan kartu dengan wajah ke bawah. `art` dari dek lain memberikan `400 INVALID_ART` dengan daftar yang diperbolehkan. Kartu yang tidak memiliki gambar dalam set (Bulan di Lenormand) ditentukan dalam `missing` dari set tersebut dan datang tanpa `image`, jadi tampilkan untuk itu kartu teks.

<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" }
}
```

Tata letak `POST /v1/tarot/rider-waite/draw/three-card` biaya **10 kredit**.

## Teks kartu tanpa model

`GET /v1/public/tarot/texts?cards=the-fool,9-of-swords&lang=uk` bekerja tanpa kunci dan mengembalikan untuk setiap kartu `description` dengan tiga paragraf (gambar, arti lurus, arti terbalik) dan teks tentang `love`, `career`, `finance`, `health` dan `spirit` untuk `upright` dan `reversed`, bersama dengan nama yang dilokalkan `name` dan hingga lima `keywords` untuk setiap sisi. Tanpa `cards`, semua 78 diterima. Teks tidak berubah, jadi unduh kartu yang ditampilkan halaman dan cache-nya.

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

## Penjelasan seluruh tata letak

`POST /v1/interpret/tarot` menerima dek, tata letak, kartu dan pertanyaan opsional serta menulis penjelasan dalam bahasa dengan `language` (21 bahasa). Kart dapat dikirim sebagai bagian, objek `{ "slug", "reversed" }` atau array `drawn` dari mana saja respons tata letak tanpa perubahan.

<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>

Dalam respons `positions[]` (posisi, kartu dengan `image`, `reversed`, `reading`), `synthesis`, `advice` dan `disclaimer`. Kart Rider-Waite-Smith juga memiliki `nameLocalized` dan `positionLocalized` dalam bahasa penjelasan. Penjelasan biaya **100 kredit** (Tier 4) dan tersedia pada tarif Free; dengan kunci model sendiri lebih murah, lihat [Kunci model Anda](/agent-setup/).

<Aside type="note">
Penjelasan adalah teks yang dihasilkan berdasarkan nilai tradisional setiap kartu dalam posisinya. API mengaitkan kartu, posisinya dan posisinya ke permintaan Anda dan membuang penjelasan yang melewatkan kartu, tetapi anggap teks sebagai bahan pertimbangan, bukan ramalan.
</Aside>
