LLegiScoreSearch API
Get an API key
Get started
IntroductionAuthenticationQuickstartSearch lifecycleErrorsWebhooksCreditsGet an API key
API reference
Credit balancegetCataloggetLookupsgetSearchespost
States
All states
View as Markdownllms-full.txt

API reference

Catalog

Everything that can be searched, the fields each search needs, and whether it is live right now. No API key needed.

GET/api/v1/search/catalog
ParameterDescription
stateOptional. Return one state only, for example karnataka.
curl "https://legiscore.in/api/v1/search/catalog?state=andhra"
import requests

resp = requests.get(
    "https://legiscore.in/api/v1/search/catalog?state=andhra",
    headers={},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://legiscore.in/api/v1/search/catalog?state=andhra", {
  method: "GET",
  headers: {  },
});
if (!resp.ok) throw new Error(await resp.text());
console.log(await resp.json());
200 response (shortened)
{
  "data": {
    "live_states": [
      "andhra",
      "telangana",
      "maharashtra",
      "..."
    ],
    "source": {
      "status": "operational",
      "checked_at": "2026-10-05T10:00:00Z"
    },
    "searches": [
      {
        "state": "andhra",
        "search_type": "ec",
        "status": "operational",
        "coming_soon": false,
        "unavailable_reason": null,
        "label": "Encumbrance Certificate",
        "blurb": "Every registered transaction recorded against a property at the sub-registrar office.",
        "yields": "Transaction rows plus the official EC certificate PDF.",
        "typical_seconds": 300,
        "fields": [
          {
            "name": "sro",
            "label": "Sub-Registrar Office",
            "type": "lookup",
            "required": true,
            "help": "The office where the property is registered.",
            "lookup": {
              "dim": "sro"
            }
          },
          "..."
        ],
        "one_of": [
          {
            "fields": [
              "doc_no",
              "year"
            ],
            "message": "Give both the document number and its year of registration.",
            "pairRequired": true
          }
        ]
      },
      "..."
    ]
  }
}

Status values

statusMeaning
operationalRecent runs against this source are succeeding.
degradedSome recent runs failed. Failed searches are refunded.
downMost recent runs failed. Failed searches are refunded.
unknownNo runs in the last 7 days, so there is nothing to judge from.
unavailableHeld on purpose (coming_soon: true) or the service is unreachable. A held search is refused at submit with 422 before any charge, and unavailable_reason says why.

The catalog is the source of truth for holds. The state pages in these docs are generated from the same data.

PreviousCredit balanceNextLookups