curl --request POST \
--url https://api.vaquill.ai/api/v1/in/acts/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "assessment of a registered dealer"
}
'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/search"
payload = { "query": "assessment of a registered dealer" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'assessment of a registered dealer'})
};
fetch('https://api.vaquill.ai/api/v1/in/acts/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vaquill.ai/api/v1/in/acts/search"
payload := strings.NewReader("{\n \"query\": \"assessment of a registered dealer\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"results": [
{
"actId": "IND_state_20326",
"title": "The Maharashtra Value Added Tax Act, 2002.",
"sectionNumber": "23",
"sectionTitle": "Assessment",
"chapter": "V",
"chapterTitle": "RETURNS AND ASSESSMENT, ETC.",
"year": 2002,
"category": "state",
"state": "maharashtra",
"department": "Finance Department",
"jurisdiction": "state",
"actStatus": "in_force",
"provisionType": "overriding",
"legalSubject": [
"tax_law"
],
"content": "Act: The Maharashtra Value Added Tax Act, 2002. (Act 9 of 2002) | India | State | In Force\nChapter V: RETURNS AND ASSESSMENT, ETC. | Section 23: Assessment\n\n( _2_ )[1] [Where the return in respect of any period] is filed by a registered dealer, by the prescri…",
"enactmentDate": "9-Mar-2005",
"pdfUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.pdf",
"textUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.normalized.txt",
"sourceUrl": "https://indiacode.gov.in/handle/123456789/568111",
"relevanceScore": 0.8555,
"citation": {
"citation": "The Maharashtra Value Added Tax Act, 2002., s. 23",
"citationShort": "Maharashtra Value Added Tax Act, 2002., s. 23",
"displayPath": "The Maharashtra Value Added Tax Act, 2002. / Chapter V. RETURNS AND ASSESSMENT, ETC. / s. 23",
"breadcrumb": [
{
"type": "chapter",
"num": "V",
"label": "Chapter V",
"name": "RETURNS AND ASSESSMENT, ETC."
}
]
}
},
{
"actId": "IND_state_20326",
"title": "The Maharashtra Value Added Tax Act, 2002.",
"sectionNumber": "20",
"sectionTitle": "Returns and self-assessment",
"chapter": "V",
"chapterTitle": "RETURNS AND ASSESSMENT, ETC.",
"year": 2002,
"category": "state",
"state": "maharashtra",
"department": "Finance Department",
"jurisdiction": "state",
"actStatus": "in_force",
"provisionType": "overriding",
"legalSubject": [
"tax_law"
],
"content": "Act: The Maharashtra Value Added Tax Act, 2002. (Act 9 of 2002) | India | State | In Force\nChapter V: RETURNS AND ASSESSMENT, ETC. | Section 20: Returns and self-assessment\n\nCHAPTER V\n\nRETURNS AND ASSESSMENT, ETC.\n\n> 3[20. Returns and self-assessment.— ( _1_ …",
"enactmentDate": "9-Mar-2005",
"pdfUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.pdf",
"textUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.normalized.txt",
"sourceUrl": "https://indiacode.gov.in/handle/123456789/568111",
"relevanceScore": 0.7734,
"citation": {
"citation": "The Maharashtra Value Added Tax Act, 2002., s. 20",
"citationShort": "Maharashtra Value Added Tax Act, 2002., s. 20",
"displayPath": "The Maharashtra Value Added Tax Act, 2002. / Part. RETURNS AND ASSESSMENT, ETC. / Chapter V. RETURNS AND ASSESSMENT, ETC. / s. 20",
"breadcrumb": [
{
"type": "part",
"label": "Part",
"name": "RETURNS AND ASSESSMENT, ETC."
},
{
"type": "chapter",
"num": "V",
"label": "Chapter V",
"name": "RETURNS AND ASSESSMENT, ETC."
}
]
}
}
],
"totalReturned": 3
},
"meta": {
"processingTimeMs": 3296,
"creditsConsumed": 2,
"creditsRemaining": 86761,
"page": 1,
"pageSize": 3,
"total": 79320,
"totalPages": 34
}
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}{
"detail": "Insufficient API credits."
}Search Indian legislation
Search 23,000+ Indian acts, regulations, and legislation.
Authentication: API key via Authorization: Bearer vq_key_...
Cost: 2 credits
Returns relevant act sections with full metadata: category, state, department, provision type, legal subject, acts referenced, enactment date, and more. Filter by category (central, state, regulatory), state, department, and year range.
curl --request POST \
--url https://api.vaquill.ai/api/v1/in/acts/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "assessment of a registered dealer"
}
'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/search"
payload = { "query": "assessment of a registered dealer" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'assessment of a registered dealer'})
};
fetch('https://api.vaquill.ai/api/v1/in/acts/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vaquill.ai/api/v1/in/acts/search"
payload := strings.NewReader("{\n \"query\": \"assessment of a registered dealer\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"results": [
{
"actId": "IND_state_20326",
"title": "The Maharashtra Value Added Tax Act, 2002.",
"sectionNumber": "23",
"sectionTitle": "Assessment",
"chapter": "V",
"chapterTitle": "RETURNS AND ASSESSMENT, ETC.",
"year": 2002,
"category": "state",
"state": "maharashtra",
"department": "Finance Department",
"jurisdiction": "state",
"actStatus": "in_force",
"provisionType": "overriding",
"legalSubject": [
"tax_law"
],
"content": "Act: The Maharashtra Value Added Tax Act, 2002. (Act 9 of 2002) | India | State | In Force\nChapter V: RETURNS AND ASSESSMENT, ETC. | Section 23: Assessment\n\n( _2_ )[1] [Where the return in respect of any period] is filed by a registered dealer, by the prescri…",
"enactmentDate": "9-Mar-2005",
"pdfUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.pdf",
"textUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.normalized.txt",
"sourceUrl": "https://indiacode.gov.in/handle/123456789/568111",
"relevanceScore": 0.8555,
"citation": {
"citation": "The Maharashtra Value Added Tax Act, 2002., s. 23",
"citationShort": "Maharashtra Value Added Tax Act, 2002., s. 23",
"displayPath": "The Maharashtra Value Added Tax Act, 2002. / Chapter V. RETURNS AND ASSESSMENT, ETC. / s. 23",
"breadcrumb": [
{
"type": "chapter",
"num": "V",
"label": "Chapter V",
"name": "RETURNS AND ASSESSMENT, ETC."
}
]
}
},
{
"actId": "IND_state_20326",
"title": "The Maharashtra Value Added Tax Act, 2002.",
"sectionNumber": "20",
"sectionTitle": "Returns and self-assessment",
"chapter": "V",
"chapterTitle": "RETURNS AND ASSESSMENT, ETC.",
"year": 2002,
"category": "state",
"state": "maharashtra",
"department": "Finance Department",
"jurisdiction": "state",
"actStatus": "in_force",
"provisionType": "overriding",
"legalSubject": [
"tax_law"
],
"content": "Act: The Maharashtra Value Added Tax Act, 2002. (Act 9 of 2002) | India | State | In Force\nChapter V: RETURNS AND ASSESSMENT, ETC. | Section 20: Returns and self-assessment\n\nCHAPTER V\n\nRETURNS AND ASSESSMENT, ETC.\n\n> 3[20. Returns and self-assessment.— ( _1_ …",
"enactmentDate": "9-Mar-2005",
"pdfUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.pdf",
"textUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.normalized.txt",
"sourceUrl": "https://indiacode.gov.in/handle/123456789/568111",
"relevanceScore": 0.7734,
"citation": {
"citation": "The Maharashtra Value Added Tax Act, 2002., s. 20",
"citationShort": "Maharashtra Value Added Tax Act, 2002., s. 20",
"displayPath": "The Maharashtra Value Added Tax Act, 2002. / Part. RETURNS AND ASSESSMENT, ETC. / Chapter V. RETURNS AND ASSESSMENT, ETC. / s. 20",
"breadcrumb": [
{
"type": "part",
"label": "Part",
"name": "RETURNS AND ASSESSMENT, ETC."
},
{
"type": "chapter",
"num": "V",
"label": "Chapter V",
"name": "RETURNS AND ASSESSMENT, ETC."
}
]
}
}
],
"totalReturned": 3
},
"meta": {
"processingTimeMs": 3296,
"creditsConsumed": 2,
"creditsRemaining": 86761,
"page": 1,
"pageSize": 3,
"total": 79320,
"totalPages": 34
}
}{
"detail": "Insufficient API credits."
}{
"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_...
Body
Search Indian legislation by semantic query.
Search query.
2 - 1000"assessment of a registered dealer"
Jurisdictional class. repealed and spent are accepted for backward compatibility and resolve against actStatus instead.
central, state, regulatory, repealed, spent "central"
Jurisdiction slug. central is a value here, for Union legislation. Live counts per jurisdiction are on GET /acts/coverage.
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"
Issuing body. Deliberately NOT an enumerated list: this field holds 943 distinct values and mixes clean regulator slugs (sebi, rbi, moefcc) with free-text state department names (Law Department). Read GET /acts/filters for the values with the most data behind them.
"sebi"
Filter by the publisher's lifecycle status: in_force, repealed, superseded, spent. Accepts one value or a list. This is the publisher's claim, not our verdict: see GET /acts/{actId}/status.
in_force, repealed, superseded, spent "repealed"
Drop provisions whose act the publisher records as repealed or spent. Off by default, because repealed law is still law that was in force and is routinely the thing being researched.
true
True for subordinate instruments only (rules, notifications, circulars, orders); false for principal acts only. Omit for both.
false
Filter by what the provision DOES: definitional, prohibitory, procedural, penal, overriding and others. Accepts a value or a list.
mandatory, general, prohibitory, overriding, discretionary, declaratory "mandatory"
Filter by structural kind: section, sub_section, definitions, preamble, schedule, short_title.
amendment_provision, article, body, chapter_heading, definition_clause, definitions, part_heading, preamble, schedule, section, short_title, sub_section "definitions"
Filter by subject area, e.g. tax_law, criminal_law, environmental_law, company_law.
administrative_law, banking_finance, civil_procedure, constitutional_law, corporate_law, criminal_law, environmental_law, family_law, general, information_technology, intellectual_property, labour_law, property_law, tax_law "tax_law"
How query terms must appear in the provision text. any (the default) leaves hybrid ranking to do the work; all keeps only provisions containing EVERY query term; phrase keeps only those containing the exact phrase.
⚠️ It narrows the ranked candidate pool rather than re-querying the index, so a phrase search returns phrase matches WITHIN the top candidates, not every phrase match in the corpus. For an exhaustive phrase search, narrow with the structured filters first.
any, all, phrase "phrase"
1-based page number. page * pageSize may not exceed 100; narrow the query with filters to reach deeper matches.
x >= 1Minimum year (inclusive)
2015
Maximum year (inclusive)
2024
Filter by exact section number. The publisher's own numbering, which is not an integer: 498A, 376DA and 2-A all occur, and the alphabetic suffix is part of the number rather than a sub-provision.
"498A"
Filter by words in the act's title. Each word must appear, so Bharatiya Nyaya narrows to the Sanhita.
"Bharatiya Nyaya Sanhita"
Results per page (1-50)
1 <= x <= 50Was this page helpful?

