indiankanoon.org APIindiankanoon.org ↗
Access Indian court judgments, laws, and tribunal decisions via the Indian Kanoon API. Search, browse by court/year, and retrieve full-text documents with metadata.
curl -X GET 'https://api.parse.bot/scraper/1722630e-9d82-4a08-a121-360b7a5b35e7/search_documents?page=0&query=murder' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for legal documents (judgments, laws, sections) with keywords and optional filters. Supports advanced query syntax like 'doctypes:supremecourt fromdate:DD-MM-YYYY todate:DD-MM-YYYY'. Returns paginated results with 10 results per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-based). |
| queryrequired | string | Search query string. Supports plain text keywords and advanced syntax including 'doctypes:<court_slug>', 'fromdate:DD-MM-YYYY', 'todate:DD-MM-YYYY'. |
{
"type": "object",
"fields": {
"results": "array of search result objects each containing doc_id, title, url, court, and snippet",
"pagination": "object containing current_page (string), total_results (integer or null), and has_next (boolean)"
},
"sample": {
"data": {
"results": [
{
"url": "https://indiankanoon.org/doc/1560742/",
"court": "Union of India - Section",
"title": "Section 302 in The Indian Penal Code, 1860",
"doc_id": "1560742",
"snippet": "Section 302 in The Indian Penal Code, 1860..."
}
],
"pagination": {
"has_next": true,
"current_page": "0",
"total_results": 290859
}
},
"status": "success"
}
}About the indiankanoon.org API
The Indian Kanoon API provides 7 endpoints for searching and retrieving Indian legal documents — including Supreme Court judgments, High Court rulings, and tribunal decisions. The search_documents endpoint accepts plain-text queries or advanced syntax filters like doctypes:supremecourt and date ranges, returning paginated results with doc IDs, titles, court names, and text snippets. The get_document endpoint delivers full document text alongside citation counts, bench composition, author judge, and judgment date.
Search and Document Retrieval
The search_documents endpoint accepts a required query string and an optional 0-based page integer. Query syntax supports plain keywords as well as structured filters: doctypes:<court_slug> restricts results to a specific court or tribunal, and fromdate:/todate: narrow results to a date range in DD-MM-YYYY format. Each result object returns doc_id, title, url, court, and a text snippet. Pagination metadata includes current_page, total_results (integer or null), and a has_next boolean.
The get_document endpoint takes a numeric doc_id — obtained from search results — and returns the document's full_text, title, court, date, author, and bench (an array of judge names). It also exposes two citation fields: citations_cites_count (how many documents this one cites) and citations_cited_by_count (how many documents cite it). These citation counts are useful for assessing precedential weight.
Court Browsing
Three endpoints support hierarchical browsing of the corpus. browse_courts returns all available courts and tribunals, each with a name and slug. Passing a court_slug to browse_court_years yields an array of year strings in descending order. Then browse_court_year_months takes both court_slug and year and returns an array of month objects — each including a search_query string ready to pass directly to search_documents.
Autocomplete and Recent Activity
get_suggestions accepts a partial term and returns autocomplete suggestions with label (HTML-formatted with bold-highlighted matches) and value (plain-text query string). get_recent_judgments requires no inputs and returns a list of court feeds, each with a court name, an added_today_query string, and a direct url — useful for monitoring new filings across courts on any given day.
- Build a case law research tool that filters Supreme Court judgments by date range using the
doctypes:supremecourt fromdate:query syntax - Track citation frequency to identify landmark judgments using
citations_cited_by_countfromget_document - Monitor daily legal activity across courts by polling
get_recent_judgmentsand following each court'sadded_today_query - Construct a court-specific document archive using
browse_courts→browse_court_years→browse_court_year_monthsto enumerate all available months - Power a legal search autocomplete UI with
get_suggestions, surfacing relevant case names and statutory terms as users type - Analyze bench compositions over time by extracting the
bencharray from bulkget_documentcalls across a court and year range - Feed a document summarization pipeline by retrieving
full_textfromget_documentfor a set ofdoc_idvalues obtained through targeted searches
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Indian Kanoon offer an official developer API?+
What does `get_document` return beyond the document text?+
get_document returns full_text, title, court, date, author, and bench (an array of judge names), plus citations_cites_count and citations_cited_by_count as strings. The doc_id echo is also included in the response. Fields like author and date may be empty strings if not available for a given document.How does pagination work in `search_documents`?+
page parameter is 0-based, so the first page is page=0. The pagination object in the response includes current_page, has_next (boolean), and total_results, though total_results may be null for some queries. Iterate using has_next to determine whether to fetch the next page.Does the API expose the full list of acts and statutes separately from judgments?+
search_documents endpoint can retrieve acts and statutory sections alongside judgments depending on the query, and the doctypes: filter can narrow results to specific document categories. Dedicated endpoints for browsing statutes by act name or section number are not currently included. You can fork the API on Parse and revise it to add an endpoint targeting those document types.Are documents from all Indian courts and tribunals covered?+
browse_courts returns the complete list of courts and tribunals indexed — this includes the Supreme Court, various High Courts, and several tribunals. Coverage depends on what Indian Kanoon has indexed; documents from lower district courts are generally sparse or absent. The API reflects the same corpus scope that indiankanoon.org itself covers.