Docs / Language and text
IPC to BNS section finder API
Which section of the Bharatiya Nyaya Sanhita replaced IPC 302, and the same for CrPC to BNSS and the Evidence Act to BSA.
India's new criminal laws came into force on 1 July 2024: the Bharatiya Nyaya Sanhita (BNS) replaced the Indian Penal Code (IPC), the Bharatiya Nagarik Suraksha Sanhita (BNSS) the Code of Criminal Procedure (CrPC), and the Bharatiya Sakshya Adhiniyam (BSA) the Indian Evidence Act (IEA). Look a section up either way, or search the titles. From the Bureau of Police Research and Development's correspondence tables; the section titles are the Acts' own.
https://api.dharun.devNo key needed for most600 units a minute, 3000 with a free keyThis page as MarkdownA section and its counterpart
GET/v1/law/{law}/{section}
With a new law (bns, bnss, bsa), the section (all its subsections for 103; one for 103(1)) and the old section it stands for. With an old law (ipc, crpc, iea), every new section the old one went to. new_provision marks a section with no counterpart.
| Parameter | Description |
|---|---|
lawpath, required | Which law the section number belongs to. One of: bns, bnss, bsa, ipc, crpc, iea. |
sectionpath, required | Such as 302, 498A, 103(1). |
curl
curl "https://api.dharun.dev/v1/law/ipc/302?utm_medium=docs"JavaScript
const response = await fetch("https://api.dharun.dev/v1/law/ipc/302?utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);Python
import requests
response = requests.get("https://api.dharun.dev/v1/law/ipc/302?utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
raise RuntimeError(body["error"]["message"])
print(body["data"])Try it here
Change the values and send the request from your browser. Needs JavaScript.
Response, with lists and long text shortened
{
"data": [
{
"law": "bns",
"section": "103(1)",
"title": "Punishment for murder",
"old_law": "ipc",
"old_section": "302",
"new_provision": false,
"reference": "BNS 103(1)",
"old_reference": "IPC 302"
}
],
"meta": {
"total": 1,
"source": {
"name": "Correspondence tables of the new criminal laws (BNS-IPC, BNSS-CrPC, BSA-IEA)",
"url": "https://www.keralaprisons.gov.in/userfiles/act-and-rules/comparison_summary_BNS_to_IPC.pdf",
"licence": "Section correspondence and the Acts' section titles (facts and statute text); the tables' summaries are not used",
"version": "BNS 3ad875b6, BNSS aa3e4914, BSA 7693f293 (SHA-256 of the PDFs)",
"retrieved": "2026-11-11",
"attribution": "Section correspondence from the comparison summaries of the Bureau of Police Research and Development (CAPT Bhopal). Check the Acts as published in the Gazette …"
},
"note": "From the Bureau of Police Research and Development's correspondence tables. A section of the old law can be spread over several new ones, and the reverse. The n…"
}
}Search section titles
GET/v1/law/{law}
The new law's sections whose titles contain the words (an old law's name searches its replacement), at most 50.
| Parameter | Description |
|---|---|
lawpath, required | Which law. One of: bns, bnss, bsa, ipc, crpc, iea. |
qquery, required | 3 to 100 characters, such as cheating or bail. |
curl
curl "https://api.dharun.dev/v1/law/bns?q=murder&utm_medium=docs"JavaScript
const response = await fetch("https://api.dharun.dev/v1/law/bns?q=murder&utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);Python
import requests
response = requests.get("https://api.dharun.dev/v1/law/bns?q=murder&utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
raise RuntimeError(body["error"]["message"])
print(body["data"])Try it here
Change the values and send the request from your browser. Needs JavaScript.
Response, with lists and long text shortened
{
"data": [
{
"law": "bns",
"section": "87",
"title": "Kidnapping or abducting in order to murder or for ransom, etc",
"old_law": "ipc",
"old_section": "366",
"new_provision": false,
"reference": "BNS 87",
"old_reference": "IPC 366"
},
{
"law": "bns",
"section": "101",
"title": "Murder",
"old_law": "ipc",
"old_section": "300",
"new_provision": false,
"reference": "BNS 101",
"old_reference": "IPC 300"
},
{
"law": "bns",
"section": "103(1)",
"title": "Punishment for murder",
"old_law": "ipc",
"old_section": "302",
"new_provision": false,
"reference": "BNS 103(1)",
"old_reference": "IPC 302"
}
],
"meta": {
"total": 9,
"source": {
"name": "Correspondence tables of the new criminal laws (BNS-IPC, BNSS-CrPC, BSA-IEA)",
"url": "https://www.keralaprisons.gov.in/userfiles/act-and-rules/comparison_summary_BNS_to_IPC.pdf",
"licence": "Section correspondence and the Acts' section titles (facts and statute text); the tables' summaries are not used",
"version": "BNS 3ad875b6, BNSS aa3e4914, BSA 7693f293 (SHA-256 of the PDFs)",
"retrieved": "2026-11-11",
"attribution": "Section correspondence from the comparison summaries of the Bureau of Police Research and Development (CAPT Bhopal). Check the Acts as published in the Gazette …"
},
"note": "Titles of the Bharatiya Nyaya Sanhita, 2023 that contain the words, at most 50. From the Bureau of Police Research and Development's correspondence tables. A se…"
}
}Data source
Correspondence tables of the new criminal laws (BNS-IPC, BNSS-CrPC, BSA-IEA), BNS 3ad875b6, BNSS aa3e4914, BSA 7693f293 (SHA-256 of the PDFs). Retrieved 2026-11-11. Licence: Section correspondence and the Acts' section titles (facts and statute text); the tables' summaries are not used. Section correspondence from the comparison summaries of the Bureau of Police Research and Development (CAPT Bhopal). Check the Acts as published in the Gazette before relying on a section.
Using an AI assistant? Connect the MCP server and it can call this API by itself. Want every endpoint on one bench? Open the playground.