LLegiScoreSearch API
Get an API key
Get started
IntroductionAuthenticationQuickstartSearch lifecycleErrorsWebhooksCreditsGet an API key
API reference
Credit balancegetCataloggetLookupsgetSearchespost
States
All states
All Andhra Pradesh searchesEncumbrance CertificateProhibitory Orders (22A)Record of Rights (1-B / Adangal)Property TaxRERA Projects (AP RERA)RERA Project Record + Documents (AP RERA)
View as Markdownllms-full.txt
States / Andhra Pradesh / Record of Rights (1-B / Adangal)

Andhra Pradesh search

Record of Rights (1-B / Adangal) LIVE

Who the revenue department records as the pattadar of a piece of land, and how that land is classified.

Typical time
up to 5 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

The pattadar rows for the khata or parcel, plus the Mee Bhoomi report as a PDF.

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
district_idstringRequiredfrom lookup “district”ror_district lookup, option meta “district_id”
district_namestringRequiredfrom lookup “district”ror_district lookup, option meta “label”
mandal_idstringRequiredfrom lookup “mandal”ror_mandal lookup, option meta “mandal_id”
mandal_namestringRequiredfrom lookup “mandal”ror_mandal lookup, option meta “label”
village_codestringRequiredfrom lookup “village”ror_village lookup, option meta “village_code”
village_namestringRequiredfrom lookup “village”ror_village lookup, option meta “label”
search_numberstringRequired102field "search_number"
record_typestringRequiredror_1bfield "record_type"

Field details

FieldTypeNotes
district
District
lookup
mandal
Mandal
lookup
village
Village
lookup
record_type
Record
selectChooses the register, and with it what the number below means. Values: ror_1b (ROR 1-B — ownership by khata number), adangal (Adangal — one parcel by L.P number).
search_number
Khata / L.P Number
textMust be a number the village actually holds — the portal offers no others.

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
districtror_district-GET /api/v1/search/lookups?state=andhra&dim=ror_district&q=<name>
mandalror_mandaldistrictGET /api/v1/search/lookups?state=andhra&dim=ror_mandal&q=<name>&district=<code>
villageror_villagedistrict, mandalGET /api/v1/search/lookups?state=andhra&dim=ror_village&q=<name>&district=<code>&mandal=<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": "andhra",
  "search_type": "ror",
  "params": {
    "district_id": "<district.district_id>",
    "district_name": "<district.label>",
    "mandal_id": "<mandal.mandal_id>",
    "mandal_name": "<mandal.label>",
    "village_code": "<village.village_code>",
    "village_name": "<village.label>",
    "search_number": "102",
    "record_type": "ror_1b"
  },
  "label": "Record of Rights (1-B / Adangal) - 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": "andhra",
      "search_type": "ror",
      "params": {
        "district_id": "<district.district_id>",
        "district_name": "<district.label>",
        "mandal_id": "<mandal.mandal_id>",
        "mandal_name": "<mandal.label>",
        "village_code": "<village.village_code>",
        "village_name": "<village.label>",
        "search_number": "102",
        "record_type": "ror_1b"
      },
      "label": "Record of Rights (1-B / Adangal) - 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": "andhra",
    "search_type": "ror",
    "params": {
      "district_id": "<district.district_id>",
      "district_name": "<district.label>",
      "mandal_id": "<mandal.mandal_id>",
      "mandal_name": "<mandal.label>",
      "village_code": "<village.village_code>",
      "village_name": "<village.label>",
      "search_number": "102",
      "record_type": "ror_1b"
    },
    "label": "Record of Rights (1-B / Adangal) - 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": "andhra",
        "search_type": "ror",
        "label": "Record of Rights (1-B / Adangal) - 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": "andhra",
    "search_type": "ror",
    "label": "Record of Rights (1-B / Adangal) - 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}.

PreviousProhibitory Orders (22A)NextProperty Tax