,

Stop Your Legal Chatbot Inventing Sections: Ground Indian Law Answers in a Statute API

Legal chatbots get Indian sections wrong because they answer from memory. Here is how to ground every answer in the statute text with the eCourtsIndia API or MCP, with Python code, cost per answer and a ten-question test set verified on 3 November 2026.

·

·

eCourtsIndia Knowledgebase

Cover image for a guide to grounding a legal chatbot in Indian statutes with the eCourtsIndia Acts and Sections API and MCP server, showing 4 lakh+ provisions at 0.05 rupees per provision

A legal chatbot should look up the section, not remember it

A legal chatbot for Indian law gets sections wrong because it answers from memory, and memory predates the 2024 renumbering of the criminal codes. The fix is grounding: detect each citation, fetch the provision from a statute source at answer time, answer from that text and link it. Here is the design, the code and the cost.

Statute grounding means a chatbot fetches the authentic text of every provision it cites when it answers, uses only that text, and links the source, instead of generating section numbers and punishments from its training data.

₹200 free credits on signup. ₹0.05 per provision at the base rate, ₹0.15 on Pay As You Go. Not-found lookups are free.

Last updated: 3 November 2026

Key takeaways

  • Most wrong answers from a legal chatbot are lookup failures, not reasoning failures. The model remembers IPC 302 as murder, but the case before you may cite BNS 103, and BNSS 482 is not CrPC 482.
  • The grounding loop has five steps: detect the citation, resolve the Act to a key, fetch the provision, answer from the fetched text, and cite the URL with the date.
  • The eCourtsIndia statute book serves 4 lakh+ provisions through the same corpus as IndiaCode by eCourtsIndia, either as REST endpoints or as tools on the eCourtsIndia MCP server.
  • Grounding is cheap. One provision costs ₹0.05 at the base rate or ₹0.15 on Pay As You Go, and a section the corpus does not hold costs nothing.
  • We ran a ten-question test set through the MCP on 3 November 2026. Use the verified answers below as a regression suite.

Why does a legal chatbot get Indian sections wrong?

A general model answers Indian law questions from patterns in its training text, and that text is dominated by the Indian Penal Code, the Code of Criminal Procedure and the Evidence Act, which the Bharatiya Nyaya Sanhita, the Bharatiya Nagarik Suraksha Sanhita and the Bharatiya Sakshya Adhiniyam replaced on 1 July 2024. The renumbering was wholesale, so a remembered number is now often attached to the wrong offence.

Building the test set for this post, we saw five failure patterns again and again. None needs a cleverer model. Each needs a lookup.

1. Old numbers that still sound right

Twenty years of judgments say “Section 302 IPC” for murder. A model that has read them will keep saying it. The provision a charge sheet filed today cites is BNS 103, which the eCourtsIndia mapping marks as near-identical to IPC 302. The BNS has 358 sections, so an IPC number such as 420 does not even exist in the new code. Our IPC to BNS section mapping guide sets out the high-use sections, sub-section by sub-section.

2. The same number in two codes

This is the trap that catches careful people too. Section 482 of the CrPC was the High Court’s inherent power, the provision behind most quashing petitions. In the BNSS, section 482 is anticipatory bail. The inherent power moved to BNSS 528. A chatbot asked “what is section 482” has to know which code the user means, and it should ask rather than guess.

Short Act names do the same thing. “IT Act” means the Information Technology Act, 2000 to a cyber lawyer and the Income-tax Act, 1961 to a tax lawyer. When we sent “IT Act” to the resolver on 3 November 2026, it refused to pick one, returned both keys plus the Income-tax Act, 2025, and warned that both statutes have a section 43, 66 and 72.

3. State law that has moved on

State Acts are thinly represented in training data, and they change quietly. Ask about eviction of a tenant in Uttar Pradesh and a model will usually reach for the Uttar Pradesh Urban Buildings (Regulation of Letting, Rent and Eviction) Act, 1972. Section 46 of the Uttar Pradesh Regulation of Urban Premises Tenancy Act, 2021 repeals that Act, while saving cases that were pending when the 2021 Act came into force.

So a pipeline has to check status, not just find a match. Read the state and in_force fields on every resolved Act, and look for a later Act that repeals it, before quoting it as current law. The background on State coverage is in India’s State-law digitisation gap.

4. Classification flattened to one line

One section can create several offences, each with its own row in the First Schedule to the BNSS. BNS 318 creates three. Simple cheating is non-cognizable and bailable; cheating and dishonestly inducing delivery of property is cognizable, non-bailable and punishable with seven years and fine. A bot that says “cheating is bailable” has collapsed three rows into one.

