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 / Plot (Dag) Information (Banglarbhumi)

West Bengal search

Plot (Dag) Information (Banglarbhumi) LIVE

Every khatian that holds a share of one LR plot in a mouza, read from Banglarbhumi under our citizen account: who holds it today, in what share and class.

Typical time
up to 10 min
Source status
No recent runs
search_type
plot
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 holding khatian with its raiyat, father’s or husband’s name, holding type, share, share area, land class and possessor, plus the portal’s page as a PDF. A plot 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"
plot_nostringRequired142field "plot_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.
plot_no
Plot (Dag) No (LR)
textToday’s LR plot number, a bata as 142/1. An old deed’s RS plot: run the RS ↔ LR plot map first. 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": "plot",
  "params": {
    "district": "Jalpaiguri",
    "block": "Rajganj",
    "mouza": "Dabgram Sheet No - 7",
    "plot_no": "142",
    "khatian_type": "normal"
  },
  "label": "Plot (Dag) Information (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": "plot",
      "params": {
        "district": "Jalpaiguri",
        "block": "Rajganj",
        "mouza": "Dabgram Sheet No - 7",
        "plot_no": "142",
        "khatian_type": "normal"
      },
      "label": "Plot (Dag) Information (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": "plot",
    "params": {
      "district": "Jalpaiguri",
      "block": "Rajganj",
      "mouza": "Dabgram Sheet No - 7",
      "plot_no": "142",
      "khatian_type": "normal"
    },
    "label": "Plot (Dag) Information (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": "plot",
        "label": "Plot (Dag) Information (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": "plot",
    "label": "Plot (Dag) Information (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}.

PreviousRecord of Rights (Khatian, Banglarbhumi)NextRS ↔ LR Plot Map (Banglarbhumi)