mahabhulekh.maharashtra.gov.in APImahabhulekh.maharashtra.gov.in ↗
Access Maharashtra Bhulekh land records via API. Retrieve 7/12 (Satbara), 8A, and Property Card documents by district, taluka, village, and survey number.
// select an endpoint above
About the mahabhulekh.maharashtra.gov.in API
This API provides 8 endpoints for querying the Maharashtra Bhulekh portal, covering the full geographic hierarchy from districts down to survey numbers and delivering official land record documents. Starting with get_districts, you can traverse Maharashtra's administrative structure through talukas and villages, then retrieve 7/12 (Satbara) extracts, 8A records, or Property Cards using the search_712, search_8a, and search_property_card endpoints respectively.
Geographic Hierarchy Lookup
The API exposes four chained lookup endpoints: get_districts returns all Maharashtra districts as an array of objects with id and name fields in Marathi. get_talukas accepts a district_id and returns the talukas within it. get_villages takes both district_id and taluka_id to return villages. Finally, get_survey_numbers accepts district_id, taluka_id, village_id, and an optional survey_prefix string to filter results, returning survey IDs and names you'll need to submit a record search.
Captcha and Form State
Before submitting any record search, call get_captcha. It returns a captcha_image_b64 field containing a base64-encoded PNG of the captcha, along with three ASP.NET form state strings: viewstate, viewstate_generator, and event_validation. All three tokens, plus the solved captcha text, are required inputs for the three search endpoints. Tokens are session-bound and must be used promptly after retrieval.
Land Record Search Endpoints
search_712 retrieves a 7/12 (Satbara Utara) extract, the primary land ownership and cultivation record in Maharashtra, identified by survey_id, district_id, taluka_id, and village_id. search_8a retrieves an 8A record, which lists all survey numbers held under a single khata, using khata_id in place of survey_id. search_property_card fetches urban property card records and requires a cts_id and office_id instead of a taluka. All three return a data.html field containing the formatted record as an HTML string, which you can parse or render directly.
Coverage and Limitations
All names in the geographic hierarchy endpoints are returned in Marathi script. The mobile field in search requests is optional and does not affect record retrieval. Record availability depends on what the Bhulekh portal has indexed for a given village and survey; not all historical or rural survey numbers are guaranteed to return populated records.
- Verify land ownership details for a specific survey number before a property transaction
- Aggregate 7/12 extract data across multiple villages in a taluka for agricultural research
- Retrieve 8A records to list all plots held under a single khata number for due diligence
- Build a property verification workflow that walks the district → taluka → village → survey hierarchy programmatically
- Pull Property Card data for urban CTS plots to confirm ownership in Maharashtra cities
- Cross-reference survey numbers from
get_survey_numberswith official Satbara documents for legal compliance
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does mahabhulekh.maharashtra.gov.in have an official developer API?+
What does search_712 actually return, and how is it different from search_8a?+
search_712 returns the 7/12 Satbara Utara record for a single survey number identified by survey_id. It is plot-centric. search_8a returns the 8A record for a khata number (khata_id), which consolidates all survey plots held by one landholder. If you need per-plot cultivation and ownership detail, use search_712. If you need a consolidated holding summary, use search_8a.Why do I need to call get_captcha before each search, and can I reuse the tokens?+
get_captcha endpoint returns session-bound ASP.NET tokens (viewstate, viewstate_generator, event_validation) along with the captcha image. These tokens are tied to a single form submission and expire quickly. Reusing tokens from a previous call will cause the search to fail. Always call get_captcha immediately before each search_712, search_8a, or search_property_card request.Can I search by owner name or Aadhaar number instead of survey or khata ID?+
search_712), khata ID (search_8a), or CTS ID (search_property_card), all of which require navigating the district → taluka → village hierarchy first. Name-based or ID-based owner lookups are not exposed. You can fork this API on Parse and revise it to add an owner-name search endpoint if the portal exposes that path.