Extortion is worse. The first row of BNS 308, putting a person in fear of injury in order to commit extortion, is bailable. The row for extortion itself is cognizable and non-bailable. Any system that keeps only the first row, including a careless integration of our own API, will tell a family the wrong thing about arrest and bail.

5. Paraphrase presented as text

The hardest pattern to see is a fluent paragraph that reads like a section but is a paraphrase stitched from several sources. In a pleading that is dangerous. Grounding fixes it because the quotation comes from fetched text.

Failure patternReal example (checked 3 November 2026)Guardrail
Old numberIPC 302 is now BNS 103 (near-identical)Map every pre-2024 citation before answering
Number collisionCrPC 482 became BNSS 528; BNSS 482 is anticipatory bailRequire the code name with every number
Ambiguous Act name“IT Act” resolves to 2000/21, 1961/43 or 2025/30Ask the user when the resolver returns candidates
State law movedUP 1972 rent Act repealed by s.46 of the UP 2021 ActCheck the state field and the in_force flag
Flattened classificationBNS 318 has three rows; BNS 308 has sixShow every offence row, never the first only
Paraphrase as textAny long answer with no fetched sourceQuote only from the fetched text, with its URL
Failure patterns we saw while building the test set. Examples verified through the eCourtsIndia MCP statute tools on 3 November 2026.
Table of five ways a legal chatbot gets Indian sections wrong, with a verified example and a guardrail for each: old IPC numbers, number collisions between CrPC and BNSS, ambiguous Act names, repealed State law and flattened offence classification
Five failure patterns and the guardrail for each (examples checked 3 November 2026).

What does statute grounding look like inside a legal chatbot?

Grounding is a short pipeline that runs before the model writes a word: find the provisions the question touches, fetch them, then let the model answer with the fetched text in front of it. It is retrieval augmented generation (RAG) for Indian law, with one difference that matters. A statute question usually names its source, so you can fetch the exact provision by key and number instead of hoping a vector search ranks it first.

  1. Detect the citation. Pull every “section N of Act” pattern out of the question and out of any document the user attached, such as an FIR or a charge sheet. A regular expression catches most of them; a small model call catches the rest, such as “the cheque bounce section”.
  2. Resolve the Act to a key. Common short names (IPC, BNS, CrPC, BNSS, CPC, NI Act) map to keys without a call. Anything else goes to GET /api/partner/acts/resolve, which returns a match only when the name is unambiguous and never guesses. Cache the key.
  3. Fetch the provision. GET /api/partner/acts/{key}/sections/{number} returns the heading, full text, the offence block with every row, and the old or new code equivalents in one response. For a charge sheet, POST /api/partner/acts/sections/batch takes up to 50 at once.
  4. Answer from the text. Put the fetched provisions into the prompt as sources and tell the model to answer only from them. If a question needs a provision you did not fetch, the model should say so and stop.
  5. Cite and date it. Every answer links the IndiaCode URL of each provision, says when it was read, and carries the line that classification governs procedure, not the outcome of any bail plea.
Flow diagram of statute grounding for a legal chatbot: detect the citation, resolve the Act name to a key, fetch the section text and offence rows, answer only from the fetched text, cite the IndiaCode URL with the date
The grounding loop. Each step maps to one documented Acts and Sections endpoint or MCP tool.

When the question names no provision, such as “what is the punishment for snatching”, search first. GET /api/partner/acts/search?q=snatching returns ranked hits with key and number but no text, so you still fetch before answering. A word search ranks by shared words, so a loose query can bring up provisions that merely share those words. When we searched the exact title “Digital Personal Data Protection Rules, 2025” on 3 November 2026, the Rules came first. Search for the statute’s own words, and let the model pick from the hits.

Everyday names are a related trap. The BNS never says “mob lynching”, and our statute search for the phrase returned nothing. The offence is section 103(2), murder by a group of five or more persons acting in concert on grounds such as race, caste or community. A chatbot needs a step that turns the user’s words into the statute’s words before it searches.

Should your legal chatbot use the MCP server or the API?

Use the MCP server when the model runs inside a client such as Claude, ChatGPT or Cursor and each user signs in with their own eCourtsIndia account. Use the REST API when you run your own chatbot on your own servers and want control over caching, retries and spend. Both read the same corpus and cost the same per provision.

