---
type: "firecrawl-provider"
description: "India eCourts Services portal for district and taluka courts (services.ecourts.gov.in, ecourtindia_v6): the state -> district -> court complex -> court establishment reference cascade the portal's search forms are built on, and the public case status record of a case identified by its 16-character CNR (Case Number Record): case type, filing and registration numbers and dates, status, court and judge, petitioners and respondents with their advocates, acts and sections, hearing history and listed orders. Anonymous, read-only; the portal's CAPTCHA-gated searches (by party name, case number, filing number, FIR, advocate, act, cause list, court orders) are not covered."
use_when: "India eCourts Services portal for district and taluka courts (services.ecourts.gov.in, ecourtindia_v6): the state -> district -> court complex -> court establishment reference cascade the portal's search forms are built on, and the public case status record of a case identified by its 16-character CNR (Case Number Record): case type, filing and registration numbers and dates, status, court and judge, petitioners and respondents with their advocates, acts and sections, hearing history and listed orders. Anonymous, read-only; the portal's CAPTCHA-gated searches (by party name, case number, filing number, FIR, advocate, act, cause list, court orders) are not covered."
categories: "Public records"
capabilities: 5
credits_per_call: 5
---
# India eCourts district court services on Firecrawl Alexandria

India eCourts Services portal for district and taluka courts (services.ecourts.gov.in, ecourtindia_v6): the state -> district -> court complex -> court establishment reference cascade the portal's search forms are built on, and the public case status record of a case identified by its 16-character CNR (Case Number Record): case type, filing and registration numbers and dates, status, court and judge, petitioners and respondents with their advocates, acts and sections, hearing history and listed orders. Anonymous, read-only; the portal's CAPTCHA-gated searches (by party name, case number, filing number, FIR, advocate, act, cause list, court orders) are not covered.

- Categories: Public records
- Category index: [Public records category](https://firecrawl.dev/alexandria/agents/categories/public-records)
- Provider key: `services-ecourts-gov-in`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/services-ecourts-gov-in)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/openapi.json)

## Capabilities

