curl -X POST https://yogataraapi.prahlad.app/api/astro/moon-illumination/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"2026-09-09T12:00:00+00:00","latitude":26.9124,"longitude":75.7873,"timezone_as_float":0}'How much of the Moon is lit, as a real fraction. Computed from the elongation between the Sun and the Moon: lit = (1 - cos(elongation)) / 2, which is 0 at new moon, 0.5 at either quarter and 1 at full. Returned as both a fraction and a percentage, with the elongation, the phase angle, whether the Moon is waxing, and the conventional phase name. This endpoint exists because the engine key called `get_illumination` does not return illumination. It returns APPARENT MAGNITUDE — about -26.7 for the Sun and between -6 and -12 for the Moon depending on phase. A fraction cannot be negative and cannot be -26, and anything wiring that field to a "percent lit" display shows nonsense. That value is still returned here, under the name it deserves: apparent_magnitude, where smaller is brighter.
| Field | Type | Required | Notes |
|---|---|---|---|
| date_time | string (date-time) | required | The moment to calculate for, ISO 8601. ALWAYS include an offset or a trailing Z - a value with no zone is read as Asia/Kolkata (UTC+05:30), not UTC, and can return the previous day's result with a 200. '2026-09-01T06:00:00Z' and '2026-09-01 06:00:00' are different instants and give different answers. |
| altitude | number (double) | optional | OBSERVER elevation in metres, not a body's altitude. |
| keys | array | optional | Which calculations to return, as a list of names. See the key table for this endpoint; an unrecognised name rejects the whole request. One call costs one credit however many keys you ask for, so request everything you need at once rather than making several calls. |
| latitude | number (double) | optional | Latitude of the place, in decimal degrees. Positive is north, negative is south. Example: 26.9124 for Jaipur, 40.7128 for New York. Minutes and seconds are not accepted - convert first. min -89.9 · max 89.9 |
| longitude | number (double) | optional | Longitude of the place, in decimal degrees. Positive is east, negative is west. Example: 75.7873 for Jaipur, -74.0060 for New York. Note the sign: a missing minus puts New York in China. min -180 · max 180 |
| planet_names | array | optional | Ignored. This endpoint always reads the Sun and the Moon. |
| time_zone | number (double) | optional | UTC offset. Either this or timezone_as_float; they mirror. min -12 · max 14 |
| timezone_as_float | number (double) | optional | UTC offset of the place, in hours, as a decimal. Example: 5.5 for India (UTC+05:30), -5 for New York in winter, 5.75 for Nepal. This is NOT validated against date_time - if the two disagree you get a successful response for the wrong moment, so derive both from the same source. Use the offset in force on that date, not today's: a summer birth in a country with daylight saving needs the summer offset. min -12 · max 14 |