QuestioneCourtsIndia MCPeCourtsIndia API
Where it runsInside the AI client, as tools the model callsYour backend, called by your code
Endpointhttps://mcp.ecourtsindia.com/mcphttps://webapi.ecourtsindia.com
AuthSign in with eCourtsIndia in the clientAuthorization: Bearer eci_live_...
Statute tools or endpointssearch_statute, resolve_act, lookup_provision, lookup_provisions, lookup_case_provisions, map_provision, get_cpc_rule, lookup_offenceacts/search, acts/resolve, acts/{key}/sections/{n}, sections/batch, equivalents, acts/status, case/{cnr}/provisions
Price per provision₹0.05 base, ₹0.15 Pay As You Go₹0.05 base, ₹0.15 Pay As You Go
CachingClient decides; you cannotYou cache against the corpus version
Best forLawyers using an assistant, internal researchProducts, legal aid bots, high volume
MCP and API routes compared, from the eCourtsIndia API docs and pricing page, read 3 November 2026.

Setup for the MCP route is covered step by step elsewhere, so we will not repeat it. Our guide to connecting the eCourtsIndia MCP to Claude covers the connector, and the MCP guide for Claude, ChatGPT and Cursor covers the other clients and the companion servers for company and land data. If you want prompts to try once it is connected, the sibling post on 15 statute prompts for the eCourtsIndia MCP runs each one and reports what came back.

One note for anyone who built on older guides. The keyless IndiaCode JSON API at indiacode.ecourtsindia.com/api/v1 is withdrawn and answers HTTP 410 with a pointer to ecourtsindia.com/api (tested 3 November 2026). The Markdown and Akoma Ntoso XML versions of each section page, and the site’s llms.txt, remain free to read.

How do you build the grounding loop in Python?

The loop below detects citations, resolves Act names once, fetches every provision in one batch call and hands the model a sources block it must answer from. It uses only the documented endpoints and the Python requests library. Plug your own model call into llm().

import os, re, requests

BASE = "https://webapi.ecourtsindia.com/api/partner"
H = {"Authorization": "Bearer " + os.environ["ECI_TOKEN"]}
SHORT = {"ipc": "1860/45", "bns": "2023/45", "crpc": "1974/2", "bnss": "2023/46",
         "bsa": "2023/47", "cpc": "1908/5", "ni act": "1881/26"}
CITE = re.compile(r"(?:section|sec\.|s\.)\s*(\d+[A-Z]*(?:\(\d+\))?)\s*(?:of\s+the\s+|of\s+)?"
                  r"(IPC|BNSS|BNS|CrPC|BSA|CPC|NI Act)\b", re.I)
KEYS, CACHE = {}, {}

def act_key(name):
    n = name.lower()
    if n in SHORT:
        return SHORT[n]
    if n not in KEYS:  # resolve once, cache forever
        r = requests.get(BASE + "/acts/resolve", params={"name": name}, headers=H, timeout=20)
        m = r.json()["data"].get("match")
        KEYS[n] = m["key"] if m else None  # None: ambiguous, ask the user
    return KEYS[n]

def fetch(refs):
    version = requests.get(BASE + "/acts/status", headers=H, timeout=20).json()["data"]["version"]
    todo = [r for r in refs if (version, r["key"], r["number"]) not in CACHE]
    if todo:
        r = requests.post(BASE + "/acts/sections/batch", json={"sections": todo[:50]}, headers=H, timeout=30)
        r.raise_for_status()  # 402 means top up; 429 means back off and retry
        for s in r.json()["data"]["sections"]:
            q = s["requested"]
            CACHE[(version, q["key"], q["number"])] = s
    return [CACHE.get((version, r["key"], r["number"])) for r in refs]

def sources_block(sections):
    out = []
    for s in filter(None, sections):
        sec, rows = s["section"], (s["section"].get("offence") or {}).get("offences") or []
        out.append("[%s s.%s] %s\n%s\nURL: %s" % (s["act"]["title"], sec["number"], sec["heading"], sec["text"], sec["url"]))
        for o in rows:  # every row, never only the first
            out.append("  OFFENCE ROW: %(offence)s | cognizable=%(cognizable)s | bailable=%(bailable)s | %(punishment)s | %(triable_by)s" % o)
        for e in sec.get("equivalents", []):
            out.append("  EQUIVALENT: %s s.%s (%s, %s)" % (e["title"], e["number"], e["relation"], e["direction"]))
    return "\n".join(out)

