Ir para o conteúdo
POST/api/astro/chart/1 crédito

Mapa natal

O endpoint principal de mapas: posições planetárias, divisões das casas e o ascendente para um momento e um local. Para um mapa natal comum, peça o mapa rashi (D-1); os cerca de trinta mapas divisionais — Navamsa, Dasamsa, Dwadasamsa, Shashtyamsa e os demais — também são pedidos pelo nome. Passe um array de nomes para receber vários em uma única chamada, indexados pelo nome do mapa. Cada mapa retorna três blocos. `celestial` é indexado pelo nome do corpo (sun, moon, … northtruenode) e traz, para cada um, longitude, latitude, nakshatra e pada, kakshya, nome do signo e número da casa. `houses` tem chaves de 1 a 12, com `start`, `cusp` e `end` de cada casa. `ascendant` traz o grau ascendente e o signo. `notation` define as unidades de toda a resposta: 'degree' para graus decimais, 'astrological' para signo mais graus, minutos e segundos. É nos campos opcionais que está a precisão. `ayanamsa` escolhe a definição sideral, e `apply_correction`, com `correction_deg`, `correction_min`, `correction_sec` e `correction_direction`, a ajusta manualmente. `rahu` escolhe nodos verdadeiros, nodos médios ou ambos. `extended_bodies` adiciona asteroides, corpos fictícios uranianos ou luas planetárias e descarta silenciosamente os corpos cujos arquivos de efemérides não estão disponíveis. `ascendant_pos` define se o ascendente é lido na cúspide, no início ou no fim da casa — atenção: qualquer valor diferente de 'start' ou 'end', inclusive um erro de digitação, cai na cúspide sem nenhum aviso. Neste endpoint, o campo de data se chama `datetime`, e não `date_time`. RENDERIZAÇÃO SVG OPCIONAL. Defina render como 'svg' e a resposta ganha mais dois campos, que se somam aos quatro acima, sem substituí-los: `layout` é a geometria — os pontos do polígono de cada célula de casa ou de signo, a posição do rótulo e os corpos que a ocupam — para você desenhar o próprio diagrama em React, Canvas, Flutter ou SwiftUI. `svg` é a marcação pronta para inserir, gerada a partir dessa mesma geometria. chart_style escolhe o estilo norte-indiano (losango, casas fixas, signos que giram) ou sul-indiano (grade fixa de signos, casas que giram); svg_size, theme, label_style, show_degrees e os quatro campos *_color controlam a renderização. Todos esses campos vêm desativados por padrão, então uma requisição que não menciona render não muda em nada — a resposta é exatamente a mesma de sempre.

https://api.occultapi.com/api/astro/chart/
Testar requisição
Dados de Mapa natal exibidos numa interface
Os dados deste endpoint exibidos numa interface real. A API entrega os valores; o layout é você quem monta.

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/json

Campos da requisição

CampoTipoObrigatórioObservações
ascendant_posstringobrigatório
cuspstartend

'start' usa o início da casa e 'end', o fim da casa; QUALQUER outro valor - incluindo o próprio 'cusp' e qualquer erro de digitação - cai no ramo else e usa a cúspide da casa. Assim, 'cusp' é o padrão efetivo, e erros de grafia falham silenciosamente em vez de gerar erro. Diferencia maiúsculas de minúsculas.

ayanamsastringobrigatório
FAGAN_BRADLEYLAHIRIDELUCERAMANUSHASHASHIKRISHNAMURTIDJWHAL_KHULYUKTESHWARJN_BHASINBABYL_KUGLER1BABYL_KUGLER2BABYL_KUGLER3

NÃO diferencia maiúsculas de minúsculas - name.upper é usado na consulta. Ao contrário de /api/astro/ayanamsa_value/, aqui 'USER' NÃO é rejeitado. Um valor desconhecido retorna 400 "Undefined ayanamsa: <name>". Observe que apply_correction=true se sobrepõe à escolha e muda o modo interno para USER.

chart_namestringobrigatório
BhavaChartRashiChartHoraChartJagannathHoraChartParivrittidwayaHoraChartParivrittitrayaDrekkanaChartDrekkanaChartSomnathDrekkanaChartJagannathDrekkanaChartChaturthamsaChartPanchamsaChartShashthamsaChart

Diferencia maiúsculas de minúsculas e deve ser escrito exatamente como listado. Passe um único nome, ou um array para obter vários mapas em uma única chamada - a resposta é então indexada pelo nome do mapa. Um nome desconhecido retorna 400.

