---
name: indian-court-judgments-ingestion
description: "How to get Indian Supreme and High Court Judgments data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load Indian court metadata into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/indian-court-judgments
Provider: https://github.com/vanga/indian-supreme-court-judgments
Checked against the provider's documentation: 2026-11-01

## Access
- No account, AWS credentials or key. The Supreme Court and High Court S3 buckets are public.
- Use metadata/parquet for structured metadata and data/tar for bulk judgment PDFs.

## Request
```bash
curl -O 'https://indian-supreme-court-judgments.s3.amazonaws.com/metadata/parquet/year=1950/metadata.parquet'
```

## Format
Parquet metadata partitions with court, title, decision date, judge and case identifiers; available columns differ between the Supreme Court and High Court archives.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Two small Indian court metadata partitions -> pandas -> Parquet. No key."""
import io

import pandas as pd
import requests

SOURCES = {
    "supreme": "https://indian-supreme-court-judgments.s3.amazonaws.com/metadata/parquet/year=1950/metadata.parquet",
    "high": "https://indian-high-court-judgments.s3.amazonaws.com/metadata/parquet/year=1950/court=27_1/bench=newos/metadata.parquet",
}

frames = []
for court_level, url in SOURCES.items():
    response = requests.get(url, timeout=60)
    response.raise_for_status()
    frame = pd.read_parquet(io.BytesIO(response.content))
    frame["court_level"] = court_level
    frames.append(frame)

df = pd.concat(frames, ignore_index=True, sort=False)
df["decision_date"] = pd.to_datetime(
    df["decision_date"], format="mixed", dayfirst=True, errors="coerce"
)
df.to_parquet("indian_court_judgments_1950_sample.parquet", index=False)
print(len(df), "judgments", df["decision_date"].min().date().isoformat(), "to",
      df["decision_date"].max().date().isoformat(), "from", df["court_level"].nunique(), "court levels")
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 48 judgments 1950-01-03 to 1950-12-21 from 2 court levels

## Limits
- Rate limit: Not stated.
- The 2026-06-01 High Court snapshot reports 17,771,420 PDFs and 1.25 TiB of tar archives.
- The Supreme Court repository reports about 35,000 English judgments and about 52.24 GB across the dataset.

## Quirks
- Supreme Court decision dates in the checked partition are day-first strings, while the checked High Court partition stores timestamps; parse mixed formats with dayfirst=True.
- The archives have different columns and partition layouts. Add a court-level marker and concatenate with sort=False when building a shared frame.
- High Court mobile and web records can refer to the same order with different filenames. The provider says to use (cnr, decision_date, order_number) when those fields exist.
- For bulk access, use tar and Parquet paths rather than syncing millions of individual objects.

## Terms and attribution
- Both datasets are licensed under CC BY 4.0 and require appropriate attribution.
- The provider asks users to avoid high-concurrency scraping of the originating court portals; use the public AWS archives for bulk access.
- Terms page: https://raw.githubusercontent.com/vanga/indian-supreme-court-judgments/main/LICENSE.md

## Sources
- https://raw.githubusercontent.com/vanga/indian-supreme-court-judgments/main/README.md: "It contains judgments from 1950 to Present, along with raw metadata (in json format) and structured metadata(parquet format)."
- https://raw.githubusercontent.com/vanga/indian-supreme-court-judgments/main/README.md: "The data is licensed under [Creative Commons Attribution 4.0 (CC-BY-4.0)](https://creativecommons.org/licenses/by/4.0/), which means you are free to use, share, and adapt the data as long as you provide appropriate attribution."
- https://raw.githubusercontent.com/vanga/indian-high-court-judgments/main/README.md: "An open dataset of judgments from 25 Indian High Courts, scraped from the [eCourts judgments portal](https://judgments.ecourts.gov.in). The dataset is synced daily via GitHub Actions."
- https://raw.githubusercontent.com/vanga/indian-high-court-judgments/main/STATS.md: "Years covered | **1950-2026**"

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