def answer(question, llm):
    refs = [{"key": act_key(a), "number": n} for n, a in CITE.findall(question)]
    refs = [r for r in refs if r["key"]]
    src = sources_block(fetch(refs)) if refs else "NO SOURCES FETCHED"
    return llm("Answer only from SOURCES. Quote, do not recall. Link each URL. "
               "If SOURCES do not answer the question, say so.\n\nSOURCES:\n" + src + "\n\nQUESTION: " + question)

Three choices matter. The cache key includes the corpus version from the free GET /api/partner/acts/status, so you pay for a section once per version, not once per user. A sub-section such as 318(4) is passed as written; the batch returns section 318 and echoes your input under requested. Entries the corpus does not hold come back under not_found, free.

The docs set rate limits of 100 requests a minute, 3,000 an hour, 50,000 a day and 10 concurrent, with exponential backoff on HTTP 429. A batching chatbot rarely gets near them; an archive migration will, so throttle it. Every endpoint, unit and error code is in the sibling pillar on the Indian statute API.

Ten citation questions to test any legal chatbot

Run these ten questions through your chatbot before you ship it. Each answer below is what the eCourtsIndia MCP statute tools returned on 3 November 2026, with the provision a correct answer must cite. They cover the five failure patterns: old numbers, collisions, ambiguous names, repealed State law and multi-offence sections.

#QuestionWhat a correct answer cites (via the eCourtsIndia MCP, 3 November 2026)Read it
1What is the BNS section for IPC 302?BNS 103, mapped as near-identical. 103(1) murder; 103(2) murder by a group of five or more on grounds such as caste or religion. Both rows cognizable, non-bailable, Court of Session.BNS 103
2Is cheating under BNS 318 bailable?It depends on the row. Cheating: non-cognizable, bailable, 3 years. Cheating and dishonestly inducing delivery of property: cognizable, non-bailable, 7 years and fine, Magistrate of the first class.BNS 318
3Which BNSS section replaced CrPC 482?BNSS 528, near-identical (inherent powers of the High Court).converters
4What is section 482 of the BNSS?Anticipatory bail: direction for grant of bail to a person apprehending arrest, by the High Court or Court of Session. Predecessor CrPC 438. Sub-section (4) excludes BNS 65 and 70(2).BNSS 482
5Where is Section 65B of the Evidence Act now?BSA 63, near-identical.IEA to BSA
6What does Section 11 CPC say?Res judicata. Not Order 7 Rule 11, which is rejection of plaint in the First Schedule.CPC s.11
7What does Section 66 of the IT Act punish?The resolver refuses “IT Act” as ambiguous (2000/21, 1961/43, 2025/30). A correct bot asks which Act first.IT Act 2000
8What is the punishment under Section 138 NI Act?Up to two years, or fine up to twice the cheque amount, or both. Conditions: presentation within six months, written notice within thirty days, no payment within fifteen days. No offence row is returned, so a bot must not invent one.NI Act 138
9Which law governs tenant eviction in Uttar Pradesh?UP Regulation of Urban Premises Tenancy Act, 2021 (key up/2021/16). Section 46 repeals the 1972 Act and saves pending cases.UP Act 2021 s.46
10What does Article 21 of the Constitution say?“No person shall be deprived of his life or personal liberty except according to procedure established by law.”Article 21
Ten-question regression set for a legal chatbot. Answers from lookup_provision, lookup_offence, map_provision, get_cpc_rule and resolve_act via the eCourtsIndia MCP, 3 November 2026.

Score strictly. Naming BNS 318 but dropping its second row fails question 2. Confidently explaining the Information Technology Act fails question 7, because it guessed. Question 9 is the one users in Lucknow, Kanpur or Noida will actually ask.

For a longer set aimed at the BNS alone, with twenty questions, every offence row and the old IPC numbers, see the sibling post on BNS questions AI chatbots often get wrong.

How much does grounding cost per answer?

A grounded answer that cites one provision costs ₹0.05 at the base rate or ₹0.15 on Pay As You Go. Most answers cite one to three provisions, so the statute part of an answer costs between ₹0.05 and ₹0.45. Not-found lookups, ambiguous resolves and the corpus status call are free.

