OrbTop

India Court Judgments Scraper - Supreme Court & High Courts API

BUSINESSOTHER

India Court Judgments Scraper — Supreme Court, High Courts & Tribunals

Extract structured records of Indian court judgments and orders from the Supreme Court of India, all 24 High Courts, central tribunals (NCLT, NGT, ITAT, CESTAT, etc.), Law Commission reports, and central acts. The scraper is a thin, BYO-token wrapper around the official Indian Kanoon API, which indexes more than 30 million judgments — the largest single source of decided case law in India.

What this Actor returns

  • 25+ structured fields per judgment: case title, court, jurisdiction tier, publish date, authoring judge, citation count, citing/cited cases, and canonical URL
  • Optional full judgment text (HTML and plain text) and acts cited, opt-in via the fetchFullText flag
  • Filter by court, free-text keyword, authoring judge, citation, date range, or any combination
  • Sort by relevance (best for keyword search) or by date — newest or oldest first
  • Coverage across India's full judicial hierarchy: Supreme Court → 24 High Courts → tribunals → central laws → Constitution → Law Commission

Required: Indian Kanoon API token

This is a BYO-API-token actor. It does not include credit for the underlying Indian Kanoon service.

  1. Register at api.indiankanoon.org/signup/. New accounts receive Rs. 500 of free trial credit.
  2. Copy your shared API token from the dashboard.
  3. Paste it into the apiToken input field when running the actor.

Indian Kanoon's per-call pricing (billed by IK directly to the token holder, on top of any Apify usage):

Call type Cost (INR)
Search page (10 results) 0.50
Document metainfo 0.02
Full document HTML 0.20
Original court PDF copy 0.50

A search of 100 results with fetchFullText: false costs roughly Rs. 5 (10 search pages). Toggling fetchFullText: true adds Rs. 0.20 per record. Plan accordingly.

ToS note: Per Indian Kanoon's terms, downstream rendering of these results to end users requires displaying the "Powered by IKanoon" attribution. The actor returns raw structured data; attribution is the consumer's responsibility.

Who uses Indian court data and why?

  • Indian legal-tech startups — build precedent search, citation graphs, and AI-driven research tools without scraping eCourts directly
  • Compliance and corporate litigation teams — screen counterparties and directors for past or pending litigation
  • Law firms and litigators — surface judgments authored by a specific judge or interpreting a specific section
  • Legal academics and researchers — bulk-pull judgments by court, period, or topic for empirical and doctrinal studies
  • Journalists and policy analysts — monitor recent rulings on constitutional, civil-rights, regulatory, or commercial matters
  • AI/ML teams — train and evaluate legal language models on structured Indian case-law data

How the scraper works

  1. You provide an apiToken and at least one filter (search query, court, judge, citation, or date range).
  2. The actor builds an Indian Kanoon formInput query string — for example, right to privacy doctypes: supremecourt fromdate: 1-1-2017 todate: 31-12-2017 sortby: mostrecent.
  3. It POSTs to api.indiankanoon.org/search/ with your token in the Authorization header, paginating 10 results at a time until it reaches maxItems.
  4. For each result it builds a flat record — case ID, title, court, dates, judge, citation counts, and so on.
  5. If fetchFullText: true, it additionally calls /doc/{tid}/ per record to pull the full judgment HTML, citing cases, cited-by cases, and a regex-extracted list of acts referenced.
  6. Records are streamed to the Apify dataset as they're collected.

Input

Right-to-privacy line of cases at the Supreme Court

{
  "apiToken": "your_indian_kanoon_token",
  "query": "right to privacy",
  "court": "supremecourt",
  "orderBy": "mostrecent",
  "maxItems": 50
}

Delhi High Court judgments by a specific judge

{
  "apiToken": "your_indian_kanoon_token",
  "court": "delhi",
  "author": "Sanjeev Sachdeva",
  "orderBy": "mostrecent",
  "maxItems": 100
}

All Bombay High Court IP cases in a date range

{
  "apiToken": "your_indian_kanoon_token",
  "query": "trademark infringement",
  "court": "bombay",
  "fromDate": "2023-01-01",
  "toDate": "2024-12-31",
  "maxItems": 200
}

Look up a specific case by citation

{
  "apiToken": "your_indian_kanoon_token",
  "citation": "(2017) 10 SCC 1",
  "maxItems": 5
}

Full judgment text for further analysis (more expensive)

{
  "apiToken": "your_indian_kanoon_token",
  "query": "Section 138 Negotiable Instruments Act",
  "court": "supremecourt",
  "fetchFullText": true,
  "maxItems": 25
}

Tribunals — NCLT/ITAT/NGT decisions

{
  "apiToken": "your_indian_kanoon_token",
  "query": "insolvency resolution",
  "court": "tribunals",
  "orderBy": "mostrecent",
  "maxItems": 100
}

