LLegiScoreSearch API
Get an API key
Get started
IntroductionAuthenticationQuickstartSearch lifecycleErrorsWebhooksCreditsGet an API key
API reference
Credit balancegetCataloggetLookupsgetSearchespost
States
All states
All Odisha searchesPlot Map and Plot Details (Odisha BhuNaksha)Record of Rights (Odisha Bhulekh Khatiyan)
View as Markdownllms-full.txt
States / Odisha / Record of Rights (Odisha Bhulekh Khatiyan)

Odisha search

Record of Rights (Odisha Bhulekh Khatiyan) LIVE

The khatiyan for a village by khatiyan number, plot number or holder name, from Bhulekh.

Typical time
up to 4 min
Source status
No recent runs
search_type
ror

What you get

Holders with father’s name, caste and residence, status, rent and dues, and every plot in the khatiyan with its kisam and area, plus a printed copy of each khatiyan. A plot on several khatiyans returns each of them (up to 10).

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.

Exactly one of

khatiyan_no, plot_no, tenant_name: Give one of: khatiyan number, plot number or holder name.

NameTypeRequiredExampleComes from
district_codestringRequiredfrom lookup “district”odisha_district lookup, option meta “value”
tehsil_codestringRequiredfrom lookup “tehsil”odisha_tehsil lookup, option meta “value”
ri_codestringRequiredfrom lookup “ri”odisha_ri lookup, option meta “value”
village_codestringRequiredfrom lookup “village”odisha_village lookup, option meta “value”
khatiyan_nostringOne of112/336field "khatiyan_no"
plot_nostringOne of500field "plot_no"
tenant_namestringOne of<tenant_name>field "tenant_name"

Field details

FieldTypeNotes
district
District
lookup
tehsil
Tehsil
lookup
ri
RI Circle
lookup
village
Village (Mouza)
lookupOnly the districts BhuNaksha has mapped so far: Kalahandi, Sundargarh, Nuapada.
khatiyan_no
Khatiyan Number
textMax 30 characters.
plot_no
Plot Number
textMax 30 characters.
tenant_name
Holder Name
textPart of the name as Bhulekh writes it, in Odia. Max 80 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).

FieldLookupNeeds firstExample call
districtodisha_district-GET /api/v1/search/lookups?state=odisha&dim=odisha_district&q=<name>
tehsilodisha_tehsildistrictGET /api/v1/search/lookups?state=odisha&dim=odisha_tehsil&q=<name>&district=<code>
riodisha_ridistrict, tehsilGET /api/v1/search/lookups?state=odisha&dim=odisha_ri&q=<name>&district=<code>&tehsil=<code>
villageodisha_villagedistrict, tehsil, riGET /api/v1/search/lookups?state=odisha&dim=odisha_village&q=<name>&district=<code>&tehsil=<code>&ri=<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": "odisha",
  "search_type": "ror",
  "params": {
    "district_code": "<district.value>",
    "tehsil_code": "<tehsil.value>",
    "ri_code": "<ri.value>",
    "village_code": "<village.value>",
    "khatiyan_no": "112/336",
    "plot_no": "500",
    "tenant_name": "<tenant_name>"
  },
  "label": "Record of Rights (Odisha Bhulekh Khatiyan) - 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": "odisha",
      "search_type": "ror",
      "params": {
        "district_code": "<district.value>",
        "tehsil_code": "<tehsil.value>",
        "ri_code": "<ri.value>",
        "village_code": "<village.value>",
        "khatiyan_no": "112/336",
        "plot_no": "500",
        "tenant_name": "<tenant_name>"
      },
      "label": "Record of Rights (Odisha Bhulekh Khatiyan) - 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": "odisha",
    "search_type": "ror",
    "params": {
      "district_code": "<district.value>",
      "tehsil_code": "<tehsil.value>",
      "ri_code": "<ri.value>",
      "village_code": "<village.value>",
      "khatiyan_no": "112/336",
      "plot_no": "500",
      "tenant_name": "<tenant_name>"
    },
    "label": "Record of Rights (Odisha Bhulekh Khatiyan) - 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": "odisha",
        "search_type": "ror",
        "label": "Record of Rights (Odisha Bhulekh Khatiyan) - 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": "odisha",
    "search_type": "ror",
    "label": "Record of Rights (Odisha Bhulekh Khatiyan) - 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}.

PreviousPlot Map and Plot Details (Odisha BhuNaksha)