ScenarioBillable unitsPay As You Go (₹0.15)Base rate (₹0.05)
One cited section, short Act name1 provision₹0.15₹0.05
Charge sheet with 12 sections, one batch12 provisions₹1.80₹0.60
Question with no citation: search, then fetch 21 search + 2 provisions₹0.45₹0.15
State Act by name: resolve, then fetch 11 resolve + 1 provision₹0.30₹0.10
10,000 answers a month, 2 provisions each, no cache20,000 provisions₹3,000₹1,000
Arithmetic from the eCourtsIndia API pricing page, read 3 November 2026. Every Acts endpoint costs ₹0.05 base or ₹0.15 Pay As You Go; batch and Case Provisions are charged per distinct section returned. GST extra on deposits.

Caching brings the last row down sharply, because legal questions cluster. A few hundred sections (murder, cheating, theft, cruelty, cheque dishonour, anticipatory bail, rejection of plaint) answer a large share of what users ask, and with the cache keyed to the corpus version you pay for each of them once per version. Pay As You Go deposit packs are ₹1,000, ₹2,500 and ₹5,000 plus 18% GST and never expire. Enterprise Monthly is ₹10,000 plus GST with 10,000 credits a month at the base rate. The full table is on the API pricing page.

Compare that with the cost of one wrong answer to a family asking about bail. Why data, not the model, decides quality in Indian legal AI is argued in our post on the data moat in a world of commodity LLMs.

Which prompt and product rules keep a legal chatbot honest?

The fetch step only helps if the model is told to stay inside what was fetched, and the interface shows the user where each claim came from. This is the system prompt we suggest as a starting point. Adjust the tone for your users; keep the rules.

You answer questions about Indian law for users in India.
Rules:
1. Never state a section number, text, punishment or classification from memory.
   Use only the SOURCES block, or call the statute tools to fetch it.
2. If the user gives a number without the code (IPC, BNS, CrPC, BNSS), ask which.
3. For an offence date before 1 July 2024, show the IPC or CrPC provision and its
   BNS or BNSS equivalent, with the relation label (near-identical or close).
4. If a section creates several offences, show every row and say which facts
   decide the row. Never collapse them into one answer.
5. Say that classification decides procedure (arrest, bail as of right, court),
   not the outcome of any bail application.
6. Link the IndiaCode URL of every provision and give the date it was read.
7. If a State Act page is marked OCR, say so and point to the government scan.
8. The Gazette is the authoritative text. This is not legal advice.
  • Show the rows as a table. Offence, cognizable, bailable, punishment and court, so the right row is easy to find.
  • Show both numbers for older matters. An FIR from 2023 and the trial that follows may cite the IPC throughout. When the user moves on to case law, search both numbers, as our eCourtsIndia search guide explains.
  • Never quote a section page’s FAQ as authority. Quote the text and the per-offence row. Page FAQs are summaries.
  • Log what was fetched: key, number, corpus version and request id, so any complaint can be audited.

If you want the bigger picture of why tools beat memory for agents working on Indian law, our earlier essay on the AI agent layer for Indian law sets it out.

What grounding does not fix

Grounding makes the statute part of an answer correct. It does not make the whole answer correct.

  • The statute book holds no judgments. Whether a court applied a section, and how, is a case-law question. The sibling post on going from a section to its case law covers that path.
  • A mapping is a research aid, not an authority. The IPC to BNS and CrPC to BNSS mappings are eCourtsIndia text comparisons with a relation label. They are not an official correspondence table. BNS 318 lists IPC 415, 418 and 420 as predecessors, and IPC 124A has no recorded counterpart at all.
  • OCR text needs checking. 7,700+ State Acts on IndiaCode are read by OCR from gazette scans and each such page says so. Our post on verifying OCR State Acts before citing explains how.
  • Parsed citations on case records are still thin. When we asked for the provisions on the Supreme Court record of MSR Leathers v. S. Palaniappan (CNR SCIN010047712001), the tool found none recorded and charged nothing. Do not assume a case links to its sections.
  • Text can trail the Gazette. India Code at indiacode.gov.in is the government’s repository, maintained by the Legislative Department of the Ministry of Law and Justice, and the e-Gazette at egazette.gov.in carries the authoritative text. IndiaCode by eCourtsIndia is an independent reader built on public sources.
  • Classification is not an outcome. A non-bailable row means bail is at the court’s discretion, not that bail will be refused.

