Skip to main content

Ashtakoota Compatibility

asterwise_get_compatibility

Scores North Indian Ashtakoota (36-point Guna Milan) for two charts. Returns the koota breakdown, dosha flags, classical vetoes, a Mangal cross-check and narrative guidance.

Parameters​

ParameterTypeRequiredDescription
person1objectyesBirth data for a single person. Required fields: date, lat, lon. Optional fields: time, person_name, timezone, ayanamsa.
person2objectyesBirth data for a single person. Required fields: date, lat, lon. Optional fields: time, person_name, timezone, ayanamsa.
response_formatenum: markdown, jsonnoOutput format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload.

What it covers​

Implements classical Ashtakoota with eight weighted kootas (Varna through Nadi), dosha booleans and cancellations, Rajju/Vedha veto objects, supplementary Mahendra and Stree Deergha checks, mangal compatibility, and a structured narrative. It is not Dashakoot (asterwise_get_dashakoot), Tamil Porutham (asterwise_get_porutham), or twelve-koota Thirumana (asterwise_get_thirumana_porutham).

Workflow​

BEFORE: RECOMMENDED — asterwise_get_natal_chart per person — understand charts before interpreting scores.
AFTER: asterwise_get_papasamyam — optional malefic balance overlay.

Input​

Two BirthData objects; omit time when unknown (sunrise chart, birth_time_provided=false); '00:00' is read as real midnight. All scoring is computed upstream from those payloads.

Output contract​

data.total_score (float — out of 36)
data.breakdown{} — keys Varna, Vashya, Tara, Yoni, GrahaMaitri, Gana, Bhakoot, Nadi — each value float score
data.compatibility_level (string — Drik Panchang verdict: 'Excellent', 'Very Good', 'Ordinary' or 'Not Recommended'; Nadi 0 is never recommended, Bhakoot 0 is never Excellent)
data.doshas{} — only keys that are true appear:
varna_dosha, vashya_dosha, tara_dosha, yoni_dosha, graha_maitri_dosha, gana_dosha, bhakoot_dosha, nadi_dosha (bool)
bhakoot_dosha_type (string — 'Dwi-Dwadash', 'Nav-Pancham', 'Shadashtak' or 'Same Rashi with Nadi Dosha')
data.dosha_cancellations{} — only keys that are true appear:
bhakoot_dosha_cancelled (bool — flag only; points unchanged)
nadi_dosha_cancelled (bool — the Nadi koota then scores 8)
data.analysis:
major_doshas (int)
cancelled_doshas (int)
verdict_reason (string or null — Drik's 'due to' text, e.g. 'Nadi Dosha', 'low match points')
recommendation (string)
data.classical_vetoes:
has_veto (bool)
vedha — { present (bool), description (string) }
rajju — { present (bool), description (string), rajju_type (string — 'Siro', 'Kantha', 'Udara', 'Kati', or 'Pada') }
veto_note (string)
data.mangal_compatibility:
person_a_manglik (bool — after classical cancellation rules)
person_a_severity ('high' 7th/8th, 'medium' 1st/12th, 'lower' 2nd/4th, or null when not Manglik)
person_a_cancellations[] (string array — rules that cleared the dosha; empty when none applied)
person_b_manglik (bool — after classical cancellation rules)
person_b_severity (same tiers as person_a_severity)
person_b_cancellations[] (string array)
match_status (string)
description (string)
data.supplementary_checks:
mahendra — { is_auspicious (bool), distance (int), description (string) }
stree_deergha — { distance (int), quality (string), is_favorable (bool), description (string) }
data.compatibility_narrative:
overall (string)
strengths[] (string array)
concerns[] — strings, plus one { veto_type, severity, description, nakshatra_pair or body_part } object per classical veto present
recommendation (string)
data.birth_time_provided (bool)

Response format​

response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data — no fields are added, removed, or filtered by either mode.

Compute class​

MEDIUM_COMPUTE

Errors​

INVALID_PARAMS (local — caught before upstream call):
None — all validation is upstream.

INVALID_PARAMS (upstream):
— None — malformed birth payloads surface as MCP INTERNAL_ERROR at the tool layer.

INTERNAL_ERROR:
— Any upstream API failure or timeout → MCP INTERNAL_ERROR

Edge cases:
— Rajju and Vedha conditions may be present alongside high scores — read classical_vetoes before conclusions.
— Polar-latitude partners get the full dosha check (Mangal cancellations included).

Do not confuse with​

asterwise_get_dashakoot — ten-point South Indian extension, not 36-point Ashtakoota.
asterwise_get_porutham — Tamil ten-porutham pass/fail grid, different schema.

Connect​

Remote MCP endpoint: https://mcp.asterwise.com/mcp. Authenticate with Authorization: Bearer <API key> or OAuth. See the MCP setup guide.