Karnataka search
Rural Property Record (e-Swathu) LIVE
Gram Panchayat property records (Form 9 / e-Khata) for rural Karnataka, by owner name, asset number or property ID.
What you get
Every matching property with its owner, address and e-Khata status, plus the free Form 9 / draft e-Khata prints the portal issues.
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 |
|---|---|---|---|---|
search_type | string | Required | owner_name | field "search_type" |
search_value | string | Required | <search_value> | field "search_value" |
district | string | Conditional | from lookup “district” | eswathu_district lookup, option meta “value” |
taluk | string | Conditional | from lookup “taluk” | eswathu_taluk lookup, option meta “value” |
gram_panchayat | string | Conditional | from lookup “gram_panchayat” | eswathu_gram_panchayat lookup, option meta “value” |
village | string | Conditional | from lookup “village” | eswathu_village lookup, option meta “value” |
Field details
| Field | Type | Notes |
|---|---|---|
search_typeSearch By | select | Values: owner_name (Owner name), asset_number (Asset number), property_id (Property ID (no village needed)). |
districtDistrict | lookup | Only when search_type is "owner_name" or "asset_number". |
talukTaluk | lookup | Only when search_type is "owner_name" or "asset_number". |
gram_panchayatGram Panchayat | lookup | Only when search_type is "owner_name" or "asset_number". |
villageVillage | lookup | Only when search_type is "owner_name" or "asset_number". |
search_valueSearch For | text | Owner names match any part of the name, as recorded. Most rural owners are recorded in Kannada, so try the Kannada spelling if English finds nothing. Max 30 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 | eswathu_district | - | GET /api/v1/search/lookups?state=karnataka&dim=eswathu_district&q=<name> |
taluk | eswathu_taluk | district | GET /api/v1/search/lookups?state=karnataka&dim=eswathu_taluk&q=<name>&district=<code> |
gram_panchayat | eswathu_gram_panchayat | district, taluk | GET /api/v1/search/lookups?state=karnataka&dim=eswathu_gram_panchayat&q=<name>&district=<code>&taluk=<code> |
village | eswathu_village | district, taluk, gram_panchayat | GET /api/v1/search/lookups?state=karnataka&dim=eswathu_village&q=<name>&district=<code>&taluk=<code>&gram_panchayat=<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": "eswathu",
"params": {
"search_type": "owner_name",
"search_value": "<search_value>",
"district": "<district.value>",
"taluk": "<taluk.value>",
"gram_panchayat": "<gram_panchayat.value>",
"village": "<village.value>"
},
"label": "Rural Property Record (e-Swathu) - 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": "eswathu",
"params": {
"search_type": "owner_name",
"search_value": "<search_value>",
"district": "<district.value>",
"taluk": "<taluk.value>",
"gram_panchayat": "<gram_panchayat.value>",
"village": "<village.value>"
},
"label": "Rural Property Record (e-Swathu) - 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": "eswathu",
"params": {
"search_type": "owner_name",
"search_value": "<search_value>",
"district": "<district.value>",
"taluk": "<taluk.value>",
"gram_panchayat": "<gram_panchayat.value>",
"village": "<village.value>"
},
"label": "Rural Property Record (e-Swathu) - 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": "eswathu",
"label": "Rural Property Record (e-Swathu) - 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": "eswathu",
"label": "Rural Property Record (e-Swathu) - 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}.