curl -X POST https://api.occultapi.com/api/astro/dosha/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keys":["get_dosha_resources"],"date_time":"2025-07-11T04:37:08.718Z","latitude":26.9124,"longitude":75.7873,"timezone":0,"manglik_reference_planet":0,"include_lagna_house":true,"include_2nd_house":true,"apply_exceptions":true,"moon_star":"leo"}'Un dosha es una aflicción concreta de una carta natal: una configuración planetaria con nombre propio que los textos clásicos consideran un factor negativo, casi siempre para el matrimonio, la salud o el linaje. Este endpoint comprueba ocho de ellos a partir del momento y el lugar del nacimiento, y puede devolver los resultados en bruto o explicaciones redactadas listas para mostrar. Hay dos formas de usarlo. Las claves individuales (`kala_sarpa`, `manglik`, `pitru_dosha` y el resto) devuelven resultados estructurados que puedes procesar en tu código. `get_dosha_details` devuelve todo el conjunto como párrafos HTML con formato, indexados por el nombre del dosha en inglés, que es lo que necesitas si vas a generar un informe; cubre Kala Sarpa, Manglik, Pitru, Guru Chandala, Kalathra, Ghata y Shrapit, pero no Ganda Moola. `get_dosha_resources` te da el corpus de textos subyacente si prefieres redactar tu propio contenido. El serializer exige todos los campos booleanos y estructurados de la solicitud, incluso para las claves que los ignoran. `manglik_reference_planet` es un índice de planeta (0 Sol, 1 Luna, 2 Marte, 3 Mercurio, 4 Júpiter, 5 Venus, 6 Saturno, 7 Rahu, 8 Ketu); el valor por defecto del propio motor, que cuenta desde el ascendente, no se puede elegir mediante la API, porque el campo es de tipo entero. Este endpoint llama `timezone` al campo de la diferencia con UTC, no `timezone_as_float`.
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| apply_exceptions | boolean | obligatorio | |
| date_time | string (date-time) | obligatorio | El momento del cálculo, en ISO 8601. Incluye SIEMPRE la diferencia con UTC o una Z final: un valor sin zona horaria se interpreta como Asia/Kolkata (UTC+05:30), no como UTC, y puede devolver con un 200 el resultado del día anterior. '2026-09-01T06:00:00Z' y '2026-09-01 06:00:00' son instantes distintos y dan respuestas distintas. Restricción de FORMATO. DRF DateTimeField: solo ISO-8601 (formatos de entrada por defecto de DRF), p. ej., "2026-09-01T06:00:00+05:30", "2026-09-01T06:00:00Z" o "2026-09-01 06:00:00" (sin zona horaria = se toma como UTC). |
| include_2nd_house | boolean | obligatorio | |
| include_lagna_house | boolean | obligatorio | |
| keys | array | obligatorio | Los cálculos que quieres recibir, como lista de nombres. Consulta la tabla de claves de este endpoint; un nombre que no se reconoce invalida toda la solicitud. Cada llamada cuesta un crédito, pidas las claves que pidas, así que pide todo lo que necesites de una vez en lugar de hacer varias llamadas. get_dosha_resourceskala_sarpamanglikpitru_doshaguru_chandala_doshakalathraganda_moolaghatashrapitget_dosha_detailsArray de cadenas. 'manglik' requiere manglik_reference_planet, include_lagna_house, include_2nd_house y apply_exceptions; 'ganda_moola' requiere moon_star; 'get_dosha_details' requiere date_time y geopos. |
| latitude | number (double) | obligatorio | Latitud del lugar, en grados decimales. Los valores positivos indican el norte y los negativos, el sur. Ejemplo: 26.9124 para Jaipur, 40.7128 para Nueva York. No se aceptan minutos ni segundos: conviértelos antes. min -90 · max 90 |
| longitude | number (double) | obligatorio | Longitud del lugar, en grados decimales. Los valores positivos indican el este y los negativos, el oeste. Ejemplo: 75.7873 para Jaipur, -74.0060 para Nueva York. Cuidado con el signo: si falta el menos, Nueva York acaba en China. min -180 · max 180 |
| manglik_reference_planet | integer | obligatorio | |
| moon_star | string | obligatorio | En realidad es un NÚMERO de nakshatra, 1-27 (los nakshatras de Ganda Moola son 1 Ashwini, 9 Ashlesha, 10 Magha, 18 Jyeshtha, 19 Moola, 27 Revati). No se puede publicar una lista de valores aceptados que funcione hasta que se corrija esa discrepancia de tipos. |
| timezone | number (double) | obligatorio | Diferencia horaria del lugar con UTC, en horas y con decimales. Ejemplo: 5.5 para la India (UTC+05:30). Significa exactamente lo mismo que timezone_as_float; otros endpoints simplemente le dan ese otro nombre. |
Indica en keys exactamente los cálculos que quieres. Si una clave no existe, se rechaza toda la solicitud. Pidas las que pidas, se cobra 1 crédito, así que agrúpalas en una sola llamada.
| Clave | Campos adicionales | Descripción | |
|---|---|---|---|
| ganda_moola | moon_star | Ganda Moola: indica si la estrella de nacimiento es uno de los seis nakshatras de unión (Ashwini, Ashlesha, Magha, Jyeshtha, Moola, Revati). Debería recibir el número de nakshatra 1–27 en `moon_star` y devolver un booleano, pero el campo está tipado como cadena y la lista con la que se compara contiene enteros, así que, tal como está, la clave devuelve false para cualquier valor. | |
| get_dosha_details | date_time, geopos | Los siete doshas con texto, evaluados y redactados de una vez: un objeto indexado por el nombre del dosha en inglés (Kala Sarpa Dosha, Manglik Dosha, Pitru Dosha, Guru Chandala Dosha, Kalathra Dosha, Ghata Dosha y Shrapit Dosha), cuyos valores son fragmentos HTML que indican si el dosha está presente y qué significa. No incluye Ganda Moola. Requiere `date_time` y el lugar. | |
| get_dosha_resources | — | Todos los textos explicativos de los doshas, como objeto indexado por nombre de dosha ('kala_sarpa', 'manglik', 'pitru', 'ghata', etc.), con una lista de párrafos en inglés para cada uno. La primera entrada de cada lista es el texto para cuando no hay dosha, y las siguientes corresponden a la casa o la variedad de que se trate. Úsalo para componer tu propio texto en lugar de usar el HTML ya montado. | |
| ghata | — | Ghata Dosha: Marte y Saturno juntos en el mismo signo. Devuelve un único booleano. | |
| guru_chandala_dosha | — | Guru Chandala: Júpiter en conjunción con Rahu o Ketu en el mismo signo. Devuelve una lista de dos elementos: [si la combinación está presente, si Júpiter es el más fuerte de los dos]. Si no hay conjunción, los dos son false. | |
| kala_sarpa | — | Kala Sarpa Dosha: true cuando los siete planetas clásicos están encerrados entre Rahu y Ketu, a un lado del eje nodal. Devuelve un único booleano; la variedad (Ananta, Kulika, Vasuki, etc.) se deduce de la casa que ocupa Rahu. | |
| kalathra | — | Kalathra Dosha, la aflicción de la casa del matrimonio. Es true cuando todos los maléficos naturales (Sol, Marte, Saturno, Rahu y Ketu) caen en la casa 1, 2, 4, 7, 8 o 12 contada desde la casa séptima. Devuelve un único booleano y, como exige que se cumpla para los cinco maléficos, rara vez es true. | |
| manglik | manglik_reference_planet, include_lagna_house, include_2nd_house, apply_exceptions | Manglik, o Mangal Dosha: indica si Marte cae en alguna de las casas que afligen el matrimonio, contadas desde `manglik_reference_planet`. Devuelve una lista de tres elementos: [es manglik, si hay una cancelación, los números de las reglas de cancelación que se cumplen]. Se comprueban las casas 4, 7, 8 y 12, además de la 2 si `include_2nd_house` es true y la 1 si `include_lagna_house` es true; las cancelaciones solo se evalúan si `apply_exceptions` es true. | |
| pitru_dosha | — | Pitru Dosha, la aflicción del linaje. Devuelve una lista de dos elementos: [true o false, los números de las reglas que se activaron]. Se comprueban cinco reglas por orden: una luminaria o Rahu en la casa 9, Ketu en la 4, Sol/Luna/Rahu/Ketu afligidos por Marte o Saturno, una concentración de Mercurio, Venus y Rahu en la 2, 5, 9 o 12, y el Sol o la Luna en conjunción con un nodo. | |
| shrapit | — | Shrapit Dosha: Saturno y Rahu juntos en el mismo signo. Devuelve un único booleano. |