# Moon Phase (public, no key)

`GET https://api.astroway.info/v1/public/moon-phase`

Geocentric moon phase for a date (computed at noon UTC): deterministic, no AI, no birth data. `_footer` watermark. The English `phaseName`, `moonSign` and `sunSign` are the stable identifiers to match on and never change; `localized` carries the same three in the requested language.

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

## Parameters

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `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 |
|---|---|---|---|
| `date` | string | no |  |
| `phase` | number | no |  |
| `phaseName` | string | no |  |
| `majorPhase` | string | no |  |
| `illuminationPercent` | number | no |  |
| `elongationDeg` | number | no |  |
| `ageDays` | number | no |  |
| `waxing` | boolean | no |  |
| `moonSign` | string | no |  |
| `sunSign` | string | no |  |
| `localized` | object | no |  |
| `localized.phaseName` | string | no |  |
| `localized.moonSign` | string | no |  |
| `localized.sunSign` | string | no |  |

## Example

```bash
curl 'https://api.astroway.info/v1/public/moon-phase'
```

---

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