Maharashtra search
Mutation Notices (Aapli Chawdi) LIVE
The mutations (ferfar) now open for objection or still pending in a village, from the notice board of the revenue office.
The notice board shows no open or pending mutation here. A decided mutation leaves the board, so this does not mean the land never had a mutation. Check the 7/12 for past mutations.
What you get
One row per mutation with its number, type, date, survey numbers and the last date for objections, a summary PDF, and a zip of the Form 9 notices (up to 25).
Request parameters
These are the keys of params in the request body. A value shown as from lookup is a code you get by searching for the item by name first, not text you type.
| Name | Type | Required | Example | Comes from |
|---|---|---|---|---|
board | string | Optional | satbara | fixed by the search |
district_code | string | Required | from lookup “district” | mh_bhulekh_district lookup, option meta “district_code” |
taluka_code | string | Required | from lookup “taluka” | mh_bhulekh_taluka lookup, option meta “taluka_code” |
village_code | string | Required | from lookup “village” | mh_bhulekh_village lookup, option meta “village_code” |
survey_no | string | Optional | 77 | field "survey_no" |
Field details
| Field | Type | Notes |
|---|---|---|
districtDistrict | lookup | |
talukaTaluka | lookup | |
villageVillage | lookup | |
survey_noSurvey / Gat Number | text | Optional. Blank lists the whole village. 77 also finds 77/2, never 770. Max 40 characters. |
Resolve names to codes
Search for each item by name, take the code from the match and pass it in params. A lookup needs a query of at least 2 characters and returns at most 10 matches (details).
| Field | Lookup | Needs first | Example call |
|---|---|---|---|
district | mh_bhulekh_district | - | GET /api/v1/search/lookups?state=maharashtra&dim=mh_bhulekh_district&q=<name> |
taluka | mh_bhulekh_taluka | district | GET /api/v1/search/lookups?state=maharashtra&dim=mh_bhulekh_taluka&q=<name>&district=<code> |
village | mh_bhulekh_village | district, taluka | GET /api/v1/search/lookups?state=maharashtra&dim=mh_bhulekh_village&q=<name>&district=<code>&taluka=<code> |
Example request
Replace each <...> with the value from its lookup match, and the sample values with your own.
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": "mutation_notices",
"params": {
"board": "satbara",
"district_code": "<district.district_code>",
"taluka_code": "<taluka.taluka_code>",
"village_code": "<village.village_code>",
"survey_no": "77"
},
"label": "Mutation Notices (Aapli Chawdi) - case 8841"
}'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": "mutation_notices",
"params": {
"board": "satbara",
"district_code": "<district.district_code>",
"taluka_code": "<taluka.taluka_code>",
"village_code": "<village.village_code>",
"survey_no": "77"
},
"label": "Mutation Notices (Aapli Chawdi) - case 8841"
},
)
resp.raise_for_status()
print(resp.json())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": "mutation_notices",
"params": {
"board": "satbara",
"district_code": "<district.district_code>",
"taluka_code": "<taluka.taluka_code>",
"village_code": "<village.village_code>",
"survey_no": "77"
},
"label": "Mutation Notices (Aapli Chawdi) - case 8841"
}),
});
if (!resp.ok) throw new Error(await resp.text());
console.log(await resp.json());Sample responses
202 Accepted, at submit
{
"data": {
"searches": [
{
"id": "SRCH-2026-A1B2C3D4",
"state": "maharashtra",
"search_type": "mutation_notices",
"label": "Mutation Notices (Aapli Chawdi) - 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
{
"data": {
"id": "SRCH-2026-A1B2C3D4",
"state": "maharashtra",
"search_type": "mutation_notices",
"label": "Mutation Notices (Aapli Chawdi) - 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"
}
}records holds one object per row the source returned. Its shape is specific to this search. Documents are fetched with GET /api/v1/search/{id}/documents/{filename}.