Sources and method

  • Statute answers: eCourtsIndia MCP statute tools (lookup_provision, lookup_provisions, lookup_offence, map_provision, get_cpc_rule, resolve_act, search_statute, lookup_case_provisions), run by the author on 3 November 2026. Each answer was read from the tool’s raw response; nothing in this post is a model’s recollection.
  • Endpoints, fields, billing rules, errors and rate limits: eCourtsIndia API documentation, read 3 November 2026.
  • Prices and plans: eCourtsIndia API pricing, read 3 November 2026.
  • Corpus size (4 lakh+ provisions) from the eCourtsIndia MCP playbook; IndiaCode site figures (10,000+ Acts, 2.7 lakh+ sections) from the IndiaCode homepage, read 3 November 2026.
  • IndiaCode free API withdrawal (HTTP 410): tested by the eCourtsIndia editorial team, 3 November 2026.
  • Official sources: India Code (indiacode.gov.in), Legislative Department, Ministry of Law and Justice; e-Gazette (egazette.gov.in), read 3 November 2026.

More on IndiaCode itself, including what every section page carries, is in the IndiaCode pillar post.

Frequently asked questions

Why do AI chatbots cite the wrong IPC or BNS section?

Because they answer from training text written mostly before 1 July 2024, when the BNS, BNSS and BSA replaced the IPC, CrPC and Evidence Act and renumbered them. A remembered number is often attached to the wrong offence, and the same number can mean different things in two codes. The fix is to fetch the provision at answer time, as the IPC to BNS mapping guide shows.

What is RAG for Indian law?

Retrieval augmented generation means the chatbot retrieves source text and answers from it. For Indian statutes the retrieval can be exact: resolve the Act to a key, fetch the section by number, and hand the text to the model. Search is only needed when the user gives no citation. The eCourtsIndia API docs list the endpoints that do each step.

Should a legal chatbot use the MCP server or the API?

Use the eCourtsIndia MCP server when the model runs inside Claude, ChatGPT or Cursor and each user signs in with their own account. Use the REST API for your own product on your own servers, where you control caching and retries. Both read the same corpus at the same price. Setup is in the MCP guide for Claude, ChatGPT and Cursor.

How much does it cost to ground one chatbot answer?

The statute part of an answer costs ₹0.05 per provision at the base rate or ₹0.15 on Pay As You Go. An answer citing two sections costs ₹0.10 or ₹0.30. Not-found lookups, ambiguous resolves and the corpus status call are free, and caching against the corpus version means a popular section is paid for once. See the API pricing page.

Can a chatbot tell me whether an offence is bailable?

It can show what the First Schedule to the BNSS says for each offence a section creates, if it fetches that classification rather than recalling it. Many sections have several rows, so the right answer depends on the facts. Classification decides procedure, not whether a court grants bail. The sibling guide on checking bailable and non-bailable offences explains the rows.

Is IndiaCode by eCourtsIndia the official text of Indian law?

No. IndiaCode by eCourtsIndia is an independent reader built on public sources. The government’s India Code at indiacode.gov.in is the official repository, and the e-Gazette is the authoritative text. Use the grounded text for research and drafting, and check the Gazette before you file. The differences are set out in IndiaCode and the official India Code portal.

Does grounding stop all legal chatbot hallucinations?

No. It fixes the statute part: numbers, text, classification and old or new equivalents. A model can still misapply a correct section to the facts, invent case law, or overstate a mapping. Keep the model inside the fetched sources, show every offence row, and send case-law questions to case search. Our essay on the AI agent layer covers the wider design.

Important: This post explains how to build software that reads Indian statutes. It is not legal advice. Statutory text shown through eCourtsIndia and IndiaCode by eCourtsIndia is drawn from public sources and is not an official copy; the Gazette of India and State Gazettes are the authoritative text. IPC to BNS, CrPC to BNSS and Evidence Act to BSA mappings are eCourtsIndia text comparisons and not an official correspondence table. Offence classification governs procedure and does not decide any bail application. eCourtsIndia is a non Govt. initiative by Billion Insights Ventures Pvt. Ltd., Noida, and is not affiliated with any court or the Government of India.

Ground your legal chatbot in the statute book

Get an API key with ₹200 free credits, or connect the eCourtsIndia MCP to your assistant and let it look the law up.

Docs at ecourtsindia.com/api/docs. MCP at mcp.ecourtsindia.com.

eCourtsIndia is a private legal-technology platform. It is not affiliated with, associated with, or endorsed by the Government of India, the Supreme Court of India or its e-Committee, or any court. Official case information is published on ecourts.gov.in. Always verify details against official court records or certified copies. This article is general information, not legal advice. Spotted an error? Write to support@ecourtsindia.com.

Search 35 crore+ Indian court case records, free

One search across the Supreme Court, all 25 High Courts, district courts and 18 tribunal and commission types. Hearing alerts, AI summaries and an API for developers.