# Tarot

Ba bộ bài: Rider-Waite-Smith (78 lá), Марсельське Таро (78) và Ленорман (36). Mỗi lá trong mỗi phản hồi tarot có hình ảnh, và `POST /v1/interpret/tarot` chuyển đổi bố trí thành giải thích: mỗi vị trí trong bối cảnh, tóm tắt toàn bộ bố trí và một lời khuyên.

## Оберіть оформлення карт
`GET /v1/tarot/decks` trả về mỗi bộ bài, các bố trí của nó và các bộ sưu tập trang trí mà bạn có thể truyền dưới dạng `art` vào bất kỳ tuyến đường tarot nào (trong thân POST hoặc dưới dạng `?art=` trong GET). Tất cả các bộ sưu tập đều là tài sản công cộng và được cung cấp từ CDN của chúng tôi.

| Bộ bài | `art` | Số lá |
|---|---|---|
| Rider-Waite-Smith | `rws-1909` (mặc định), `rws-restored`, `rws-vector` | 78 |
| Марсельське Таро | `arnoult-1748` | 78 |
| Ленорман | `dondorf` | 35 trong 36, không có Mặt Trăng |

Mỗi lá nhận được `image` có `urlSmall` (300 px rộng, cho lá đến khoảng 150 px trên trang), `url` (600 px), `url2x` (1200 px), `width`, `height` và `art`. Bố trí cũng trả về `back`, mặt sau của lá, để trang có thể trước tiên hiển thị lá với mặt xuống. `art` của bộ bài khác sẽ trả về lỗi `400 INVALID_ART` kèm danh sách các giá trị hợp lệ. Lá mà trong bộ sưu tập không có hình ảnh (Mặt Trăng trong Lenormand) được chỉ định trong `missing` của bộ sưu tập này và đến mà không có `image`, vì vậy hiển thị cho nó một lá văn bản.

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

Bố trí `POST /v1/tarot/rider-waite/draw/three-card` có giá **10 điểm**.

## Тексти карт без моделі
`GET /v1/public/tarot/texts?cards=the-fool,9-of-swords&lang=uk` hoạt động mà không cần key và trả về cho mỗi lá `description` gồm ba đoạn (hình ảnh, nghĩa thẳng, nghĩa ngược) và văn bản về `love`, `career`, `finance`, `health` và `spirit` cho `upright` và `reversed`, cùng với tên đã bản địa hóa `name` và tới năm `keywords` cho mỗi phía. Nếu không có `cards`, sẽ trả về全部 78 lá. Văn bản không thay đổi, vì vậy hãy tải các lá mà trang hiển thị và lưu chúng vào cache.

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

## Тлумачення всього розкладу
`POST /v1/interpret/tarot` chấp nhận bộ bài, bố trí, lá và một câu hỏi tùy chọn và viết giải thích bằng ngôn ngữ từ `language` (21 ngôn ngữ). Bạn có thể truyền lá dưới dạng các thành phần, đối tượng `{ "slug", "reversed" }` hoặc mảng `drawn` từ bất kỳ phản hồi bố trí nào mà không thay đổi.

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

Trong phản hồi `positions[]` (vị trí, lá có `image`, `reversed`, `reading`), `synthesis`, `advice` và `disclaimer`. Các lá Rider-Waite-Smith cũng có `nameLocalized` và `positionLocalized` bằng ngôn ngữ giải thích. Giải thích có giá **100 điểm** (Tier 4) và có sẵn trên gói Free; với key mô hình của bạn sẽ rẻ hơn, xem [Key mô hình của bạn](/agent-setup/).

<Aside type="note">
Giải thích là văn bản được tạo ra dựa trên ý nghĩa truyền thống của mỗi lá ở vị trí của nó. API gắn lá, vị trí của chúng và vị trí vào yêu cầu của bạn và loại bỏ giải thích bỏ qua lá, nhưng hãy xem văn bản như một gợi ý để suy ngẫm, chứ không phải là dự đoán.
</Aside>
