/api/astro/moon-illumination/1 créditoIluminação e fase da Lua
Quanto da Lua está iluminado, como uma fração de verdade. Calculado a partir da elongação entre o Sol e a Lua: lit = (1 - cos(elongation)) / 2, que vale 0 na lua nova, 0.5 em qualquer um dos quartos e 1 na lua cheia. Vem tanto como fração quanto como porcentagem, junto com a elongação, o ângulo de fase, se a Lua está crescente e o nome convencional da fase. Este endpoint existe porque a chave do motor chamada `get_illumination` não retorna a iluminação. Ela retorna a MAGNITUDE APARENTE — cerca de -26.7 para o Sol e entre -6 e -12 para a Lua, conforme a fase. Uma fração não pode ser negativa nem valer -26, e qualquer tela que use esse campo como "porcentagem iluminada" mostra valores sem sentido. Esse valor continua vindo aqui, com o nome que merece: apparent_magnitude, em que menor significa mais brilhante.
https://api.occultapi.com/api/astro/moon-illumination/Autenticação
Envie sua chave no cabeçalho X-API-Key. A chave é uma credencial de servidor — nunca a coloque no JavaScript do navegador nem num app mobile.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonCampos da requisição
| Campo | Tipo | Obrigatório | Observações |
|---|---|---|---|
| date_time | string (date-time) | obrigatório | O momento a calcular, em ISO 8601. SEMPRE inclua um deslocamento ou um Z no final - um valor sem fuso horário é lido como Asia/Kolkata (UTC+05:30), não como UTC, e pode retornar o resultado do dia anterior com um 200. '2026-09-01T06:00:00Z' e '2026-09-01 06:00:00' são instantes diferentes e dão respostas diferentes. |
| altitude | number (double) | opcional | Elevação do OBSERVADOR em metros, não a altitude de um corpo. |
| keys | array | opcional | Quais cálculos retornar, como uma lista de nomes. Veja a tabela de chaves deste endpoint; um nome não reconhecido rejeita a requisição inteira. Uma chamada custa um crédito, não importa quantas chaves você peça, então solicite tudo o que precisa de uma vez em vez de fazer várias chamadas. |
| latitude | number (double) | opcional | Latitude do local, em graus decimais. Positivo é norte, negativo é sul. Exemplo: 26.9124 para Jaipur, 40.7128 para Nova York. Minutos e segundos não são aceitos - converta antes. min -89.9 · max 89.9 |
| longitude | number (double) | opcional | Longitude do local, em graus decimais. Positivo é leste, negativo é oeste. Exemplo: 75.7873 para Jaipur, -74.0060 para Nova York. Atenção ao sinal: sem o sinal de menos, Nova York vai parar na China. min -180 · max 180 |
| planet_names | array | opcional | Ignorado. Este endpoint sempre usa o Sol e a Lua. |
| time_zone | number (double) | opcional | Deslocamento UTC. Use este ou timezone_as_float; um espelha o outro. min -12 · max 14 |
| timezone_as_float | number (double) | opcional | Deslocamento UTC do local, em horas, como número decimal. Exemplo: 5.5 para a Índia (UTC+05:30), -5 para Nova York no inverno, 5.75 para o Nepal. Este valor NÃO é conferido com date_time: se os dois divergirem, você recebe uma resposta bem-sucedida para o momento errado. Por isso, tire os dois da mesma fonte. Use o deslocamento em vigor naquela data, não o de hoje: quem nasceu no verão, em um país com horário de verão, precisa do deslocamento de verão. min -12 · max 14 |
Exemplo de requisição
curl -X POST https://api.occultapi.com/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}'Resposta
{
"data": {
"illuminated_fraction": 0.034082,
"illuminated_percent": 3.4082,
"elongation_degrees": 21.277,
"phase_angle_degrees": 338.723,
"waxing": false,
"phase_name": "New moon",
"apparent_magnitude": {
"moon": -6.123776,
"sun": -26.726421
},
"longitudes": {
"sun": 166.834,
"moon": 145.557
},
"notes": {
"apparent_magnitude": "The engine key named get_illumination returns apparent magnitude, not illumination. Smaller is brighter; it is negative for both of these bodies. Use illuminated_fraction for how much of the disc is lit."
}
},
"status": 200,
"is_error": false,
"message": "successful"
}Capturada de uma chamada real, com exatamente a requisição acima. Os resultados ficam em data.
Erros
Erros de consumo de créditos retornam { "error": "…", "message": "<code>", "is_error": true }. Mostre error para o usuário e use message para decidir o que fazer no código. Consulte a referência de erros.