# Chinese sign of the day (public, no key)

`GET https://api.astroway.info/v1/public/chinese/zodiac/daily`

One animal against one day: the day pillar and the year pillar (from Li Chun), how their branches stand to the animal (`same`, `secretFriend` 六合, `trine` 三合, `clash` 六冲, `harm` 六害 or `neutral`), `benMingNian` when the year is the animal's own, and `energy`, 1-10 from 5 with every step in `factors`: a stated heuristic (day: friend or trine +2, same +1, harm -2, clash -3; year: friend or trine +1, same or harm -1, clash -2), not a classical score. Computed, no model. Animal and element names follow `?lang=`. Costs 1 unit of the public bucket.

Group: Public. Auth: none, this endpoint answers without a key.

## Parameters

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `animal` | query | yes | "rat" \| "ox" \| "tiger" \| "rabbit" \| "dragon" \| "snake" \| "horse" \| "goat" \| … | One of the twelve, English, any case. |
| `date` | query | no | string | Calendar date `YYYY-MM-DD` (UTC). Defaults to today. |
| `lang` | query | no | string | Language for this call, overriding `Accept-Language`. The canonical per-call form: a page that renders in one language passes it here rather than reconfiguring its client. Unknown or inactive codes fall back to `uk`. |
| `Accept-Language` | header | no | string | BCP-47 language (e.g. `uk`, `en`, `de`). Set it once on your HTTP client as its default; for a single call, `?lang=` overrides it. Unknown or inactive codes fall back to `uk`. |
| `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. |

## Responses

| Status | Meaning |
|---|---|
| 200 | OK |
| 400 | Invalid sign or date |

### Success fields, under `data`

| Field | Type | Required | Description |
|---|---|---|---|
| `animal` | string | no |  |
| `animalName` | string | no |  |
| `date` | string | no |  |
| `dayPillar` | object | no |  |
| `dayPillar.stem` | string | no |  |
| `dayPillar.branch` | string | no |  |
| `dayPillar.animal` | string | no |  |
| `dayPillar.animalName` | string | no |  |
| `dayPillar.stemHanzi` | string | no |  |
| `dayPillar.branchHanzi` | string | no |  |
| `dayPillar.element` | string | no |  |
| `dayPillar.elementName` | string | no |  |
| `dayPillar.yin` | boolean | no |  |
| `yearPillar` | object | no |  |
| `yearPillar.stem` | string | no |  |
| `yearPillar.branch` | string | no |  |
| `yearPillar.animal` | string | no |  |
| `yearPillar.animalName` | string | no |  |
| `yearPillar.stemHanzi` | string | no |  |
| `yearPillar.branchHanzi` | string | no |  |
| `yearPillar.element` | string | no |  |
| `yearPillar.elementName` | string | no |  |
| `yearPillar.yin` | boolean | no |  |
| `yearPillar.solarYear` | number | no |  |
| `day` | object | no |  |
| `day.relation` | string | no |  |
| `day.chinese` | string | no |  |
| `year` | object | no |  |
| `year.relation` | string | no |  |
| `year.chinese` | object | no |  |
| `benMingNian` | boolean | no |  |
| `energy` | object | no |  |
| `energy.score` | number | no |  |
| `energy.factors` | object[] | no |  |

## Example

```bash
curl 'https://api.astroway.info/v1/public/chinese/zodiac/daily?animal=horse&date=2026-10-07&lang=en'
```

---

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