LLegiScoreSearch API
Get an API key
Get started
IntroductionAuthenticationQuickstartSearch lifecycleErrorsWebhooksCreditsGet an API key
API reference
Credit balancegetCataloggetLookupsgetSearchespost
States
All states
All West Bengal searchesRegistered Deeds by Party Name (WB Registration)Deed Details by Deed or Query Number (WB Registration)District Court Cases by Party Name (eCourts)Kolkata Property Tax (KMC)Record of Rights (Khatian, Banglarbhumi)Plot (Dag) Information (Banglarbhumi)RS ↔ LR Plot Map (Banglarbhumi)Mutation (Namjari) Status (Banglarbhumi)Market Value of a Flat (WB Registration)
View as Markdownllms-full.txt
States / West Bengal / Record of Rights (Khatian, Banglarbhumi)

West Bengal search

Record of Rights (Khatian, Banglarbhumi) LIVE

The Banglarbhumi record of rights for one khatian in a mouza: who holds the land and on which plots, read from the Land & Land Reforms department under our citizen account.

Typical time
up to 10 min
Source status
No recent runs
search_type
ror
Uses an OTP

The source verifies with a one-time code. LegiScore handles it for you, so the search may show awaiting_otp briefly. You do not need to send anything. AI Recovery does not run on this search.

What you get

Each raiyat with father’s or husband’s name, holding type and address, the khatian’s total area, plots and record date, plus the portal’s page as a PDF. A khatian the mouza does not hold comes back as not found.

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.

NameTypeRequiredExampleComes from
districtstringRequiredJalpaigurifield "district"
blockstringRequiredRajganjfield "block"
mouzastringRequiredDabgram Sheet No - 7field "mouza"
khatian_nostringRequired176field "khatian_no"
khatian_typestringOptionalnormalfield "khatian_type"

Field details

FieldTypeNotes
district
District
textAs Banglarbhumi spells it. Max 60 characters.
block
Block
textThe CD block the mouza is in. Max 60 characters.
mouza
Mouza
textExact name or the portal’s mouza code; a near miss is refused with the closest names. Max 80 characters.
khatian_no
Khatian No (LR)
textDigits, with a sub-number as 176/1. Max 8 characters.
khatian_type
Khatian Type
selectValues: normal (Normal), lease (Lease), fhtd (FHTD).

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": "west_bengal",
  "search_type": "ror",
  "params": {
    "district": "Jalpaiguri",
    "block": "Rajganj",
    "mouza": "Dabgram Sheet No - 7",
    "khatian_no": "176",
    "khatian_type": "normal"
  },
  "label": "Record of Rights (Khatian, Banglarbhumi) - 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": "west_bengal",
      "search_type": "ror",
      "params": {
        "district": "Jalpaiguri",
        "block": "Rajganj",
        "mouza": "Dabgram Sheet No - 7",
        "khatian_no": "176",
        "khatian_type": "normal"
      },
      "label": "Record of Rights (Khatian, Banglarbhumi) - 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": "west_bengal",
    "search_type": "ror",
    "params": {
      "district": "Jalpaiguri",
      "block": "Rajganj",
      "mouza": "Dabgram Sheet No - 7",
      "khatian_no": "176",
      "khatian_type": "normal"
    },
    "label": "Record of Rights (Khatian, Banglarbhumi) - 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": "west_bengal",
        "search_type": "ror",
        "label": "Record of Rights (Khatian, Banglarbhumi) - 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": "west_bengal",
    "search_type": "ror",
    "label": "Record of Rights (Khatian, Banglarbhumi) - 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}.

PreviousKolkata Property Tax (KMC)NextPlot (Dag) Information (Banglarbhumi)