[AUGUST 19, 2026]
Why two astrology APIs disagree about Manglik dosha (and why we show our work)
The same chart can be "not Manglik" on one API and "Manglik, mild" on another. Neither is lying — they check different reference points. Here's the classical rule, and why a verdict should come with its reasoning.
While building our DivineAPI migration guide we ran the same birth data through both APIs and compared every field. Planets matched. Nakshatras matched. Houses matched. Then we hit the Manglik dosha endpoint:
| Verdict | |
|---|---|
| Competitor | "manglik_dosha": "No" |
| AstroAsk | "isManglik": true, "severity": "Mild" |
Same person, same moment, same place. One says no, one says yes. Which one is wrong?
Neither — and that's the interesting part.
The classical rule has three reference points
Manglik (Kuja) dosha is Mars in the 1st, 2nd, 4th, 7th, 8th, or 12th house. But house counted from where? Classical Jyotish texts give three answers, and serious practitioners check all of them:
- From the Lagna (ascendant) — the most common check, and the one most software uses
- From the Moon — the Chandra Lagna; many traditions weight this equally
- From Venus — for marriage-specific analysis, since Venus signifies the spouse
A chart can be clean from the Lagna but Manglik from the Moon. If an API only checks the
Lagna, it will say "No" — correctly, by its own rule. If another API checks all three, it
will say "Yes, mild" — also correctly, by its rule. The verdicts differ because the
methods differ, and a bare "No" gives you no way to know which method produced it.
The problem with a bare verdict
If your product shows a Manglik result to a user, you're now on the hook for it. A matchmaking app that says "compatible" and then a family astrologer says "but he's Manglik from the Moon" — that's a support ticket you can't answer, because the API gave you a word, not a reason.
Worse, you can't choose. Maybe your product's tradition is Lagna-only. Maybe it's all three. With a bare verdict you get whatever school the API vendor picked, silently.
What "showing the work" looks like
Here's the actual AstroAsk response for that chart:
{
"isManglik": true,
"severity": "Mild",
"percentage": 33,
"references": [
{ "reference": "fromLagna", "house": 11, "triggers": false },
{ "reference": "fromMoon", "house": 1, "triggers": true },
{ "reference": "fromVenus", "house": 2, "triggers": false }
],
"cancellations": [],
"isCancelled": false
}
Now the disagreement explains itself: Mars is in the 11th from the Lagna (clean), the
1st from the Moon (triggers), and the 2nd from Venus (clean). One of three references
fires — hence "Mild", hence 33%. The competitor's "No" was a Lagna-only answer, and you
can see that it would say no, because fromLagna.triggers is false.
And because it's data, not a sentence, you can build on it:
// Your product follows the Lagna-only school? Filter, don't guess.
const lagnaOnly = data.references.find(r => r.reference === 'fromLagna').triggers;
// Stricter school — any reference counts?
const anyReference = data.references.some(r => r.triggers);
// Explain to the user, in their language, from the fields:
const why = data.references.filter(r => r.triggers).map(r => r.reference);
The cancellations[] array works the same way — when a classical cancellation applies
(Mars in its own sign, Mars aspected by Jupiter, and so on), it's listed by name with which
references it cancels, and isCancelled reflects the net result. You get the rule that
was applied, not just the outcome of applying it.
This is a general principle, not a Manglik feature
We try to do this everywhere a verdict could be contested:
/v1/yogasreturns each yoga with theconditions[]that triggered it and astrengthgrade — not just "Gaja Kesari: yes"/v1/compatibility/ashtakootreturns per-koota scores anddoshas[]separately, so a decent total can't hide a Nadi dosha/v1/dasha/vimshottarireturns each lord'slordStrength(dignity, house, Shadbala) so you can see why a period reads strong or weak
The rule of thumb: if two reasonable astrologers could disagree about a result, the API should return enough for you to see which rule was applied — and pick a different one if your product needs to.
Try it on a chart you know
The playground has /dosha/manglik — put in a chart where you already know
the answer and see whether the references[] match what your astrologer told you. If
they don't, you'll be able to see exactly which reference point differs, which is more
than a "Yes"/"No" would ever tell you.