curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/resolve \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/resolve"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.vaquill.ai/api/v1/in/acts/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaquill.ai/api/v1/in/acts/resolve"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"results": [
{
"input": "u/s 302 IPC",
"status": "ambiguous",
"candidates": [
{
"actId": "IND_central_20062",
"citation": "The Bharatiya Nyaya Sanhita, 2023, s. 302",
"title": "The Bharatiya Nyaya Sanhita, 2023",
"sectionNumber": "302",
"sectionTitle": "Uttering words, etc., with deliberate intent to wound religious feelings of any person",
"year": 2023,
"actStatus": "in_force",
"category": "central",
"state": "central"
},
{
"actId": "IND_REP_659_1860",
"citation": "The Indian Penal Code, 45 of 1860 (Rep., Act 45 of 2023), s. 302",
"title": "The Indian Penal Code, 45 of 1860 (Rep., Act 45 of 2023)",
"sectionNumber": "302",
"sectionTitle": "Punishment for murder . — Whoever commits murder shall be punished with death, or 1[imprisonment for life], and shall also be liable to fine",
"year": 1860,
"actStatus": "in_force",
"category": "central",
"state": "central",
"note": "Replaced by the Bharatiya Nyaya Sanhita, 2023 with effect from 1 July 2024, and still governs offences committed before that date."
}
],
"reason": "This citation matches 2 provisions across 2 enactments, and picking one would be a guess. Both the pre-2024 code and its 2023 replacement are live law for conduct on either side of 1 July 2024; send `asAtDate` to narrow. Send `state` or the act's year to narr…",
"parsed": {
"unit": "section",
"section": "302",
"subProvisions": [],
"actToken": "IPC",
"pinpoint": "302"
},
"duplicatesCollapsed": 2
},
{
"input": "Art. 21 Constitution",
"status": "resolved",
"candidates": [
{
"actId": "INC_492360",
"citation": "The Constitution of India, 1950, s. 21",
"title": "The Constitution of India",
"sectionNumber": "21",
"sectionTitle": "No person shall be deprived of his life or personal\nliberty except according to procedure established by law.\n\nTHE CONSTITUTION OF INDIA\n\n(Part III",
"year": 1950,
"actStatus": "in_force",
"category": "state",
"state": "andaman-and-nicobar-islands",
"note": "Has no act number, and is addressed by Article rather than section."
}
],
"parsed": {
"unit": "article",
"section": "21",
"subProvisions": [],
"actToken": "Constitution",
"pinpoint": "21"
},
"duplicatesCollapsed": 2
}
],
"count": 2,
"resolvedCount": 1,
"meta": {
"processingTimeMs": 865.1,
"creditsConsumed": 4
}
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}Resolve a citation to a provision
Turn a citation a lawyer would type into the provision it names.
Cost: 2 credits. A malformed citation is a 422 and is NOT charged. Every
other outcome is, including not_found: a confident negative is the answer.
Accepts what Indian practice actually writes, not what a style guide prescribes.
Three published standards exist and they disagree about element order, while the
most common real form, u/s 302 IPC, appears in none of them. So order does not
matter, and all of these work:
u/s 302 IPC Section 302 of the Indian Penal Code, 1860 s.302 IPC S. 376(2)(g), IPC clause (a) of sub-section (1) of section 302 IPC O. 39 R. 1 CPC Art. 21 of the Constitution Regulation 24 of the SEBI (LODR) Regulations, 2015 Maharashtra Act No. LXXVII of 2018
🔴 Read status before reading candidates. ambiguous is a real answer
and it is charged, because narrowing a citation to two named enactments is the
work. The commonest cause is the 2023 recodification: after 1 July 2024,
s. 302 names both IPC 302 (murder) and BNS 302 (uttering words to wound
religious feelings), while BNS 103 is murder. Both codes are live law
simultaneously for the lifetime of pending trials, so this endpoint will not
choose for you. Send asAtDate and it will.
r/w (“read with”) is split into separate citations and each is resolved.
curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/resolve \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/resolve"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.vaquill.ai/api/v1/in/acts/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaquill.ai/api/v1/in/acts/resolve"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"results": [
{
"input": "u/s 302 IPC",
"status": "ambiguous",
"candidates": [
{
"actId": "IND_central_20062",
"citation": "The Bharatiya Nyaya Sanhita, 2023, s. 302",
"title": "The Bharatiya Nyaya Sanhita, 2023",
"sectionNumber": "302",
"sectionTitle": "Uttering words, etc., with deliberate intent to wound religious feelings of any person",
"year": 2023,
"actStatus": "in_force",
"category": "central",
"state": "central"
},
{
"actId": "IND_REP_659_1860",
"citation": "The Indian Penal Code, 45 of 1860 (Rep., Act 45 of 2023), s. 302",
"title": "The Indian Penal Code, 45 of 1860 (Rep., Act 45 of 2023)",
"sectionNumber": "302",
"sectionTitle": "Punishment for murder . — Whoever commits murder shall be punished with death, or 1[imprisonment for life], and shall also be liable to fine",
"year": 1860,
"actStatus": "in_force",
"category": "central",
"state": "central",
"note": "Replaced by the Bharatiya Nyaya Sanhita, 2023 with effect from 1 July 2024, and still governs offences committed before that date."
}
],
"reason": "This citation matches 2 provisions across 2 enactments, and picking one would be a guess. Both the pre-2024 code and its 2023 replacement are live law for conduct on either side of 1 July 2024; send `asAtDate` to narrow. Send `state` or the act's year to narr…",
"parsed": {
"unit": "section",
"section": "302",
"subProvisions": [],
"actToken": "IPC",
"pinpoint": "302"
},
"duplicatesCollapsed": 2
},
{
"input": "Art. 21 Constitution",
"status": "resolved",
"candidates": [
{
"actId": "INC_492360",
"citation": "The Constitution of India, 1950, s. 21",
"title": "The Constitution of India",
"sectionNumber": "21",
"sectionTitle": "No person shall be deprived of his life or personal\nliberty except according to procedure established by law.\n\nTHE CONSTITUTION OF INDIA\n\n(Part III",
"year": 1950,
"actStatus": "in_force",
"category": "state",
"state": "andaman-and-nicobar-islands",
"note": "Has no act number, and is addressed by Article rather than section."
}
],
"parsed": {
"unit": "article",
"section": "21",
"subProvisions": [],
"actToken": "Constitution",
"pinpoint": "21"
},
"duplicatesCollapsed": 2
}
],
"count": 2,
"resolvedCount": 1,
"meta": {
"processingTimeMs": 865.1,
"creditsConsumed": 4
}
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}Authorizations
API key issued from the developer dashboard. Pass as Authorization: Bearer vq_key_...
Query Parameters
One citation string.
2 - 200"u/s 302 IPC"
Narrow to one jurisdiction. Required for a State-universal title, where the same short title names a different act in each State.
andaman-and-nicobar-islands, andaman-nicobar, andhra-pradesh, arunachal-pradesh, assam, bihar, central, chandigarh, chhattisgarh, dadra-and-nagar-haveli-and-daman-and-diu, dadra-nagar-haveli, delhi, goa, gujarat, haryana, himachal-pradesh, jammu-and-kashmir, jammu-kashmir, jharkhand, karnataka, kerala, ladakh, lakshadweep, madhya-pradesh, maharashtra, manipur, meghalaya, mizoram, nagaland, odisha, puducherry, punjab, rajasthan, sikkim, tamil-nadu, telangana, tripura, uttar-pradesh, uttarakhand, west-bengal "maharashtra"
The date the conduct or document belongs to, as YYYY-MM-DD. This is how a caller says which side of the 2023 recodification they mean: without it, a criminal section number resolves to BOTH the old code and its replacement, because both are live law.
"2019-05-01"
Was this page helpful?

