# Generate Tarot Reading (PDF or HTML)

`POST https://api.astroway.info/v1/reports/tarot`

Render a tarot reading PDF. Default spread `three-card` (Past/Present/Future from Rider-Waite-Smith deck). Available spreads: single-card, three-card, celtic-cross, horseshoe, relationship, year-ahead, decision, chakra, career, love-triangle. Pass `seed` for reproducibility (deterministic mulberry32 RNG); omit to use a daily seed. Set `allowReversed: false` to draw upright cards only.

Group: Reports. Auth: `X-Api-Key` header. Operation ID: `reports_tarot`.

## Parameters

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `fields` | query | no | string | 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. |
| `precision` | query | no | integer | 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. |

## Request body

| Field | Type | Required | Description |
|---|---|---|---|
| `spread` | string | no |  |
| `seed` | integer | no |  |
| `name` | string | no |  |
| `allowReversed` | boolean | no |  |
| `language` | "uk" \| "en" \| "de" \| "ru" \| "pl" \| "es" \| "pt" \| "hi" \| … | no |  |
| `whitelabel` | boolean \| object | no |  |

```json
{
  "spread": "three-card",
  "seed": 1234,
  "name": "Sample Reading",
  "allowReversed": true,
  "language": "uk"
}
```

## Responses

| Status | Meaning |
|---|---|
| 200 | Successful calculation |
| 400 | Validation error |
| 401 | Missing or invalid API key |

### Success fields, under `data`

| Field | Type | Required | Description |
|---|---|---|---|
| `url` | string | no |  |
| `storage_key` | string | no |  |
| `byte_length` | number | no |  |
| `page_count` | number | no |  |
| `duration_ms` | number | no |  |
| `expires_at` | string | no |  |

## Example

```bash
curl -X POST https://api.astroway.info/v1/reports/tarot \
  -H "X-Api-Key: aw_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "spread": "three-card", "seed": 1234, "name": "Sample Reading", "allowReversed": true, "language": "uk" }'
```

---

Rendered from https://api.astroway.info/v1/openapi.json. HTML page: https://api.astroway.info/docs/api/operations/reports_tarot/
