Delhi search
Khasra Khatauni (DLR Act) LIVE
The Delhi land record under the DLR Act: who holds a khata, in what shares, and which khasras it covers.
What you get
Every owner with their share, each khasra with its rect number and area, the mutation remarks, and DLRC’s own record page.
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_code | string | Required | from lookup “district” | dlr_district lookup, option meta “district_code” |
subdivision_code | string | Required | from lookup “subdivision” | dlr_subdivision lookup, option meta “subdivision_code” |
subdivision_name | string | Required | from lookup “subdivision” | dlr_subdivision lookup, option meta “subdivision_name” |
village_code | string | Required | from lookup “village” | dlr_village lookup, option meta “village_code” |
khata_type | string | Optional | 1 | field "khata_type" |
search_by | string | Required | khata | field "search_by" |
khata_no | string | Conditional | 1 | field "khata_no" |
Field details
| Field | Type | Notes |
|---|---|---|
districtDistrict | lookup | |
subdivisionSub-division (Tehsil) | lookup | |
villageVillage | lookup | |
khata_typeLand held by | select | Leave as Bhumidars unless the record is Gaon Sabha or Asami land. Values: 1 (Land held by Bhumidars), 2 (Land held by Gaon Sabha), 3 (Land held by Asami from Gaon Sabha), 4 (Land held by Asami otherwise). |
search_bySearch By | select | Values: khata (Khata number), khasra (Khasra number). |
khata_noKhata Number | text | Only when search_by is "khata". Max 20 characters. |
rect_noRect (Mustatil) Number | text | Use 0 where the village has no rectangles. Only when search_by is "khasra". Max 5 characters. |
khasra_noKhasra Number | text | Only when search_by is "khasra". Max 20 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 | dlr_district | - | GET /api/v1/search/lookups?state=delhi&dim=dlr_district&q=<name> |
subdivision | dlr_subdivision | district | GET /api/v1/search/lookups?state=delhi&dim=dlr_subdivision&q=<name>&district=<code> |
village | dlr_village | district, subdivision | GET /api/v1/search/lookups?state=delhi&dim=dlr_village&q=<name>&district=<code>&subdivision=<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": "delhi",
"search_type": "khasra_khatauni",
"params": {
"district_code": "<district.district_code>",
"subdivision_code": "<subdivision.subdivision_code>",
"subdivision_name": "<subdivision.subdivision_name>",
"village_code": "<village.village_code>",
"khata_type": "1",
"search_by": "khata",
"khata_no": "1"
},
"label": "Khasra Khatauni (DLR Act) - 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": "delhi",
"search_type": "khasra_khatauni",
"params": {
"district_code": "<district.district_code>",
"subdivision_code": "<subdivision.subdivision_code>",
"subdivision_name": "<subdivision.subdivision_name>",
"village_code": "<village.village_code>",
"khata_type": "1",
"search_by": "khata",
"khata_no": "1"
},
"label": "Khasra Khatauni (DLR Act) - 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": "delhi",
"search_type": "khasra_khatauni",
"params": {
"district_code": "<district.district_code>",
"subdivision_code": "<subdivision.subdivision_code>",
"subdivision_name": "<subdivision.subdivision_name>",
"village_code": "<village.village_code>",
"khata_type": "1",
"search_by": "khata",
"khata_no": "1"
},
"label": "Khasra Khatauni (DLR Act) - 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": "delhi",
"search_type": "khasra_khatauni",
"label": "Khasra Khatauni (DLR Act) - 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": "delhi",
"search_type": "khasra_khatauni",
"label": "Khasra Khatauni (DLR Act) - 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}.