Grahvani API v1
Compatibility

Aṣṭakūṭa (Guṇa Milan), 36 points

POST/v1/compatibility/ashtakoota
Cost
10 units
Operation
compatibilityAshtakoota
Auth
X-API-Key

The eight kūṭas and the composite score. 10 units.

Read provenance before you present this to a user. Two of the eight tables are verified against primary sources: Graha Maitrī matches Bṛhat Parāśara Horā Śāstra Ch. 3 śl. 55 on all seven planets, and Nāḍī follows the boustrophedon formula rather than a transcribed table. The yoni grid is disputed between published sources and the response says so per-kūṭa rather than presenting a contested number as settled.

Worth knowing: the 36-point system is not in BPHS. It comes from the Muhūrta literature; BPHS supplies only the friendship table that Graha Maitrī consumes. Sources attributing the system itself to BPHS are mistaken.

Body parameters#

brideobjectRequired
birthobjectRequired
datestring · dateRequired
timestringoptional

Local clock time at the place of birth. If unknown, omit it — we use 12:00 noon and set meta.birth_time_assumed, and still return the full chart. We do not refuse a reading for want of a birth time.

placeobjectRequired
latitudenumberRequired

min -90 · max 90.

longitudenumberRequired

min -180 · max 180.

timezonestringRequired

IANA name, e.g. Asia/Kolkata. Not a fixed offset — an offset cannot represent historical daylight-saving transitions, and a birth in 1980 may need one.

ayanamsaenumoptional

Honoured only where the operation exists in that school — 41 of them do. Everything else is Lahiri-only and returns 501 for another school. See GET /v1/meta/capabilities.

One of lahiri, raman, yukteswar, bhasin, true_chitra, kp. Defaults to "lahiri".

groomobjectRequired
birthobjectRequired
datestring · dateRequired
timestringoptional

Local clock time at the place of birth. If unknown, omit it — we use 12:00 noon and set meta.birth_time_assumed, and still return the full chart. We do not refuse a reading for want of a birth time.

placeobjectRequired
latitudenumberRequired

min -90 · max 90.

longitudenumberRequired

min -180 · max 180.

timezonestringRequired

IANA name, e.g. Asia/Kolkata. Not a fixed offset — an offset cannot represent historical daylight-saving transitions, and a birth in 1980 may need one.

ayanamsaenumoptional

Honoured only where the operation exists in that school — 41 of them do. Everything else is Lahiri-only and returns 501 for another school. See GET /v1/meta/capabilities.

One of lahiri, raman, yukteswar, bhasin, true_chitra, kp. Defaults to "lahiri".

bhakoot_ruleenumoptional

How Bhakūṭa doṣa cancellation is applied. Under lenient — same lord or a friendly relationship on either side — Nava-Pañcama (5–9) doṣa can never arise, because all twelve pairs cancel. That is a defensible classical position and a surprising one, so it is explicit rather than implied.

One of strict, lenient. Defaults to "strict".

Request#

POST /v1/compatibility/ashtakoota
curl -X POST https://api.grahvani.in/v1/compatibility/ashtakoota \
  -H "X-API-Key: $GRAHVANI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "bride": {
    "birth": {
      "date": "1992-03-14",
      "time": "14:20:00",
      "place": {
        "latitude": 17.385,
        "longitude": 78.4867,
        "timezone": "Asia/Kolkata"
      }
    }
  },
  "groom": {
    "birth": {
      "date": "1989-11-02",
      "time": "07:45:00",
      "place": {
        "latitude": 19.076,
        "longitude": 72.8777,
        "timezone": "Asia/Kolkata"
      }
    }
  },
  "bhakoot_rule": "strict"
}'

Response#

A real response from the production API, abbreviated where an array was long. Every success carries the same three keys — data, meta and, where we have something citable, provenance.

