curl -X POST https://api.occultapi.com/api/astro/transit/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"2024-11-20T06:52:42.466Z","keys":["set_sidereal_transit","planet_transit","solar_crossing","celestial_conjunction","transit_details"],"latitude":26.1046,"longitude":75.7873,"tz":5.5,"planet":"MARS","datetime_start":"2024-11-20T06:52:42.466Z","datetime_end":"2040-11-20T06:52:42.466Z","degr":0,"x2cross":0,"celestial1":"SATURN","celestial2":"SUN","celestial":"MARS","when":"after"}'Este endpoint busca momentos, em vez de descrever um mapa em um horário fixo. Ele responde a perguntas do tipo: quando o Sol atinge 0 grau de Áries da próxima vez, quando Marte cruza pela próxima vez um determinado grau entre duas datas, quando Saturno e o Sol voltam a compartilhar uma longitude eclíptica e onde exatamente um corpo está em um instante. Duas das chaves são seletores de modo, e não cálculos. `set_default_transit` seleciona as efemérides tropicais simples e `set_sidereal_transit`, as siderais; ambas retornam null. As chaves de uma requisição são avaliadas na ordem em que você as lista, então coloque o seletor primeiro se quiser que as buscas seguintes sejam siderais. Os campos `planet`, `celestial`, `celestial1` e `celestial2` usam nomes de efemérides em maiúsculas (`SUN`, `MOON`, `MEAN_NODE`, `TRUE_NODE`, `CHIRON`, os pontos uranianos e várias luas planetárias), um vocabulário diferente dos nomes `Sun`/`Moon` usados na maioria dos outros endpoints desta API. `tz` é um simples deslocamento em horas aplicado a todo timestamp retornado, `when` define se a busca é feita depois ('after') ou antes ('before') do horário de referência, e `datetime_start`/`datetime_end` delimitam a janela de `planet_transit`.
| 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. |
| datetime_end | string (date-time) | obrigatório | |
| datetime_start | string (date-time) | obrigatório | |
| keys | array | obrigatório | 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. |
| planet | string | obrigatório | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceitos, que cobrem os 10 planetas, os dois nodos lunares, 6 asteroides, 9 corpos uranianos/fictícios e 9 luas planetárias. Um nome não reconhecido é mapeado silenciosamente para None em vez de gerar erro, o que depois falha mais a fundo, dentro do motor de efemérides. Observe que os nodos usam as formas com sublinhado MEAN_NODE / TRUE_NODE (não existe alias 'RAHU'/'KETU'). |
| tz | number (double) | obrigatório | min -12 · max 14 |
| celestial | string | opcional | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceitos, que cobrem os 10 planetas, os dois nodos lunares, 6 asteroides, 9 corpos uranianos/fictícios e 9 luas planetárias. Um nome não reconhecido é mapeado silenciosamente para None em vez de gerar erro, o que depois falha mais a fundo, dentro do motor de efemérides. Observe que os nodos usam as formas com sublinhado MEAN_NODE / TRUE_NODE (não existe alias 'RAHU'/'KETU'). |
| celestial1 | string | opcional | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceitos, que cobrem os 10 planetas, os dois nodos lunares, 6 asteroides, 9 corpos uranianos/fictícios e 9 luas planetárias. Um nome não reconhecido é mapeado silenciosamente para None em vez de gerar erro, o que depois falha mais a fundo, dentro do motor de efemérides. Observe que os nodos usam as formas com sublinhado MEAN_NODE / TRUE_NODE (não existe alias 'RAHU'/'KETU'). |
| celestial2 | string | opcional | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceitos, que cobrem os 10 planetas, os dois nodos lunares, 6 asteroides, 9 corpos uranianos/fictícios e 9 luas planetárias. Um nome não reconhecido é mapeado silenciosamente para None em vez de gerar erro, o que depois falha mais a fundo, dentro do motor de efemérides. Observe que os nodos usam as formas com sublinhado MEAN_NODE / TRUE_NODE (não existe alias 'RAHU'/'KETU'). |
| degr | number (double) | opcional | |
| 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 |
| nakshatras | string | opcional | specialPARÂMETRO MORTO na camada HTTP: o TransitView nunca o repassa, então enviá-lo não tem efeito. No motor, o único valor com significado é o literal 'special', que seleciona a tabela nakshatras_special, de 28 entradas, em vez da padrão, de 27 entradas. |
| when | string | opcional | afterbeforeO padrão do motor é 'after'. Usado pelas chaves 'solar_crossing', 'find_moon_crossing', 'moon_node_crossing' e 'celestial_conjunction'. |
| x2cross | number (double) | opcional |
Liste em keys só os cálculos que você quer. Uma chave desconhecida faz a requisição inteira ser rejeitada. O custo é 1 crédito, não importa quantas chaves você peça — então agrupe tudo numa chamada só.
| Chave | Campos extras exigidos | Descrição | |
|---|---|---|---|
| celestial_conjunction | celestial1, celestial2, datetime_start, when | O primeiro momento após `datetime_start` em que `celestial1` e `celestial2` compartilham uma longitude eclíptica. Retorna um objeto com `long1` e `long2`, as duas longitudes no momento encontrado — próximas, mas não exatamente iguais, já que a busca converge até uma tolerância — e `date`, o timestamp ISO. | |
| find_moon_crossing | x2cross, date_time, tz, when | O instante em que a Lua atinge a longitude eclíptica indicada em `x2cross`, buscando para a frente ou para trás a partir de `date_time`, conforme `when`. Retorna um único timestamp ISO deslocado por `tz`. Como a Lua se move cerca de 13 graus por dia, a resposta normalmente fica a menos de um mês do horário de referência. | |
| moon_node_crossing | date_time, tz, when | O cruzamento seguinte ou anterior do nodo lunar, buscando a partir de `date_time` na direção indicada por `when`. Retorna um objeto com `date`, o timestamp ISO deslocado por `tz`, junto com `long` e `lat`, a longitude e a latitude eclípticas nesse momento. Útil para localizar temporadas de eclipses. | |
| planet_transit | degr, planet, datetime_start, datetime_end, tz | O momento em que o corpo indicado em `planet` cruza a longitude eclíptica informada em `degr`, buscado entre `datetime_start` e `datetime_end`. Retorna um único timestamp ISO deslocado por `tz`, ou null quando o corpo nunca atinge esse grau dentro da janela. Diferentemente dos cruzamentos do Sol e da Lua, este é delimitado, então informe um intervalo amplo o suficiente para conter o evento. | |
| set_default_transit | — | Um seletor de modo, não um cálculo: define as efemérides como tropicais (sem ayanamsa aplicado) para o restante da requisição. Retorna null. As chaves são avaliadas na ordem em que você as lista, então coloque-o antes das chaves de cruzamento que ele deve afetar. | |
| set_sidereal_transit | — | Um seletor de modo, não um cálculo: define as efemérides como siderais, de modo que os cruzamentos e as posições seguintes na mesma requisição são medidos em relação ao ayanamsa, e não ao ponto zero tropical. Retorna null e deve ser listado antes das chaves que deve afetar. | |
| solar_crossing | x2cross, date_time, tz, when | O instante em que o Sol atinge a longitude eclíptica indicada em `x2cross`, buscando para a frente ou para trás a partir de `date_time`, conforme `when`. Retorna um único timestamp ISO com o deslocamento em horas de `tz` aplicado. Passe 0 para encontrar um ano-novo sideral, ou uma longitude solar natal para encontrar um aniversário com precisão de minuto. | |
| transit_details | celestial, date_time, tz | Os dados posicionais completos do corpo indicado em `celestial` em `date_time`. Retorna um objeto com `longitude` como string de exibição pré-formatada, `nakshatra` e seu `nakshatra_lord`, `padam` (a quarta parte do nakshatra, 1-4), `full_degree` (a longitude sideral dividida por 30, ou seja, o número do signo mais a fração já percorrida dele), `latitude_shara` como `{degrees, minutes, seconds}`, `speed` em graus por dia como string, `right_ascension` no formato 'hh.mm.ss.ss' e `declination_kranti` em graus como string. |