Source: https://legiscore.in/docs/states/maharashtra/index2-property

# Index-II by Property (survey / gat / CTS) (Maharashtra)

Every registered document the registrar lists against one survey, gat or CTS number in a village, for any range of years from 1985, 20 credits per year (a range over ten years runs as one search per year). Rest of Maharashtra by default; Mumbai and city areas each have their own form.

Status: LIVE. Source status: No recent runs. Typical time: up to 20 min. state: `maharashtra`, search_type: `index2_property`.

Register search: found:false is not a clear title. Read the documents.

## What you get

One row per registered document (year, document number, parties, office), plus the Index-II abstract of each as a PDF (up to 25 per search). Busy places can time out; a year that times out is shown as not searched, never as no documents found.

## Request parameters

Keys of `params`. A value "from lookup" is a code you get by searching for the item by name first (https://legiscore.in/docs/api/lookups).



| Name | Type | Required | Example | Comes from |
| --- | --- | --- | --- | --- |
| `district_name` | string | conditional | from lookup "district" | mh_igr_district lookup (https://legiscore.in/docs/api/lookups#maharashtra-mh_igr_district) |
| `tahsil_name` | string | conditional | from lookup "tahsil" | mh_igr_tahsil lookup (https://legiscore.in/docs/api/lookups#maharashtra-mh_igr_tahsil) |
| `village_name` | string | conditional | from lookup "village" | mh_igr_village lookup (https://legiscore.in/docs/api/lookups#maharashtra-mh_igr_village) |
| `property_no` | string | required | 498/2 | field "property_no" |
| `year_from` | number | required | 2024 | field "year_from" |
| `match_text` | string | optional | E-5, 304, Bramha | field "match_text" |

## Field details

| Field | Type | Notes |
| --- | --- | --- |
| `tab` (Area) | select | Optional. Blank searches the Rest of Maharashtra. Values: rest (Rest of Maharashtra (village, by tahsil)), mumbai (Mumbai City or Mumbai Suburban), urban (City areas outside Mumbai (wards and peths)). |
| `district` (District) | lookup | Only when tab is "" or "rest". |
| `tahsil` (Tahsil) | lookup | Only when tab is "" or "rest". |
| `village` (Village) | lookup | Named in Marathi, as the registrar’s portal lists it. Only when tab is "" or "rest". |
| `mumbai_district` (District) | select | Values: Mumbai City (Mumbai City), Mumbai Suburban (Mumbai Suburban). Only when tab is "mumbai". |
| `urban_district` (District) | select | Values: Ahmednagar (Ahmednagar), Akola (Akola), Amravati (Amravati), Aurangabad (Aurangabad), Beed (Beed), Bhandara (Bhandara), Buldhana (Buldhana), Chandrapur (Chandrapur), Dhule (Dhule), Gadchiroli (Gadchiroli), Gondia (Gondia), Hingoli (Hingoli), Jalgaon (Jalgaon), Jalna (Jalna), Kolhapur (Kolhapur), Latur (Latur), Nagpur (Nagpur), Nanded (Nanded), Nandurbar (Nandurbar), Nashik (Nashik), Osmanabad (Osmanabad), Palghar (Palghar), Parbhani (Parbhani), Pune (Pune), Raigad (Raigad), Ratnagiri (Ratnagiri), Sangli (Sangli), Satara (Satara), Sindhudurg (Sindhudurg), Solapur (Solapur), Thane (Thane), Wardha (Wardha), Washim (Washim), Yavatmal (Yavatmal). Only when tab is "urban". |
| `area_name` (Village / Area) | text | In English, as the registrar’s portal writes it (Fort, Chembur, Kasaba Peth). A name it does not list is refused with the names it does list. Only when tab is "mumbai" or "urban". Max 80 characters. |
| `property_no` (Survey / Gat / CTS Number) | text | Max 40 characters. |
| `year_from` (From Year) | year |  |
| `year_to` (To Year) | year | Optional. Any range from 1985. 20 credits per year. Long ranges take longer; for a busy survey number, search one year at a time for the most complete result. Busy places, such as large Mumbai villages, can time out at the government site. A year that times out is shown as not searched, never as no documents found. Search fewer years at a time there. |
| `match_text` (Building / flat match (optional)) | text | Type the building, flat or society, e.g. E-5, 304, Bramha. Matching documents come first and get their Index-II copy. Max 120 characters. |

## Resolve names to codes

| Field | Lookup | Needs first |
| --- | --- | --- |
| district | mh_igr_district | - |
| tahsil | mh_igr_tahsil | district |
| village | mh_igr_village | district, tahsil |

q is required (2+ characters), at most 10 matches.

## Example request

Replace each <...> with the value from its lookup match.

**curl**

```bash
curl -X POST "https://legiscore.in/api/v1/search" \
  -H "Authorization: Bearer lsk_your_api_key" \
  -H "Idempotency-Key: los-case-8841" \
  -H "Content-Type: application/json" \
  -d '{
  "state": "maharashtra",
  "search_type": "index2_property",
  "params": {
    "district_name": "<district.value>",
    "tahsil_name": "<tahsil.value>",
    "village_name": "<village.value>",
    "property_no": "498/2",
    "year_from": 2024,
    "match_text": "E-5, 304, Bramha"
  },
  "label": "Index-II by Property (survey / gat / CTS) - case 8841"
}'
```

**Python**

```python
import requests

resp = requests.post(
    "https://legiscore.in/api/v1/search",
    headers={"Authorization": "Bearer lsk_your_api_key", "Idempotency-Key": "los-case-8841"},
    json={
      "state": "maharashtra",
      "search_type": "index2_property",
      "params": {
        "district_name": "<district.value>",
        "tahsil_name": "<tahsil.value>",
        "village_name": "<village.value>",
        "property_no": "498/2",
        "year_from": 2024,
        "match_text": "E-5, 304, Bramha"
      },
      "label": "Index-II by Property (survey / gat / CTS) - case 8841"
    },
)
resp.raise_for_status()
print(resp.json())
```

**Node**

```js
const resp = await fetch("https://legiscore.in/api/v1/search", {
  method: "POST",
  headers: { Authorization: "Bearer lsk_your_api_key", "Idempotency-Key": "los-case-8841", "Content-Type": "application/json" },
  body: JSON.stringify({
    "state": "maharashtra",
    "search_type": "index2_property",
    "params": {
      "district_name": "<district.value>",
      "tahsil_name": "<tahsil.value>",
      "village_name": "<village.value>",
      "property_no": "498/2",
      "year_from": 2024,
      "match_text": "E-5, 304, Bramha"
    },
    "label": "Index-II by Property (survey / gat / CTS) - case 8841"
  }),
});
if (!resp.ok) throw new Error(await resp.text());
console.log(await resp.json());
```

## Sample responses

202 Accepted, at submit:

```json
{
  "data": {
    "searches": [
      {
        "id": "SRCH-2026-A1B2C3D4",
        "state": "maharashtra",
        "search_type": "index2_property",
        "label": "Index-II by Property (survey / gat / CTS) - case 8841",
        "status": "queued",
        "progress": 0,
        "note": null,
        "found": null,
        "records": null,
        "record_count": null,
        "documents": [],
        "error": null,
        "refunded": false,
        "replayed": false,
        "batch_id": null,
        "recovery_of": null,
        "source": "api",
        "created_at": "2026-10-05T10:00:00Z",
        "completed_at": null
      }
    ],
    "rejected": [],
    "replayed": {
      "free": 0,
      "billed": 0,
      "idempotent": 0
    },
    "batch_id": null
  }
}
```

200 OK, GET /api/v1/search/{id} once finished:

```json
{
  "data": {
    "id": "SRCH-2026-A1B2C3D4",
    "state": "maharashtra",
    "search_type": "index2_property",
    "label": "Index-II by Property (survey / gat / CTS) - case 8841",
    "status": "succeeded",
    "progress": 100,
    "note": null,
    "found": true,
    "records": [
      {
        "...": "one object per row the source returned; shape varies by search"
      }
    ],
    "record_count": 1,
    "documents": [
      {
        "filename": "result.pdf",
        "content_type": "application/pdf",
        "bytes": 184233,
        "withheld": false
      }
    ],
    "error": null,
    "refunded": false,
    "replayed": false,
    "batch_id": null,
    "recovery_of": null,
    "source": "api",
    "created_at": "2026-10-05T10:00:00Z",
    "completed_at": "2026-10-05T10:03:12Z"
  }
}
```
