# Tarot

Drei Decks: Rider-Waite-Smith (78 Karten), Marseiller Tarot (78) und Lenormand (36). Jede Karte in jeder Tarot-Antwort hat ein Bild, und `POST /v1/interpret/tarot` wandelt das Layout in eine Interpretation um: jede Position im Kontext, die Zusammenfassung des gesamten Layouts und ein Rat.

## Wähle das Karten-Design

`GET /v1/tarot/decks` gibt jedes Deck, seine Layouts und die verfügbaren Kunststil-Sets zurück, die als `art` an jede Tarot-Route übergeben werden können (im POST-Body oder als `?art=` bei GET). Alle Sets sind gemeinfrei und werden von unserem CDN bereitgestellt.

| Deck | `art` | Karten |
|---|---|---|
| Rider-Waite-Smith | `rws-1909` (standard), `rws-restored`, `rws-vector` | 78 |
| Marseiller Tarot | `arnoult-1748` | 78 |
| Lenormand | `dondorf` | 35 von 36, ohne Mond |

Jede Karte erhält ein `image` mit `urlSmall` (300 px Breite, für Karten bis zu etwa 150 px auf der Seite), `url` (600 px), `url2x` (1200 px), `width`, `height` und `art`. Das Layout gibt auch `back` zurück, die Rückseite der Karte, damit die Seite zunächst die Karten verdeckt zeigen kann. Ein `art` von einem anderen Deck führt zu `400 INVALID_ART` mit einer Liste der gültigen Werte. Eine Karte, für die im Set kein Bild vorhanden ist (der Mond beim Lenormand), ist in `missing` dieses Sets aufgeführt und kommt ohne `image` an – zeige dafür stattdessen eine Textkarte an.

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

Der Layout `POST /v1/tarot/rider-waite/draw/three-card` kostet **10 Credits**.

## Kartentexte ohne Modell

`GET /v1/public/tarot/texts?cards=the-fool,9-of-swords&lang=uk` funktioniert ohne Schlüssel und gibt für jede Karte eine `description` mit drei Absätzen (Bild, direkte Bedeutung, umgekehrte Bedeutung) sowie Texte zu `love`, `career`, `finance`, `health` und `spirit` für `upright` und `reversed`, zusammen mit dem lokalisierten Namen `name` und bis zu fünf `keywords` pro Seite. Ohne `cards` werden alle 78 zurückgegeben. Da die Texte sich nicht ändern, lade die Karten, die die Seite anzeigt, herunter und speichere sie im Cache.

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

## Interpretation des gesamten Layouts

`POST /v1/interpret/tarot` nimmt ein Deck, ein Layout, Karten und eine optionale Frage entgegen und schreibt die Interpretation in der Sprache aus `language` (21 Sprachen). Karten können als einzelne Werte, als Objekte `{ "slug", "reversed" }` oder als Array `drawn` aus jeder Layoutantwort ohne Änderungen übergeben werden.

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

In der Antwort enthält `positions[]` (Position, Karte mit `image`, `reversed`, `reading`), `synthesis`, `advice` und `disclaimer`. Karten von Rider-Waite-Smith besitzen außerdem `nameLocalized` und `positionLocalized` in der Sprache der Interpretation. Die Interpretation kostet **100 Credits** (Tier 4) und ist im Free-Plan verfügbar; mit deinem Modellschlüssel ist sie günstiger, sieh dir [Dein Modellschlüssel](/agent-setup/)>.

<Aside type="note">
Die Interpretation ist ein generierter Text basierend auf der traditionellen Bedeutung jeder Karte in ihrer Position. Das API verknüpft die Karten, ihre Lage und Positionen mit deiner Anfrage und verwirft Interpretationen, die eine Karte auslassen, aber nimm den Text als Anregung zum Nachdenken, nicht als Vorhersage.
</Aside>
