curl -X POST https://api.occultapi.com/api/astro/sunrise/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"2026-09-01T06:00:00+05:30","timezone_as_float":5.5,"latitude":26.9124,"longitude":75.7873}'Nascer e pôr do sol para uma data e um local, com a duração do dia em segundos. Para a lua, use /api/astro/moonrise/. Envie uma data, uma latitude, uma longitude e o deslocamento UTC. Nada mais. Os mesmos valores podem ser obtidos por /api/astro/celestial/, mas apenas se você souber que deve pedir o SUN pelo nome, colocar o seletor da convenção de nascer em primeiro lugar no array keys e ler o elemento zero de um array de dois elementos cujo segundo elemento é uma tupla de efemérides com dez floats. Este endpoint usa o nascer hindu - borda superior do disco, sem refração -, a mesma convenção com que /api/astro/panchanga/ monta o seu dia, então aqui o pôr do sol menos o nascer do sol é igual ao day_length daquele endpoint com precisão de segundos. O pôr do sol retornado é sempre o que vem depois do nascer do sol. Qualquer um dos dois campos pode ser null: durante um dia ou uma noite polar, o sol não nasce nem se põe, e null indica isso. /api/astro/celestial/ retorna "2000-11-24T12:00:00Z" nesse caso, que é o dia juliano zero, e não um instante. Atenção a um limite: este endpoint responde pelo dia CIVIL que você indicou, enquanto o dia do panchanga vai de um nascer do sol ao seguinte. Peça um momento antes do nascer do sol e o panchanga ainda estará descrevendo o dia anterior, então o day_length dele vai diferir do intervalo daqui. Os dois estão corretos para a pergunta que cada um responde.
| 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. |
| latitude | number (double) | obrigatório | 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) | obrigatório | 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 |
| timezone_as_float | number (double) | obrigatório | 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 |
| 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. |