curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/{act_id}/sections/{section_number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/{act_id}/sections/{section_number}"
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/{act_id}/sections/{section_number}', 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/{act_id}/sections/{section_number}"
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))
}{
"section": {
"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",
"ministry": "Govt of Maharashtra",
"actStatus": "in_force",
"sectionStatus": "in_force",
"provisionType": "overriding",
"sectionType": "section",
"legalSubject": [
"tax_law"
],
"isSubordinate": false,
"goodLawStatus": "good_law",
"amendmentCount": 44,
"lastAmendedYear": 2019,
"lastAmendedDate": "2019-03-06",
"amendmentYears": [
2005,
2006
],
"sectionsReferenced": [
"21",
"20"
],
"wordCount": 4449,
"shape": {
"hasProviso": true,
"hasExplanation": false,
"hasIllustration": false,
"hasNonObstante": true,
"hasSavingClause": false,
"hasPenalty": false
},
"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."
}
]
},
"provenance": {
"sourceUrl": "https://indiacode.gov.in/handle/123456789/568111",
"textUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.normalized.txt",
"pdfUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.pdf"
}
},
"meta": {
"processingTimeMs": 321.5,
"creditsConsumed": 2
}
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}One provision, as a resource
A single provision with its citation, its position in the act, the structural features its text carries, and what it points at.
Cost: 2 credits.
This does not return the provision’s text. GET /acts/{actId}/sections/{n}/body
does, and is priced separately because it reads the act document.
wordCount is summed across every passage of the provision. actsReferenced
is whitespace-normalised before deduplication, because the publisher’s line
breaks otherwise make one cited act look like two.
curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/{act_id}/sections/{section_number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/{act_id}/sections/{section_number}"
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/{act_id}/sections/{section_number}', 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/{act_id}/sections/{section_number}"
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))
}{
"section": {
"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",
"ministry": "Govt of Maharashtra",
"actStatus": "in_force",
"sectionStatus": "in_force",
"provisionType": "overriding",
"sectionType": "section",
"legalSubject": [
"tax_law"
],
"isSubordinate": false,
"goodLawStatus": "good_law",
"amendmentCount": 44,
"lastAmendedYear": 2019,
"lastAmendedDate": "2019-03-06",
"amendmentYears": [
2005,
2006
],
"sectionsReferenced": [
"21",
"20"
],
"wordCount": 4449,
"shape": {
"hasProviso": true,
"hasExplanation": false,
"hasIllustration": false,
"hasNonObstante": true,
"hasSavingClause": false,
"hasPenalty": false
},
"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."
}
]
},
"provenance": {
"sourceUrl": "https://indiacode.gov.in/handle/123456789/568111",
"textUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.normalized.txt",
"pdfUrl": "https://acts-india.vaquill.ai/IND_state_20326/act.pdf"
}
},
"meta": {
"processingTimeMs": 321.5,
"creditsConsumed": 2
}
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"detail": "Insufficient API credits.",
"errors": [
{
"loc": [
"body",
"corpusType"
],
"msg": "Input should be 'USC', 'CFR' or 'STATE'",
"type": "literal_error"
}
],
"code": "insufficient_credits",
"type": "https://www.vaquill.ai/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"requestId": "8d32789e-7b27-44f7-9523-424596e7a929",
"retryable": false,
"retryAfterSeconds": 30,
"actId": "USC_99_9999",
"reason": "not_in_registry",
"didYouMean": [
"<string>"
]
}Authorizations
API key issued from the developer dashboard. Pass as Authorization: Bearer vq_key_... (preferred).
Headers
Optional. 16 to 255 visible ASCII characters (a UUIDv4 is ideal). A retry with the same key and the same request replays the original 2xx response for 24 hours without charging again. The same key with a different request is rejected. Scope is the API key, method, path and body.
16 - 255^[\x21-\x7e]+$"3f9c2a1e-7b44-4d0a-9c1e-5a6b7c8d9e0f"
Path Parameters
Act identifier, as returned by /acts/search, /acts/list or /acts/resolve, e.g. IND_central_20062 (the Bharatiya Nyaya Sanhita, 2023). Surrounding whitespace, quotes, backticks, invisible characters, a trailing period and double percent-encoding are removed when the id as sent matches nothing; the response then carries resolvedFrom.
An act NAME or citation (Indian Penal Code, IPC, The Companies Act, 2013) is not resolved here. It returns 404 with reason: "act_name_or_citation" and suggestedRequest, the call that finds the id. A misspelt id returns 404 with the real ids in didYouMean.
1 - 200^[^/\\\x00-\x1f]+$"IND_state_20326"
Section number as the publisher writes it, e.g. 302 or 498A. Alphanumeric suffixes are part of the number, not a sub-provision: 498A is one section, not section 498 clause A.
When the number as sent matches nothing, common spellings are tried: a s. / Sec. / Section prefix, 498-A or 498 A or 498a for 498A, and a trailing sub-provision such as 302(1), which serves the whole section. A match is served only when exactly one stored number fits, and the response carries resolvedFrom. A miss returns 404 with reason and the act's nearest numbers in didYouMean.
1 - 40^[^/\\\x00-\x1f]{1,40}$"23"
Response
Successful Response
Was this page helpful?