Input parameters

Field Type Default Description
apiToken string (required) Your paid Indian Kanoon API token. Stored as a secret.
query string "right to privacy" Free-text search over judgment content and metadata. Use double quotes for phrases. Supports IK syntax: author:, cites:, citedby:, etc.
court string "supremecourt" Restrict to a specific court. See the cheat sheet below. Empty string = all courts.
author string "" Authoring-judge filter (partial match, e.g. Chandrachud, Bhushan).
citation string "" Citation filter (e.g. (2017) 10 SCC 1 for Puttaswamy).
fromDate string "" Earliest publish date, ISO YYYY-MM-DD. Converted internally to IK's DD-MM-YYYY.
toDate string "" Latest publish date, ISO YYYY-MM-DD.
orderBy string "relevance" relevance, mostrecent, or leastrecent.
fetchFullText boolean false If true, additionally fetch the full HTML body of each judgment. Adds Rs. 0.20 per record to your IK bill.
maxItems integer 10 Maximum records to return. Each search page returns 10 results (Rs. 0.50 per page).
proxyConfiguration object disabled Proxy settings. Not required — IK is a public API.

Court cheat sheet

Code Court
supremecourt Supreme Court of India
delhi Delhi High Court
bombay Bombay High Court
madras Madras High Court
calcutta Calcutta High Court
kerala Kerala High Court
karnataka Karnataka High Court
allahabad Allahabad High Court
andhra Andhra Pradesh / pre-bifurcation Andhra & Telangana
chattisgarh Chhattisgarh High Court
gauhati Gauhati High Court
gujarat Gujarat High Court
himachal_pradesh Himachal Pradesh High Court
jammu Jammu & Kashmir High Court
jharkhand Jharkhand High Court
madhyapradesh Madhya Pradesh High Court
meghalaya Meghalaya High Court
manipur Manipur High Court
orissa Orissa / Odisha High Court
patna Patna High Court
punjab Punjab & Haryana High Court
rajasthan Rajasthan High Court
sikkim Sikkim High Court
telangana Telangana High Court
tripura Tripura High Court
uttaranchal Uttarakhand High Court
tribunals Tribunals (NCLT, NGT, ITAT, CESTAT, etc.)
central Central Indian acts
lawcommissionofindia Law Commission of India reports
constitution Constitution of India

Output

Each dataset record carries the following fields:

Field Type Description
doc_id number Indian Kanoon document ID — use to fetch the full doc via https://indiankanoon.org/doc/{doc_id}/.
title string Case title, typically "Petitioner vs Respondent on Date".
court string Full court name (e.g. "Supreme Court of India").
court_code string IK doctype code (supremecourt, delhi, etc.).
jurisdiction_level string Hierarchy: supreme, high_court, tribunal, central, law_commission, or other.
publish_date string Date of judgment / publication, ISO YYYY-MM-DD.
publish_year number Year of judgment.
author string Authoring judge or bench description.
headline string Search-result snippet with HTML highlights stripped, truncated to 1,000 characters.
doctype string Indian Kanoon document-type code.
num_cites number Number of cases this judgment cites.
num_cited_by number Number of later cases citing this judgment.
has_court_copy boolean True when an original court PDF is available via /origdoc/{doc_id}/.
citations string[] Cases this judgment cites (only populated with fetchFullText: true). Up to 25.
cited_by string[] Later cases citing this judgment (only with fetchFullText: true). Up to 25.
acts_cited string[] Indian Acts referenced in the body — Indian Penal Code, Negotiable Instruments Act, Constitution Articles, etc. Only with fetchFullText: true.
full_text string Plain-text judgment body (only with fetchFullText: true).
full_text_html string HTML judgment body, truncated to 100,000 characters.
url string Canonical Indian Kanoon URL.
api_url string Indian Kanoon API URL.
scraped_at string ISO timestamp of when the record was scraped.

What this actor does NOT cover

  • Live case status / next hearing date — these belong to the eCourts portal (services.ecourts.gov.in), not Indian Kanoon. IK indexes decided judgments and orders, not live docket status.
  • CNR numbers — Case Number Records are an eCourts-internal identifier and aren't reliably exposed in IK metadata. Use doc_id (Indian Kanoon's tid) as the stable PAN-India identifier instead.
  • District court records — coverage in IK is sparse below the High Court level.
  • Pending cases that haven't been decided — by definition not in IK.

If you need any of the above, you'll need a different scraper that talks to eCourts directly. eCourts uses aggressive captcha and is not in scope for this actor.

Pricing model

You pay Apify per record (per the actor's PPE pricing) and you pay Indian Kanoon directly for each search/document call charged against your IK token. The two bills are independent. The actor is a thin, transparent wrapper — the IK costs are a 1:1 pass-through, not marked up.

Useful links