200 OK
{
  "data": {
    "female": {
      "birth_details": {
        "ascendant": {
          "longitude": 94.125071,
          "nakshatra": 8,
          "nakshatra_name": "Pushya",
          "pada": 1,
          "rashi": 4,
          "rashi_name": "Cancer"
        },
        "moon": {
          "longitude": 89.906122,
          "nakshatra": 7,
          "nakshatra_name": "Punarvasu",
          "pada": 3,
          "rashi": 3,
          "rashi_name": "Gemini"
        }
      },
      "name": "api"
    },
    "guna_milan_results": {
      "compatibility_level": "Poor",
      "critical_doshas": [
        "Nadi Dosha (Most serious - genetic incompatibility)",
        "Bhakoot Dosha - 6-8 (Shadashtaka)",
        "Gana Dosha (temperament mismatch)"
      ],
      "kutas": {
        "bhakoot": {
          "description": "Love, affection and prosperity",
          "dosha": "6-8 (Shadashtaka)",
          "female_rashi": "Gemini",
          "male_rashi": "Scorpio",
          "max_points": 7,
          "name": "Bhakoot Kuta",
          "points_obtained": 0,
          "position": 8
        },
        "gana": {
          "description": "Temperament and behavior compatibility",
          "female_gana": "Deva",
          "male_gana": "Rakshasa",
          "max_points": 6,
          "name": "Gana Kuta",
          "points_obtained": 0
        },
        "graha_maitri": {
          "description": "Mental and psychological compatibility",
          "female_rashi_lord": "Mercury",
          "male_rashi_lord": "Mars",
          "max_points": 5,
          "name": "Graha Maitri Kuta",
          "points_obtained": 0.5
        },
        "nadi": {
          "description": "Health, genetics and progeny",
          "exception_applied": false,
          "female_nadi": "Aadi",
          "male_nadi": "Aadi",
          "max_points": 8,
          "nadi_dosha": true,
          "name": "Nadi Kuta",
          "points_obtained": 0
        },
        "tara": {
          "description": "Birth star compatibility and destiny",
          "female_to_male_count": 12,
          "female_to_male_tara": "Vipat",
          "male_to_female_count": 17,
          "male_to_female_tara": "Mitra",
          "max_points": 3,
          "name": "Tara Kuta",
          "points_obtained": 1.5
        },
        "varna": {
          "description": "Spiritual compatibility based on ego levels",
          "female_varna": "Shudra",
          "male_varna": "Brahmin",
          "max_points": 1,
          "name": "Varna Kuta",
          "points_obtained": 1
        },
        "vashya": {
          "description": "Mutual attraction and control",
          "female_vashya": "Human",
          "male_vashya": "Insect",
          "max_points": 2,
          "name": "Vashya Kuta",
          "points_obtained": 0
        },
        "yoni": {
          "description": "Physical and sexual compatibility",
          "female_yoni": "Cat (F)",
          "male_yoni": "Deer (M)",
          "max_points": 4,
          "name": "Yoni Kuta",
          "points_obtained": 2
        }
      },
      "max_score": 36,
      "percentage": 13.89,
      "recommendation": "Poor compatibility - Not recommended",
      "total_score": 5
    },
    "male": {
      "birth_details": {
        "ascendant": {
          "longitude": 209.917954,
          "nakshatra": 16,
          "nakshatra_name": "Vishakha",
          "pada": 3,
          "rashi": 7,
          "rashi_name": "Libra"
        },
        "moon": {
          "longitude": 233.804676,
          "nakshatra": 18,
          "nakshatra_name": "Jyeshtha",
          "pada": 3,
          "rashi": 8,
          "rashi_name": "Scorpio"
        }
      },
      "name": "api"
    }
  },
  "meta": {
    "request_id": "req_01JQ8ZK3M4N5P6Q7R8S9T",
    "endpoint": "compatibility.ashtakoota",
    "units": 10,
    "computed_at": "2026-08-06T07:23:53.634Z",
    "ayanamsa": "lahiri"
  },
  "provenance": {
    "method": "Aṣṭakūṭa (Guṇa Milan), 36 points",
    "conventions": {
      "bhakoot": "strict cancellation unless bhakoot_rule=lenient"
    },
    "sources": [
      {
        "work": "Bṛhat Parāśara Horā Śāstra",
        "locus": "Ch. 3, śl. 55",
        "note": "the planetary friendship table Graha Maitrī consumes — verified 7/7"
      }
    ],
    "disputed": [
      {
        "element": "yoni kūṭa grid",
        "note": "Published sources disagree on 10–18 of 91 animal pairs. The circulating 14×14 grid traces to a 2008 HTML-to-PDF e-text, and Raman's 1948 first edition contains no such grid. The 7 mortal-enemy pairs and the 0–4 scale are not in dispute."
      },
      {
        "element": "the 36-point system itself",
        "note": "Not from BPHS — it comes from the Muhūrta literature. BPHS supplies only the friendship table. Sources attributing the system to BPHS are mistaken."
      }
    ]
  }
}

Errors#

StatusWhen
400Your request. Always carries error.field when a single input is at fault.
401Missing, malformed, revoked or out-of-scope API key.
429Rate limit or monthly unit quota exhausted. Always carries Retry-After.

Every failure returns the same error shape and a doc_url that resolves. See Errors and the full code list.

Grahvani API — a product of AstroCorp Techlab Pvt Ltd · GSTIN 36AAMCC3512G1ZU
Base URL https://api.grahvani.in
On this page