curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/{act_id}/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/{act_id}/status"
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}/status', 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}/status"
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))
}{
"actId": "IND_state_20326",
"title": "The Maharashtra Value Added Tax Act, 2002.",
"citation": {
"citation": "The Maharashtra Value Added Tax Act, 2002.",
"citationShort": "Maharashtra Value Added Tax Act, 2002."
},
"goodLawStatus": "good_law",
"goodLawReason": "The publisher records this act as in force and no repeal is on the record. We have not independently verified it.",
"publisherStatus": "in_force",
"servedStatus": "served",
"isSubordinate": false,
"enactmentDate": "2005-03-09",
"enactmentDateRaw": "9-Mar-2005",
"lastAmendedYear": 2019,
"subordinateCount": 0,
"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": 282.3,
"creditsConsumed": 1
}
}{
"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": "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>"
]
}Is this act still law, and who says so
Everything we know about an act’s standing, kept in three separate vocabularies that are deliberately never collapsed into one verdict.
Cost: 1 credit.
publisherStatusisact_statusexactly as India Code records it. Their word.servedStatusis ours: whether this API answers for the act, or has retired it as withdrawn by the publisher or as a duplicate of one we kept.repealClaimis the publisher’s repeal record WITH its source, and with the caveat that we do not verify whether the repealing instrument was itself brought into force.
That last distinction is not pedantry. India Code lists the Industrial Disputes Act, 1947 as repealed by Act 37 of 2020, the Industrial Relations Code, which has never been commenced. Serving that as flatly “repealed” would be wrong, so this endpoint does not.
A retired act answers here with servedStatus: retired and the reason, rather
than 404ing, because “we deliberately withdrew this” is a more useful answer
than “no such thing”.
curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/{act_id}/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/{act_id}/status"
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}/status', 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}/status"
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))
}{
"actId": "IND_state_20326",
"title": "The Maharashtra Value Added Tax Act, 2002.",
"citation": {
"citation": "The Maharashtra Value Added Tax Act, 2002.",
"citationShort": "Maharashtra Value Added Tax Act, 2002."
},
"goodLawStatus": "good_law",
"goodLawReason": "The publisher records this act as in force and no repeal is on the record. We have not independently verified it.",
"publisherStatus": "in_force",
"servedStatus": "served",
"isSubordinate": false,
"enactmentDate": "2005-03-09",
"enactmentDateRaw": "9-Mar-2005",
"lastAmendedYear": 2019,
"subordinateCount": 0,
"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": 282.3,
"creditsConsumed": 1
}
}{
"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": "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>"
]
}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"
Response
Successful Response
How to cite the thing this response is about.
Built from the publisher's own title, so where that title carries a defect
so does the citation: some titles end in a period, which reads as
... Act., s. 3, and some carry no year at all. Those are recorded defects
rather than reasons to withhold the field. GET /acts/coverage publishes
how many served acts carry a citation, as depth.actsWithCitation.
Show child attributes
Show child attributes
served or retired. OUR word about whether this API answers for it.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Our DERIVED verdict: good_law, not_good_law or unknown. Conservative by construction -- an unverified repeal claim maps to unknown, NEVER to not_good_law, because we do not check whether a repealing instrument was brought into force and at least one repeal on this record involves an Act that never commenced. One field to filter on; the three raw fields below remain if you want to judge it yourself.
"good_law"
Why the verdict above is what it is. Always present.
act_status exactly as the publisher records it. Their word, not our verdict.
The date the act was enacted, as YYYY-MM-DD, or null when the stored value is not a date we can state without guessing. 🔴 This is NOT the year in the act's short title: 'The Biswa Bangla Biswabidyalay Act, 2017' was enacted 2018-01-09, and on a subordinate instrument year is often the PARENT act's year. Use year for the title year and this field for the date.
"2018-01-09"
What the publisher stored, present only when it differs from enactmentDate. When enactmentDate is null this carries the reason it is null, by showing you the value: a bare year ('1963'), an era year ('15-Oct-1349', from an act titled in the Fasli calendar), or a corrupt one ('0032-03-05').
"9-Mar-2005"
The date of assent as YYYY-MM-DD, or null when the stored value is not a date. Some records store an act NUMBER here ('15 of 1992'); those return null with the value in dateOfAssentRaw.
"1952-09-01"
What the publisher stored, when it differs from dateOfAssent.
"15 of 1992"
Acts this one repeals, as the publisher names them. The inverse of repealClaim, and subject to the same caveat: it is their record, and we do not verify commencement.
A later consolidation that replaced this version, where one is recorded.
Subordinate instruments the publisher records under this act.
The publisher's claim about repeal, with our caveat attached.
Never flattened into a verdict. India Code lists the Industrial Disputes Act, 1947 as repealed by Act 37 of 2020, the Industrial Relations Code, which has never been brought into force. Serving that as flatly "repealed" would be wrong.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
How your act_id or section number was matched, when it did not match exactly as sent. Null when it did.
Show child attributes
Show child attributes
Was this page helpful?

