Karnataka search
Land Details report (Bhoomi Land Stack) LIVE
One land report for a survey number: owners, the RTC, every mutation with its Form 12, the Akarband, revenue court cases and ongoing land conversion applications.
What you get
A consolidated report PDF (and the same report as a web page) per survey, plus the Akarband PDF where Bhoomi holds one. Conversions list ongoing applications only, not final orders.
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 |
|---|---|---|---|---|
district | string | Required | from lookup “district” | bhoomi_district lookup, option meta “value” |
taluk | string | Required | from lookup “taluk” | bhoomi_taluk lookup, option meta “value” |
hobli | string | Required | from lookup “hobli” | bhoomi_hobli lookup, option meta “value” |
village | string | Required | from lookup “village” | bhoomi_village lookup, option meta “value” |
survey_no | string | Required | 201 | field "survey_no" |
hissa | string | Optional | 1 | field "hissa" |
surnoc | string | Optional | * | field "surnoc" |
Field details
| Field | Type | Notes |
|---|---|---|
districtDistrict | lookup | |
talukTaluk | lookup | |
hobliHobli | lookup | Split hoblis are listed separately, e.g. Kengeri - 1 to Kengeri - 4. |
villageVillage | lookup | |
survey_noSurvey Number | text | The survey number, or survey/hissa such as 201/1. |
hissaHissa | text | Optional but faster. Blank reports every hissa of the survey, up to 10. Max 10 characters. |
surnocSurnoc | text | Optional. Leave blank unless the RTC prints one. Max 10 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 | bhoomi_district | - | GET /api/v1/search/lookups?state=karnataka&dim=bhoomi_district&q=<name> |
taluk | bhoomi_taluk | district | GET /api/v1/search/lookups?state=karnataka&dim=bhoomi_taluk&q=<name>&district=<code> |
hobli | bhoomi_hobli | district, taluk | GET /api/v1/search/lookups?state=karnataka&dim=bhoomi_hobli&q=<name>&district=<code>&taluk=<code> |
village | bhoomi_village | district, taluk, hobli | GET /api/v1/search/lookups?state=karnataka&dim=bhoomi_village&q=<name>&district=<code>&taluk=<code>&hobli=<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": "karnataka",
"search_type": "rdgis_parcel",
"params": {
"district": "<district.value>",
"taluk": "<taluk.value>",
"hobli": "<hobli.value>",
"village": "<village.value>",
"survey_no": "201",
"hissa": "1",
"surnoc": "*"
},
"label": "Land Details report (Bhoomi Land Stack) - 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": "karnataka",
"search_type": "rdgis_parcel",
"params": {
"district": "<district.value>",
"taluk": "<taluk.value>",
"hobli": "<hobli.value>",
"village": "<village.value>",
"survey_no": "201",
"hissa": "1",
"surnoc": "*"
},
"label": "Land Details report (Bhoomi Land Stack) - 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": "karnataka",
"search_type": "rdgis_parcel",
"params": {
"district": "<district.value>",
"taluk": "<taluk.value>",
"hobli": "<hobli.value>",
"village": "<village.value>",
"survey_no": "201",
"hissa": "1",
"surnoc": "*"
},
"label": "Land Details report (Bhoomi Land Stack) - 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": "karnataka",
"search_type": "rdgis_parcel",
"label": "Land Details report (Bhoomi Land Stack) - 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": "karnataka",
"search_type": "rdgis_parcel",
"label": "Land Details report (Bhoomi Land Stack) - 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}.