/v1/milan/ashtakoota
Full 36-point Ashtakoota with per-koota breakdown.
What this tells you
"Guna Milan" or "Ashtakoota" is the classical 8-factor marriage compatibility system. Each factor (koota) measures a different dimension — from biological to spiritual. Maximum 36 points total. 18+ minimum is traditionally required; 28+ indicates good match; 32+ excellent. Nadi is heavily weighted because "same Nadi" is considered a progeny/health risk.
Request
All requests require an Authorization header with your dv_live_* API key.
curl "https://api.divyastroapi.com/v1/milan/ashtakoota?date=2026-04-19&time=06%3A30&tz=%2B05%3A30&lat=28.61&lon=77.21" \
-H "Authorization: Bearer dv_live_0123456789abcdef0123456789abcdef"Response (200 OK)
Successful requests return a JSON body. Field names are stable across versions.
{
"total": 28.5,
"max": 36,
"verdict": "good",
"verdict_label": "Very Good — marriage recommended",
"min_required": 18,
"kootas": {
"varna": { "boy": "Brahmin", "girl": "Brahmin", "score": 1, "max": 1, "description": "Varna (spiritual compatibility)" },
"vashya": { "boy": "Chatushpada","girl": "Manava", "score": 2, "max": 2, "description": "Vashya (mutual control)" },
"tara": { "tara_count": 3, "score": 3, "max": 3, "description": "Tara (destiny/health compatibility)" },
"yoni": { "boy": "Deer (M)", "girl": "Deer (F)", "score": 3, "max": 4, "description": "Yoni (sexual/biological compatibility)" },
"graha_maitri": { "boy_lord": "Mars", "girl_lord": "Venus", "score": 5, "max": 5, "description": "Graha Maitri (mental/intellectual compatibility)" },
"gana": { "boy": "Deva", "girl": "Manushya", "score": 5, "max": 6, "description": "Gana (temperament)" },
"bhakoot": { "boy_sign": "Taurus","girl_sign": "Leo", "score": 7, "max": 7, "description": "Bhakoot (financial/family stability)" },
"nadi": { "boy": "Aadi", "girl": "Madhya", "score": 2.5, "max": 8, "description": "Nadi (progeny/health — most critical)" }
}
}Field reference
Every field in the response, with its type, a real example, and what it means.
| Field | Type | Meaning |
|---|---|---|
| total | number (0–36) | Total compatibility score. example: 28.5Jyotish: Classical verdicts: 0–17 very poor (avoid), 18–24 acceptable, 25–32 good, 33–36 excellent. |
| max | integer | Maximum possible score. Always 36. example: 36 |
| verdict | string | One of: very_poor, poor, acceptable, good, very_good, excellent. example: "good" |
| verdict_label | string | Human-readable version for UI. example: "Very Good — marriage recommended" |
| min_required | integer | Classical minimum to proceed. Below this, marriage is traditionally discouraged. example: 18 |
| kootas.varna | object | Varna compatibility (1 point). Boy's varna must be >= girl's for the point. example: … |
| kootas.vashya | object | Vashya (2 points). Based on which "group" each sign belongs to. example: … |
| kootas.tara | object | Tara (3 points). Based on the nakshatra count between partners. example: … |
| kootas.yoni | object | Yoni (4 points). 14 animal types per nakshatra. Same yoni + compatible pairs score higher. example: … |
| kootas.graha_maitri | object | Graha Maitri (5 points). Friendship between Moon-sign lords. example: … |
| kootas.gana | object | Gana (6 points). Deva-Deva or Manushya-Manushya ideal. example: … |
| kootas.bhakoot | object | Bhakoot (7 points). Sign distance between partners. example: … |
| kootas.nadi | object | Nadi (8 points). Same nadi = major red flag in classical astrology. example: … |
Usage tips
How to use it
- Parameter patternPass both partners' birth data with `boy_*` and `girl_*` prefixes. All 8 kootas are computed from Moon's nakshatra for each.
- Show the nadi carefullyNadi = 0/8 (same nadi) is a classical red flag but has many cancellation rules. Include a "consult an astrologer" link when this happens.
- Render per-kootaA 2-column table listing each koota, score/max, and one-line explanation works well. Color-code scores: red (<50%), yellow (50–75%), green (>75%).
Errors
Every error follows the same envelope. Use the error.code field (not the message) for conditional logic in your integration.
401 Unauthorized
{
"error": {
"code": "unauthorized",
"message": "missing or invalid API key",
"request_id": "req_01hqy7k8c3e7m1n"
}
}402 Payment Required
{
"error": {
"code": "trial_exhausted",
"message": "your free trial credits are exhausted — pick a plan to continue",
"top_up_url": "https://divyastroapi.com/pricing",
"request_id": "req_01hqy7k8c3e7m1n"
}
}429 Too Many Requests
{
"error": {
"code": "rate_limited",
"message": "rate limit exceeded; retry after 12 seconds",
"request_id": "req_01hqy7k8c3e7m1n"
}
}Try it
Get a dv_live_* key from your dashboard and paste into the cURL snippet above. New accounts get 500 free credits. Sign up.