- [Get case by cnr](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/get_case_by_cnr): Public case status record of a district-court case identified by its 16-character CNR (ep-view-cnr-history, cnr_status/viewCNRHistory). No CAPTCHA is involved: the portal answers this call with the full record once a session is open. Returns the court, case type, filing/registration/e-filing numbers and dates, the status block (first hearing, next hearing or decision date, case stage or nature of disposal, court number and judge; every row is also kept verbatim in status_fields), petitioners and respondents with their advocates, acts and sections, the hearing history and the interim and final order rows. Dates are kept exactly as the portal prints them (dd-mm-yyyy in tables, '02nd January 2024' in the status block). An unknown CNR is not_found.
- [List court complexes](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_court_complexes): List the court complexes of one district (ep-fill-complex, casestatus/fillcomplex). The portal ships each complex as `{complex}@{establishment codes}@{Y|N}`; the record carries the bare court_complex_code the other calls take, the establishment codes it groups, and the raw value.
- [List districts](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_districts): List the districts of one state with their dist_code (ep-fill-district, casestatus/fillDistrict). Opens a portal session (session cookie, page token and the per-backend request-header pair the portal's own scripts send) and issues the same form POST the page does.
- [List establishments](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_establishments): List the court establishments of one court complex (ep-fill-court-establishment, casestatus/fillCourtEstablishment): the courts (District and Sessions Judge, Chief Metropolitan Magistrate, ...) with their est_code.
- [List states](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_states): List the Indian states and union territories the district-court portal covers, with the numeric state_code every other call takes. Parsed from the case-status page's state selector (ep-casestatus-index); the portal has one host for all states, so this list is the entry point of the location cascade.

## 1. Choose this provider when

India eCourts Services portal for district and taluka courts (services.ecourts.gov.in, ecourtindia_v6): the state -> district -> court complex -> court establishment reference cascade the portal's search forms are built on, and the public case status record of a case identified by its 16-character CNR (Case Number Record): case type, filing and registration numbers and dates, status, court and judge, petitioners and respondents with their advocates, acts and sections, hearing history and listed orders. Anonymous, read-only; the portal's CAPTCHA-gated searches (by party name, case number, filing number, FIR, advocate, act, cause list, court orders) are not covered.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "services-ecourts-gov-in",
  "capability": "court-cases/get_case_by_cnr",
  "options": {
    "cnr": "DLND010000012024"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `cnr` (string, required): 16-character CNR: 2-letter state, 2-letter establishment, 2-digit court, 6-digit serial, 4-digit year (e.g. DLND010000012024). Pattern: ^[A-Za-z]{4}[0-9]{12}$. Example: `<cnr>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "services-ecourts-gov-in",
    capability: "court-cases/get_case_by_cnr",
    options: {
      cnr: "DLND010000012024",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "services-ecourts-gov-in",
  "capability": "court-cases/get_case_by_cnr",
  "options": {
    "cnr": "DLND010000012024"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "services-ecourts-gov-in",
    "capability": "court-cases/get_case_by_cnr",
    "options": {
      "cnr": "DLND010000012024"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'services-ecourts-gov-in/court-cases/get_case_by_cnr' \
  --options '{"cnr":"DLND010000012024"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "services-ecourts-gov-in",
  "capability": "court-cases/get_case_by_cnr",
  "options": {
    "cnr": "DLND010000012024"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "services-ecourts-gov-in",
  "capability": "court-cases/get_case_by_cnr",
  "options": {
    "cnr": "DLND010000012024"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "acts": [
    {
      "act": "Recovery of Money",
      "sections": "1908"
    }
  ],
  "case_stage": null,
  "case_status": "Case disposed",
  "case_type": "Misc DJ - MISC. CASES FOR DJ and ADJ",
  "cnr": "DLND010000012024",
  "court_name": "District and Sessions Judge,New Delhi, PHC",
  "court_number_and_judge": "52-District Judge-01",
  "decision_date": "03rd January 2024",
  "disposed": true,
  "efiling_date": null,
  "efiling_number": null,
  "filing_date": "02-01-2024",
  "filing_number": "1/2024",
  "final_orders": [
    {
      "details": "COPY OF JUDICIAL PROCEEDINGS",
      "has_document_link": false,
      "order_date": "03-01-2024",
      "order_number": "2"
    }
  ],
  "first_hearing_date": "02nd January 2024",
  "history": [
    {
      "business_on_date": "03-01-2024",
      "hearing_date": null,
      "judge": "District Judge-01",
      "purpose": "Disposed"
    },
    {
      "business_on_date": "02-01-2024",
      "hearing_date": "03-01-2024",
      "judge": "District Judge-01",
      "purpose": "Consideration"
    }
  ],
  "interim_orders": [
    {
      "details": "COPY OF JUDICIAL PROCEEDINGS",
      "has_document_link": false,
      "order_date": "02-01-2024",
      "order_number": "1"
    }
  ],
  "nature_of_disposal": "Uncontested--DISPOSED",
  "next_hearing_date": null,
  "observed_at_ms": 1791171237119,
  "petitioners": [
    {
      "advocates": [
        "ASHOK KUMAR BAHL"
      ],
      "name": "STATE BANK OF INDIA",
      "serial": "1"
    }
  ],
  "registration_date": "02-01-2024",
  "registration_number": "1/2024",
  "respondents": [
    {
      "advocates": [],
      "name": "RAJNI KANTA AND ORS",
      "serial": "1"
    }
  ],
  "source_url": "https://services.ecourts.gov.in/ecourtindia_v6/?p=cnr_status/index",
  "status_fields": [
    {
      "label": "First Hearing Date",
      "value": "02nd January 2024"
    },
    {
      "label": "Decision Date",
      "value": "03rd January 2024"
    },
    {
      "label": "Case Status",
      "value": "Case disposed"
    },
    {
      "label": "Nature of Disposal",
      "value": "Uncontested--DISPOSED"
    },
    {
      "label": "Court Number and Judge",
      "value": "52-District Judge-01"
    }
  ]
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Get case by cnr

- Capability: `court-cases/get_case_by_cnr`
- Description: Public case status record of a district-court case identified by its 16-character CNR (ep-view-cnr-history, cnr_status/viewCNRHistory). No CAPTCHA is involved: the portal answers this call with the full record once a session is open. Returns the court, case type, filing/registration/e-filing numbers and dates, the status block (first hearing, next hearing or decision date, case stage or nature of disposal, court number and judge; every row is also kept verbatim in status_fields), petitioners and respondents with their advocates, acts and sections, the hearing history and the interim and final order rows. Dates are kept exactly as the portal prints them (dd-mm-yyyy in tables, '02nd January 2024' in the status block). An unknown CNR is not_found.
- Instructions: You know a case's CNR (e.g. DLND010000012024, printed on court notices, orders and cause lists) and need its current status, parties, hearing history or order list.
- Cost: 5 credits per call
- Capability file: [Get case by cnr](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/get_case_by_cnr)

Accepted options:
- `cnr` (string, required): 16-character CNR: 2-letter state, 2-letter establishment, 2-digit court, 6-digit serial, 4-digit year (e.g. DLND010000012024). Pattern: ^[A-Za-z]{4}[0-9]{12}$. Example: `<cnr>`

Response schema example:
```json
{
  "acts": [
    {
      "act": "Recovery of Money",
      "sections": "1908"
    }
  ],
  "case_stage": null,
  "case_status": "Case disposed",
  "case_type": "Misc DJ - MISC. CASES FOR DJ and ADJ",
  "cnr": "DLND010000012024",
  "court_name": "District and Sessions Judge,New Delhi, PHC",
  "court_number_and_judge": "52-District Judge-01",
  "decision_date": "03rd January 2024",
  "disposed": true,
  "efiling_date": null,
  "efiling_number": null,
  "filing_date": "02-01-2024",
  "filing_number": "1/2024",
  "final_orders": [
    {
      "details": "COPY OF JUDICIAL PROCEEDINGS",
      "has_document_link": false,
      "order_date": "03-01-2024",
      "order_number": "2"
    }
  ],
  "first_hearing_date": "02nd January 2024",
  "history": [
    {
      "business_on_date": "03-01-2024",
      "hearing_date": null,
      "judge": "District Judge-01",
      "purpose": "Disposed"
    },
    {
      "business_on_date": "02-01-2024",
      "hearing_date": "03-01-2024",
      "judge": "District Judge-01",
      "purpose": "Consideration"
    }
  ],
  "interim_orders": [
    {
      "details": "COPY OF JUDICIAL PROCEEDINGS",
      "has_document_link": false,
      "order_date": "02-01-2024",
      "order_number": "1"
    }
  ],
  "nature_of_disposal": "Uncontested--DISPOSED",
  "next_hearing_date": null,
  "observed_at_ms": 1791171237119,
  "petitioners": [
    {
      "advocates": [
        "ASHOK KUMAR BAHL"
      ],
      "name": "STATE BANK OF INDIA",
      "serial": "1"
    }
  ],
  "registration_date": "02-01-2024",
  "registration_number": "1/2024",
  "respondents": [
    {
      "advocates": [],
      "name": "RAJNI KANTA AND ORS",
      "serial": "1"
    }
  ],
  "source_url": "https://services.ecourts.gov.in/ecourtindia_v6/?p=cnr_status/index",
  "status_fields": [
    {
      "label": "First Hearing Date",
      "value": "02nd January 2024"
    },
    {
      "label": "Decision Date",
      "value": "03rd January 2024"
    },
    {
      "label": "Case Status",
      "value": "Case disposed"
    },
    {
      "label": "Nature of Disposal",
      "value": "Uncontested--DISPOSED"
    },
    {
      "label": "Court Number and Judge",
      "value": "52-District Judge-01"
    }
  ]
}
```

### List court complexes

- Capability: `court-cases/list_court_complexes`
- Description: List the court complexes of one district (ep-fill-complex, casestatus/fillcomplex). The portal ships each complex as `{complex}@{establishment codes}@{Y|N}`; the record carries the bare court_complex_code the other calls take, the establishment codes it groups, and the raw value.
- Instructions: You have state_code and dist_code and need a court_complex_code for list_establishments or to scope a case.
- Cost: 5 credits per call
- Capability file: [List court complexes](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_court_complexes)

Accepted options:
- `dist_code` (string, required): District code from list_districts. Pattern: ^[0-9]{1,4}$. Example: `<dist_code>`
- `state_code` (string, required): Pattern: ^[0-9]{1,3}$. Example: `<state_code>`

Response schema example:
```json
{
  "complexes": [
    {
      "court_complex_code": "1260007",
      "differ_mast_est": "Y",
      "establishment_codes": [
        "1",
        "2",
        "3",
        "4"
      ],
      "name": "Patiala House Court Complex",
      "raw_value": "1260007@1,2,3,4@Y"
    }
  ],
  "dist_code": "7",
  "observed_at_ms": 1791171212298,
  "source_url": "https://services.ecourts.gov.in/ecourtindia_v6/?p=casestatus/index",
  "state_code": "26"
}
```

### List districts

- Capability: `court-cases/list_districts`
- Description: List the districts of one state with their dist_code (ep-fill-district, casestatus/fillDistrict). Opens a portal session (session cookie, page token and the per-backend request-header pair the portal's own scripts send) and issues the same form POST the page does.
- Instructions: You have a state_code from list_states and need a dist_code for list_court_complexes.
- Cost: 5 credits per call
- Capability file: [List districts](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_districts)

Accepted options:
- `state_code` (string, required): Numeric state code from list_states (e.g. "26" for Delhi). Pattern: ^[0-9]{1,3}$. Example: `<state_code>`

Response schema example:
```json
{
  "districts": [
    {
      "dist_code": "8",
      "name": "Central"
    },
    {
      "dist_code": "3",
      "name": "East"
    },
    {
      "dist_code": "7",
      "name": "New Delhi"
    },
    {
      "dist_code": "4",
      "name": "North"
    },
    {
      "dist_code": "1",
      "name": "North East"
    },
    {
      "dist_code": "5",
      "name": "North West"
    },
    {
      "dist_code": "2",
      "name": "Shahdara"
    },
    {
      "dist_code": "10",
      "name": "South"
    },
    {
      "dist_code": "11",
      "name": "South East"
    },
    {
      "dist_code": "6",
      "name": "South West"
    },
    {
      "dist_code": "9",
      "name": "West"
    }
  ],
  "observed_at_ms": 1791171204882,
  "source_url": "https://services.ecourts.gov.in/ecourtindia_v6/?p=casestatus/index",
  "state_code": "26"
}
```

### List establishments

- Capability: `court-cases/list_establishments`
- Description: List the court establishments of one court complex (ep-fill-court-establishment, casestatus/fillCourtEstablishment): the courts (District and Sessions Judge, Chief Metropolitan Magistrate, ...) with their est_code.
- Instructions: You have state_code, dist_code and court_complex_code and need the establishments in the complex.
- Cost: 5 credits per call
- Capability file: [List establishments](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_establishments)

Accepted options:
- `court_complex_code` (string, required): Bare complex code from list_court_complexes (e.g. 1260007); the raw `a@b@c` value is accepted and reduced to its first segment. Example: `a@b@c`
- `dist_code` (string, required): Pattern: ^[0-9]{1,4}$. Example: `<dist_code>`
- `state_code` (string, required): Pattern: ^[0-9]{1,3}$. Example: `<state_code>`

Response schema example:
```json
{
  "court_complex_code": "1260007",
  "dist_code": "7",
  "establishments": [
    {
      "est_code": "1",
      "name": "District and Sessions Judge,New Delhi, PHC"
    },
    {
      "est_code": "2",
      "name": "Chief Metropolitan Magistrate, New Delhi, PHC"
    },
    {
      "est_code": "3",
      "name": "Senior Civil Judge cum RC, New Delhi, PHC"
    },
    {
      "est_code": "4",
      "name": "Principal Judge Family Court, New Delhi, PHC"
    }
  ],
  "observed_at_ms": 1791171219776,
  "source_url": "https://services.ecourts.gov.in/ecourtindia_v6/?p=casestatus/index",
  "state_code": "26"
}
```

### List states

- Capability: `court-cases/list_states`
- Description: List the Indian states and union territories the district-court portal covers, with the numeric state_code every other call takes. Parsed from the case-status page's state selector (ep-casestatus-index); the portal has one host for all states, so this list is the entry point of the location cascade.
- Instructions: You need a state_code for list_districts, or want to know which states/UTs the portal serves.
- Cost: 5 credits per call
- Capability file: [List states](https://firecrawl.dev/alexandria/agents/providers/services-ecourts-gov-in/court-cases/list_states)

Accepted options:

Response schema example:
```json
{
  "observed_at_ms": 1791171192228,
  "source_url": "https://services.ecourts.gov.in/ecourtindia_v6/?p=casestatus/index",
  "states": [
    {
      "name": "Andaman and Nicobar",
      "state_code": "28"
    },
    {
      "name": "Andhra Pradesh",
      "state_code": "2"
    },
    {
      "name": "Arunachal Pradesh",
      "state_code": "36"
    },
    {
      "name": "Assam",
      "state_code": "6"
    },
    {
      "name": "Bihar",
      "state_code": "8"
    },
    {
      "name": "Chandigarh",
      "state_code": "27"
    },
    {
      "name": "Chhattisgarh",
      "state_code": "18"
    },
    {
      "name": "Delhi",
      "state_code": "26"
    },
    {
      "name": "Goa",
      "state_code": "30"
    },
    {
      "name": "Gujarat",
      "state_code": "17"
    },
    {
      "name": "Haryana",
      "state_code": "14"
    },
    {
      "name": "Himachal Pradesh",
      "state_code": "5"
    },
    {
      "name": "Jammu and Kashmir",
      "state_code": "12"
    },
    {
      "name": "Jharkhand",
      "state_code": "7"
    },
    {
      "name": "Karnataka",
      "state_code": "3"
    },
    {
      "name": "Kerala",
      "state_code": "4"
    },
    {
      "name": "Ladakh",
      "state_code": "33"
    },
    {
      "name": "Lakshadweep",
      "state_code": "37"
    },
    {
      "name": "Madhya Pradesh",
      "state_code": "23"
    },
    {
      "name": "Maharashtra",
      "state_code": "1"
    },
    {
      "name": "Manipur",
      "state_code": "25"
    },
    {
      "name": "Meghalaya",
      "state_code": "21"
    },
    {
      "name": "Mizoram",
      "state_code": "19"
    },
    {
      "name": "Nagaland",
      "state_code": "34"
    },
    {
      "name": "Odisha",
      "state_code": "11"
    },
    {
      "name": "Puducherry",
      "state_code": "35"
    },
    {
      "name": "Punjab",
      "state_code": "22"
    },
    {
      "name": "Rajasthan",
      "state_code": "9"
    },
    {
      "name": "Sikkim",
      "state_code": "24"
    },
    {
      "name": "Tamil Nadu",
      "state_code": "10"
    },
    {
      "name": "Telangana",
      "state_code": "29"
    },
    {
      "name": "The Dadra And Nagar Haveli And Daman And Diu",
      "state_code": "38"
    },
    {
      "name": "Tripura",
      "state_code": "20"
    },
    {
      "name": "Uttarakhand",
      "state_code": "15"
    },
    {
      "name": "Uttar Pradesh",
      "state_code": "13"
    },
    {
      "name": "West Bengal",
      "state_code": "16"
    }
  ]
}
```
