curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/{act_id}/cited-by \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/{act_id}/cited-by"
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}/cited-by', 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}/cited-by"
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_17068",
"title": "The Factories Act, 1948",
"citation": "The Factories Act, 1948",
"citers": [
{
"actId": "INC_597400",
"title": "The Tamil Nadu Lifts and Escalators Rules,1997",
"citation": "The Tamil Nadu Lifts and Escalators Rules,1997, s. 3",
"sectionNumber": "3",
"sectionTitle": "Documents to be enclosed herewith along with renewal application:"
},
{
"actId": "IND_state_12592",
"title": "The C.G. SHOPS & ESTABLISHMENTS ACT, 1958",
"citation": "The C.G. SHOPS & ESTABLISHMENTS ACT, 1958, s. 3",
"sectionNumber": "3",
"sectionTitle": "Act not applicable to certain persons and establishment — (1) Nothing in this Act"
}
],
"total": 884,
"totalIsExact": true,
"returned": 3,
"page": 1,
"pageSize": 3,
"hasMore": true,
"truncated": true,
"matchBasis": "publisher_title",
"note": "Edges are matched on the act's TITLE as the publisher wrote it, because that is what the corpus stores. A citing document that spelled the title differently is not found, and the publisher's own line breaks make this measurable: one act can appear as two dist…",
"meta": {
"processingTimeMs": 1390.7,
"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": "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>"
]
}What points at this act
Inbound citations: provisions elsewhere in the corpus that name this act.
Cost: 2 credits. A confident “nothing cites this” is the answer and is charged.
🔴 Matched on the act’s TITLE, not on an identifier, because that is what
the corpus stores. A citing document that wrote the title differently is
missed, and the publisher’s own line breaks make that measurable. Read
matchBasis and treat the result as a floor rather than a complete set.
A foundational act can be cited by thousands of provisions, so the answer is
PAGED with page + pageSize, the same as the rest of this API.
total is the number of distinct citing PROVISIONS across all pages, not the
size of the page you were served (returned) and not the number of matching
passages: one provision is stored as many passages, so total is the smaller
number. totalIsExact goes false only if the corpus scan behind that count hits
its ceiling, which no act in the corpus currently reaches.
curl --request GET \
--url https://api.vaquill.ai/api/v1/in/acts/{act_id}/cited-by \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/api/v1/in/acts/{act_id}/cited-by"
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}/cited-by', 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}/cited-by"
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_17068",
"title": "The Factories Act, 1948",
"citation": "The Factories Act, 1948",
"citers": [
{
"actId": "INC_597400",
"title": "The Tamil Nadu Lifts and Escalators Rules,1997",
"citation": "The Tamil Nadu Lifts and Escalators Rules,1997, s. 3",
"sectionNumber": "3",
"sectionTitle": "Documents to be enclosed herewith along with renewal application:"
},
{
"actId": "IND_state_12592",
"title": "The C.G. SHOPS & ESTABLISHMENTS ACT, 1958",
"citation": "The C.G. SHOPS & ESTABLISHMENTS ACT, 1958, s. 3",
"sectionNumber": "3",
"sectionTitle": "Act not applicable to certain persons and establishment — (1) Nothing in this Act"
}
],
"total": 884,
"totalIsExact": true,
"returned": 3,
"page": 1,
"pageSize": 3,
"hasMore": true,
"truncated": true,
"matchBasis": "publisher_title",
"note": "Edges are matched on the act's TITLE as the publisher wrote it, because that is what the corpus stores. A citing document that spelled the title differently is not found, and the publisher's own line breaks make this measurable: one act can appear as two dist…",
"meta": {
"processingTimeMs": 1390.7,
"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": "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_17068"
Query Parameters
1-based page number.
x >= 11
Rows per page (1-100). Defaults to 25.
1 <= x <= 10025
DEPRECATED alias for pageSize, kept working for clients written against the original shape. Send one or the other, not both.
1 <= x <= 10025
Response
Successful Response
Distinct citing PROVISIONS across all pages, not rows on this page (that is returned) and not matching passages. One provision can be stored as many passages, so this is always the smaller of the two.
False when the corpus scan behind total hit its ceiling, which makes total a floor rather than a count. The ceiling sits above the largest citing set in the corpus, so this is true today.
Rows in citers on THIS page.
1-based page this response answers.
Rows per page requested.
True when a further page of citing provisions exists.
DEPRECATED, kept so an existing client does not break. True when hasMore is true or totalIsExact is false. Read those two instead: this one field cannot tell 'there is a page 2' apart from 'we stopped counting'.
publisher_title: edges are matched on the act's title as the publisher wrote it, so treat the result as a floor.
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?

