Source: https://legiscore.in/docs/states/odisha/ror

# Record of Rights (Odisha Bhulekh Khatiyan) (Odisha)

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

Status: LIVE. Source status: No recent runs. Typical time: up to 4 min. state: `odisha`, 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

Keys of `params`. A value "from lookup" is a code you get by searching for the item by name first (https://legiscore.in/docs/api/lookups).

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

| Name | Type | Required | Example | Comes from |
| --- | --- | --- | --- | --- |
| `district_code` | string | required | from lookup "district" | odisha_district lookup (https://legiscore.in/docs/api/lookups#odisha-odisha_district) |
| `tehsil_code` | string | required | from lookup "tehsil" | odisha_tehsil lookup (https://legiscore.in/docs/api/lookups#odisha-odisha_tehsil) |
| `ri_code` | string | required | from lookup "ri" | odisha_ri lookup (https://legiscore.in/docs/api/lookups#odisha-odisha_ri) |
| `village_code` | string | required | from lookup "village" | odisha_village lookup (https://legiscore.in/docs/api/lookups#odisha-odisha_village) |
| `khatiyan_no` | string | one of | 112/336 | field "khatiyan_no" |
| `plot_no` | string | one of | 500 | field "plot_no" |
| `tenant_name` | string | one of | <tenant_name> | field "tenant_name" |

## Field details

| Field | Type | Notes |
| --- | --- | --- |
| `district` (District) | lookup |  |
| `tehsil` (Tehsil) | lookup |  |
| `ri` (RI Circle) | lookup |  |
| `village` (Village (Mouza)) | lookup | Only the districts BhuNaksha has mapped so far: Kalahandi, Sundargarh, Nuapada. |
| `khatiyan_no` (Khatiyan Number) | text | Max 30 characters. |
| `plot_no` (Plot Number) | text | Max 30 characters. |
| `tenant_name` (Holder Name) | text | Part of the name as Bhulekh writes it, in Odia. Max 80 characters. |

## Resolve names to codes

| Field | Lookup | Needs first |
| --- | --- | --- |
| district | odisha_district | - |
| tehsil | odisha_tehsil | district |
| ri | odisha_ri | district, tehsil |
| village | odisha_village | district, tehsil, ri |

q is required (2+ characters), at most 10 matches.

## Example request

Replace each <...> with the value from its lookup match.

**curl**

```bash
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"
}'
```

**Python**

```python
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())
```

**Node**

```js
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"
  }
}
```
