What the India corpus holds
curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/coverage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/coverage"
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/coverage', 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/coverage"
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))
}{
"data": {
"totals": {
"acts": 64179,
"actsRetired": 703,
"sections": 745970,
"passages": 2532537,
"measuredOn": "2026-09-06"
},
"depth": {
"actsWithText": 64179,
"actsWithAmendmentEvents": 1061,
"actsWithRepealClaim": 655,
"actsWithStructure": 16465,
"actsWithCitation": 64117,
"actsWithSourceUrl": 57316,
"actsClaimingAmendmentsWithoutEvents": 840
},
"byCategory": [
{
"value": "state",
"passages": 1219846
},
{
"value": "central",
"passages": 686388
}
],
"byJurisdiction": [
{
"code": "central",
"acts": 13514,
"sections": 176900,
"passages": 703310
},
{
"code": "maharashtra",
"acts": 2844,
"sections": 27163,
"passages": 79320
}
],
"categoryLegend": [
{
"value": "central",
"meaning": "Legislation of the Union Parliament, and central subordinate instruments made under it."
},
{
"value": "state",
"meaning": "Legislation of a State or Union Territory legislature, and state subordinate instruments. The `state` filter narrows within this."
}
],
"byRegulator": [
{
"value": "sebi",
"passages": 130384
},
{
"value": "moefcc",
"passages": 120426
}
],
"byStatus": [
{
"value": "in_force",
"passages": 2435254
},
{
"value": "repealed",
"passages": 93198
}
],
"caveats": {
"measuredOn": "2026-09-06",
"actCountsAreDated": "Act-level counts come from a full distinct-act scan run on 2026-09-06. Passage counts in this response are live. The two are measured differently on purpose and should not be divided into each other.",
"sectionsAreDistinctActSectionPairs": "`sections` counts distinct (act, section) pairs. It is NOT the passage count: a section spans about 3.4 passages, so dividing passages by sections is the only safe direction and multiplying is not.",
"amendmentCoverage": "Structured amendment events are held for 1061 acts. A further 840 acts carry a non-zero amendment count with no parseable footnote behind it; those return an empty event list and say so in their coverage block. Of 32808 records held, 17333 carry an effective …",
"textCurrency": "We serve the publisher's text as published. We do NOT apply amendments to it. Every amendment event carries an appliedStatus saying so, so currency never has to be inferred from silence.",
"repealStatusIsAClaim": "act_status and repealedBy are the publisher's claims. We do not verify that a repealing Act was brought into force, and at least one repeal on record involves an Act that never commenced.",
"retiredActsAreNotDeleted": "703 acts are retired from the served corpus, either withdrawn by the publisher or duplicates of an act we kept. Nothing was deleted."
}
},
"meta": {
"processingTimeMs": 1853.1,
"creditsConsumed": 0
}
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}What the India corpus holds
Describe the corpus behind this API: how many acts and provisions it holds, how they break down by jurisdiction, regulator and status, and how DEEP that holding goes.
Cost: free.
Read the depth block before building on this API. It answers four independent
questions, because “we hold the act” and “we hold what amended it” are different
claims and only one of them is true for most of the corpus:
actsWithTextis every act we serve;actsWithAmendmentEventsis the much smaller set for which we hold parsed amendment records;actsClaimingAmendmentsWithoutEventsis the known gap between them, published so that an empty amendment list is legible as a gap rather than as a claim that nothing ever changed.
Two different kinds of count appear here and they are labelled. passages in
the breakdown lists is faceted live and exact right now. The act-level numbers
in totals and depth come from a full distinct-act scan, and measuredOn
says when it ran. Do not divide one into the other.
GET
/
api
/
v1
/
in
/
acts
/
coverage
What the India corpus holds
curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/coverage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/coverage"
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/coverage', 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/coverage"
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))
}{
"data": {
"totals": {
"acts": 64179,
"actsRetired": 703,
"sections": 745970,
"passages": 2532537,
"measuredOn": "2026-09-06"
},
"depth": {
"actsWithText": 64179,
"actsWithAmendmentEvents": 1061,
"actsWithRepealClaim": 655,
"actsWithStructure": 16465,
"actsWithCitation": 64117,
"actsWithSourceUrl": 57316,
"actsClaimingAmendmentsWithoutEvents": 840
},
"byCategory": [
{
"value": "state",
"passages": 1219846
},
{
"value": "central",
"passages": 686388
}
],
"byJurisdiction": [
{
"code": "central",
"acts": 13514,
"sections": 176900,
"passages": 703310
},
{
"code": "maharashtra",
"acts": 2844,
"sections": 27163,
"passages": 79320
}
],
"categoryLegend": [
{
"value": "central",
"meaning": "Legislation of the Union Parliament, and central subordinate instruments made under it."
},
{
"value": "state",
"meaning": "Legislation of a State or Union Territory legislature, and state subordinate instruments. The `state` filter narrows within this."
}
],
"byRegulator": [
{
"value": "sebi",
"passages": 130384
},
{
"value": "moefcc",
"passages": 120426
}
],
"byStatus": [
{
"value": "in_force",
"passages": 2435254
},
{
"value": "repealed",
"passages": 93198
}
],
"caveats": {
"measuredOn": "2026-09-06",
"actCountsAreDated": "Act-level counts come from a full distinct-act scan run on 2026-09-06. Passage counts in this response are live. The two are measured differently on purpose and should not be divided into each other.",
"sectionsAreDistinctActSectionPairs": "`sections` counts distinct (act, section) pairs. It is NOT the passage count: a section spans about 3.4 passages, so dividing passages by sections is the only safe direction and multiplying is not.",
"amendmentCoverage": "Structured amendment events are held for 1061 acts. A further 840 acts carry a non-zero amendment count with no parseable footnote behind it; those return an empty event list and say so in their coverage block. Of 32808 records held, 17333 carry an effective …",
"textCurrency": "We serve the publisher's text as published. We do NOT apply amendments to it. Every amendment event carries an appliedStatus saying so, so currency never has to be inferred from silence.",
"repealStatusIsAClaim": "act_status and repealedBy are the publisher's claims. We do not verify that a repealing Act was brought into force, and at least one repeal on record involves an Act that never commenced.",
"retiredActsAreNotDeleted": "703 acts are retired from the served corpus, either withdrawn by the publisher or duplicates of an act we kept. Nothing was deleted."
}
},
"meta": {
"processingTimeMs": 1853.1,
"creditsConsumed": 0
}
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}Last modified on September 7, 2026
Was this page helpful?