datetimestring (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. Equivale a date_time, nome que outros endpoints usam para o mesmo valor.

Restrição de FORMATO, não um enum. DRF DateTimeField: apenas ISO-8601 (formatos de entrada padrão do DRF), por exemplo "2026-09-01T06:00:00+05:30", "2026-09-01T06:00:00Z" ou "2026-09-01 06:00:00" (sem fuso horário = assume-se UTC). Observe que este endpoint chama o campo de `datetime`, não `date_time`.

latitudenumber (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 -180 · max 180

longitudenumber (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

notationstringobrigatório
astrologicaldegree

Diferencia maiúsculas de minúsculas; em minúsculas. 'astrological' retorna os componentes signo/grau/minuto/segundo; 'degree' retorna graus decimais brutos. Qualquer outro valor retorna 400 "Invalid notation: <x>".

aberrationbooleanopcional
apply_correctionbooleanopcional
background_colorstringopcional

Cor hexadecimal do fundo do SVG.

chart_stylestringopcional

Estilo do diagrama quando render='svg'. 'north' é o layout em losango, com casas fixas e signos que giram; 'south' é a grade de signos fixos, com casas que giram.

northsouth
correction_degintegeropcional

min 0

correction_directionstringopcional
addsubtract

Padrão: 'add'. Só faz sentido quando apply_correction=true e pelo menos um entre correction_deg/min/sec é diferente de zero.

correction_minintegeropcional

min 0 · max 59

correction_secintegeropcional

min 0 · max 59

extended_bodiesarrayopcional

Grupos de corpos a incluir: 'asteroids', 'planetary_moons', 'fictitious_bodies'.

asteroidsplanetary_moonsfictitious_bodies

Array de strings, padrão []. 'asteroids' adiciona chiron, pholus, ceres, pallas, juno, vesta; 'fictitious_bodies' adiciona cupido, hades, zeus, kronos, apollon, admetos, vulkanus, poseidon, selena; 'planetary_moons' adiciona phobos, deimos, io, europa, ganymede, callisto, titan, triton, charon. Corpos cujos arquivos de efemérides não estão disponíveis são descartados da resposta sem aviso.

label_stylestringopcional

Como os planetas são rotulados: 'english' (Su, Mo, ...), 'sanskrit' (Surya, Chandra, ...) ou 'symbol' (☉, ☽, ...).

englishsanskritsymbol
line_colorstringopcional

Cor hexadecimal das linhas de grade do mapa.

nutationbooleanopcional
planet_colorstringopcional

Cor hexadecimal dos rótulos dos planetas, por exemplo '#111827'. Padrão: a própria cor do tema.

rahustringopcional

Tipo de nodo a incluir. 'true' retorna apenas os nodos verdadeiros, 'mean' retorna apenas os nodos médios, 'both' retorna ambos.

truemeanboth

Padrão: 'true'. 'true' retorna apenas os nodos verdadeiros, 'mean' apenas os nodos médios, 'both' retorna todos os quatro.

refractionbooleanopcional
renderstringopcional

Defina como 'svg' para receber também um diagrama renderizado do mapa (veja chart_style) e a geometria usada para desenhá-lo. Sem este campo, a resposta não muda.

nonesvg
show_degreesbooleanopcional

Exibe, ao lado do rótulo, o grau de cada corpo dentro do signo.

sign_colorstringopcional

Cor hexadecimal dos números/abreviações dos signos.

svg_sizeintegeropcional

Largura e altura do viewBox quadrado do SVG, em pixels.

min 100 · max 2000

themestringopcional
lightdark
true_meanstringopcional
TrueMean

DIFERENCIA maiúsculas de minúsculas; com inicial maiúscula. Padrão: 'Mean'. Seleciona posições planetárias verdadeiras ou médias (posições verdadeiras em vez de aparentes).

use_28_nakshatrasbooleanopcional

Exemplo de requisição

curl -X POST https://api.occultapi.com/api/astro/chart/ \
  -H "X-API-Key: $OCCULT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"chart_name":"NavamsaChart","datetime":"2026-04-09T15:35:00+05:30","longitude":75.76861133842026,"latitude":26.849874414615,"notation":"degree","ayanamsa":"lahiri","ascendant_pos":"cusp","rahu":"true","true_mean":"Mean","refraction":false,"apply_correction":false,"correction_direction":"add","correction_deg":0,"correction_min":0,"correction_sec":0}'

Resposta

{
  "data": {
    "NavamsaChart": {
      "celestial": {
        "sun": {
          "longitude": 318.0675,
          "latitude": 0,
          "nakshatra": "Satabhishak",
          "pada": 4,
          "kakshya": "venus",
          "zodiac_name": "Aquarius",
          "house": 8
        },
        "moon": {
          "longitude": 150.3425,
          "latitude": -4.343,
          "nakshatra": "Uttara Phalguni",
          "pada": 2,
          "kakshya": "saturn",
          "zodiac_name": "Virgo",
          "house": 3
        },
        "mercury": {
          "longitude": 74.3125,
          "latitude": -2.291,
          "nakshatra": "Aardra",
          "pada": 3,
          "kakshya": "sun",
          "zodiac_name": "Gemini",
          "house": 12
        },
        "venus": {
          "longitude": 159.8475,
          "latitude": -0.081,
          "nakshatra": "Uttara Phalguni",
          "pada": 4,
          "kakshya": "mars",
          "zodiac_name": "Virgo",
          "house": 3
        },
        "mars": {
          "longitude": 139.1825,
          "latitude": -1.01,
          "nakshatra": "Poorva Phalguni",
          "pada": 2,
          "kakshya": "Mercury",
          "zodiac_name": "Leo",
          "house": 2
        },
        "jupiter": {
          "longitude": 19.82499999999999,
          "latitude": 0.377,
          "nakshatra": "Bharani",
          "pada": 2,
          "kakshya": "Mercury",
          "zodiac_name": "Aries",
          "house": 10
        },
        "saturn": {
          "longitude": 201.275,
          "latitude": -2.136,
          "nakshatra": "Visaakha",
          "pada": 1,
          "kakshya": "Mercury",
          "zodiac_name": "Libra",
          "house": 4
        },
        "uranus": {
          "longitude": 314.28,
          "latitude": -0.169,
          "nakshatra": "Satabhishak",
          "pada": 3,
          "kakshya": "sun",
          "zodiac_name": "Aquarius",
          "house": 8
        },
        "neptune": {
          "longitude": 164.6175,
          "latitude": -1.31,
          "nakshatra": "Hasta",
          "pada": 2,
          "kakshya": "sun",
          "zodiac_name": "Virgo",
          "house": 3
        },
        "pluto": {
          "longitude": 10.007499999999991,
          "latitude": -3.973,
          "nakshatra": "Ashwini",
          "pada": 4,
          "kakshya": "mars",
          "zodiac_name": "Aries",
          "house": 10
        },
        "northtruenode": {
          "longitude": 304.65,
          "latitude": 0,
          "nakshatra": "Dhanishtha",
          "pada": 4,
          "kakshya": "jupiter",
          "zodiac_name": "Aquarius",
          "house": 8
        },
        "southtruenode": {
          "longitude": 124.65,
          "latitude": 0,
          "nakshatra": "Makha",
          "pada": 2,
          "kakshya": "jupiter",
          "zodiac_name": "Leo",
          "house": 2
        }
      },
      "houses": {
        "1": {
          "start": 118.24667529991994,
          "cusp": 133.24667529991996,
          "end": 148.24667529991996
        },
        "2": {
          "start": 148.24667529991996,
          "cusp": 163.24667529991996,
          "end": 178.24667529991996
        },
        "3": {
          "start": 178.24667529991996,
          "cusp": 193.24667529991996,
          "end": 208.24667529991996
        },
        "4": {
          "start": 208.24667529991996,
          "cusp": 223.24667529991993,
          "end": 238.24667529991993
        },
        "5": {
          "start": 238.24667529991993,
          "cusp": 253.24667529991993,
          "end": 268.2466752999199
        },
        "6": {
          "start": 268.2466752999199,
          "cusp": 283.2466752999199,
          "end": 298.2466752999199
        },
        "7": {
          "start": 298.2466752999199,
          "cusp": 313.2466752999199,
          "end": 328.2466752999199
        },
        "8": {
          "start": 328.2466752999199,
          "cusp": 343.2466752999199,
          "end": 358.2466752999199
        },
        "9": {
          "start": 358.2466752999199,
          "cusp": 13.246675299919922,
          "end": 28.24667529991992
        },
        "10": {
          "start": 28.24667529991992,
          "cusp": 43.24667529991992,
          "end": 58.24667529991993
        },
        "11": {
          "start": 58.24667529991993,
          "cusp": 73.24667529991993,
          "end": 88.24667529991993
        },
        "12": {
          "start": 88.24667529991993,
          "cusp": 103.24667529991991,
          "end": 118.24667529991994
        }
      },
      "ascendant": {
        "longitude": 133.24667529991996,
        "zodiac_name": "Cancer",
        "nakshatra": "Makha",
        "pada": 4
      },
      "ayanamsa_used": {
        "name": "LAHIRI",
        "corrected": false,
        "value_degrees": 24.224068,
        "formatted": "24°13'27\""
      }
    }
  },
  "message": "successful",
  "is_error": false
}

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.