Resolve a citation to its section
Changed onResolve a Bluebook citation to the section it names, confirmed against the corpus, with an official source link. Pass it as cite: 42 U.S.C. 1983, 16 C.F.R. 444.1 or Del. Code Ann. tit. 13, 1301.
Cost: 2 credits per call, charged whether or not the citation resolves, because a confident "this citation does not resolve" is the answer you want when verifying a citation an LLM produced. Refunded on a failure and on a citation we could not read or that names no jurisdiction (missReason malformed or ambiguous_jurisdiction; retry the ambiguous one with state), where creditsConsumed is 0.
When the citation resolves, resolved is true and section carries the full metadata (the shape of /us/statutes/section/{actId}). When it does not, resolved is false and section is null: treat that as "unverified", not "current". matchLevel says when section is not the exact unit you cited (container, multiple, repaired) and missReason says why a citation did not resolve; both are described on their fields. A pinpoint (625 ILCS 5/11-601(c), 42 U.S.C. 1983(b)(2)) resolves to its parent section, is echoed in subsection and is located inside the section in pinpoint at no extra credits. Read pinpoint.matched first: a pinpoint the section does not contain is reported as matched: false with the units that do exist, never answered with the whole section. A state code container cited with its container word (8 Del. C. ch. 1, subch. VII) answers its first section with matchLevel: container.
A citation to a STATE session law (an act as enacted, for example CHAPTER 2025-12 or S.F.No. 1552) names no code section, so resolved stays false and section stays null. The law is described in sessionLaw, beside matchedCorpus: "session_law", with an href to read it under /us/session-laws, and enough to answer what it is and when it took effect without a second call: title, billNumber, approvedDate, effectiveFirst and effectiveLast (null when the publisher prints no effective date), enactmentOutcome and sourceUrl, the government publisher's own text. A citation naming several laws comes back ambiguous with every candidate and none chosen for you. A state scope applies to session laws; a corpusType scope excludes them. No extra charge, and a citation that resolves to a section is never checked against session laws. A citation that names no state is matched against every state's laws, so at most 25 of them are checked per call: the others carry no sessionLaw block, which says nothing about whether the law exists. Name the state, or send the rest in another call.
Bounded rows. A heavily amended section (26 U.S.C. 1) carries hundreds of references and a credit line of tens of thousands of characters. Each row keeps the first 50 items of every long list and the first 4,000 characters of history and committeeNote. A row that was cut carries responseBounds (truncated, and per field the total, what was returned and nextOffset); a row that was not cut omits it. The whole record is one call away: GET /us/statutes/section/{actId}?full=true.
Request
- Base URLhttps://api.vaquill.ai
- Auth
- HTTP bearer
- or API key in header X-API-Key
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
A Bluebook citation string, e.g. '42 U.S.C. 1983' or '16 C.F.R. 444.1'.
Optional jurisdiction to resolve WITHIN: a two-letter state code, e.g. tx, or federal for the U.S. Code, the C.F.R., federal rules and the U.S. Constitution. Some citation forms are shared: 8 CCR 1206-2 is Colorado and 22 CCR 76227 is California, and the acronym alone cannot say which. This is a constraint, not a hint -- a citation that names a different jurisdiction returns resolved: false rather than being forced into this one, and citationOutsideFilters says which section it names.
Optional corpus to resolve WITHIN: STATE (statutory text, federal or state), REGULATION (administrative codes), STATE_RULES (court rules), CONSTITUTION (constitutional text), STATE_CONSTITUTION (constitutional text; a synonym of CONSTITUTION here, since state is what separates the two). Narrows a citation whose form several corpora share; like state, a citation belonging to another corpus resolves to nothing instead.
Headers
Optional. 16 to 255 visible ASCII characters (a UUIDv4 works). Repeating the same request with the same key replays the original 2xx response for 24 hours without charging again. The same key on a different request is rejected. With the account's cacheQueryDerivedData retention setting off, no body is stored and a retry answers 409 idempotency_replay_unavailable, still without a second charge.
Response
The resolution verdict, with the section when resolved.
Example response
{
"section": {
"source": "sct",
"body": "(a) If within a reasonable time after written or oral notice...",
"bodyUnavailable": true,
"bodyUnavailableReason": "image_only_source",
"bodyNote": "fetch_failed",
"matchContexts": [
{
"text": "(a) An employer shall not retaliate against an employee who files a complaint",
"highlights": [
[
7,
15
],
[
26,
35
]
]
}
],
"renumberedTo": "self:4651",
"renumberedToLabel": "section 10105 of Title 34",
"transferredTo": "34:10105",
"transferredToLabel": "section 10105 of Title 34",
"issueDate": "1999-05-25",
"statutoryAuthority": [
{
"display": "15 U.S.C. 78o",
"section": "78o",
"title": 15,
"type": "usc"
}
],
"implementingRegulations": [
{
"cfrTitle": 17,
"display": "17 CFR Part 240",
"part": "240",
"partName": "General Rules"
}
],
"rescindedOn": "2016-07-01",
"pendingAdoptions": [
{
"agency": "Department of Financial Services",
"effectiveDate": "2026-09-23",
"idNo": "DFS-23-26-00013-A",
"issueDate": "2026-09-23",
"scope": "part"
}
],
"adoptedAfterCurrentThrough": true,
"responseBounds": {
"truncated": true,
"fields": [
{
"field": "publicLaws",
"unit": "items",
"total": 190,
"returned": 50,
"nextOffset": 50
}
]
},
"effectiveDate": "2002-11-25",
"effectiveDateRaw": "September 8, 1916",
"historyEffectiveDate": "2009-06-19",
"priorEffectiveDates": [
"2004-12-17",
"2012-11-01"
],
"pendingAmendments": [
{
"id": "FRULES_FRCP_R26_P2027",
"status": "approved_by_standing_committee",
"cycle": 2027,
"effectiveDate": "2027-12-01",
"commentPeriodEnd": "2026-02-16",
"sourceUrl": "https://www.uscourts.gov/rules-policies/pending-rules-and-forms-amendments",
"textComplete": true,
"commentDocketIds": [
"USC-RULES-CV-2025-0004"
]
}
],
"abstract": "This regulation extends time-limited tolerances for pesticides.",
"agencies": [
"Environmental Protection Agency"
],
"agencySlugs": [
"environmental-protection-agency"
],
"topics": [
"Environmental protection",
"Pesticides and pests"
],
"documentTypeLabel": "Rule",
"documentSubtype": "Proclamation",
"action": "Final rule.",
"president": "George W. Bush",
"signingDate": "2026-04-02",
"executiveOrderNumber": "14179",
"proclamationNumber": "10886",
"instrumentNumberSource": "derived_from_text",
"datesText": "This regulation is effective December 14, 2001.",
"frVolume": 66,
"frStartPage": 64768,
"frEndPage": 64775,
"wordCount": 6271,
"issuingAgency": "Pollution Control Board",
"adoptingCitations": [
"37 Ill. Reg. 16539"
],
"lawImplemented": "Section 4656.1, Public Resources Code",
"lastAmendedDate": "2013-10-04",
"amendmentNote": "Amended at 37 Ill. Reg. 16539, effective October 4, 2013",
"currencyYear": 2025,
"reviewDate": "11/1/2028",
"originalEnactmentDate": "1934-06-27",
"originalEnactmentDateRaw": "June 27, 1934",
"releaseDate": "2018-06-14",
"documentNumber": "21-CA-211066",
"caseName": "Dunn-Edwards Corp.",
"forum": "Administrative Proceeding",
"court": "U.S. District Court for the District of Massachusetts",
"relatedDocuments": [
"Consent Order",
"Stipulation"
],
"settlementAmount": "$16,500",
"requesters": [
"Preece, Inc."
],
"program": "Old-Age and Survivors Insurance",
"languageCode": "es",
"volume": 1,
"articleNumber": "1",
"articleName": "Declaration of Rights",
"ruleSetCode": "NDSUPCTADMINR",
"edition": "2025",
"relatedCitations": [
"RCW 28A.150.290"
],
"supersessionActions": {
"modifies": [
"Rev. Proc. 2011-47"
]
},
"subtitle": "11",
"subtitleName": "AIR QUALITY",
"publisherKey": "430000000310400000000000000000000",
"versionId": "11948",
"referencedShortTitles": [
"Driftnet Modernization and Bycatch Reduction Act"
],
"subjectNumber": "47",
"audience": "All Persons Engaged in Marketing",
"sourceCharStart": 263194,
"sourceCharEnd": 264198,
"matchSegment": "note",
"matchNoteYear": 1993,
"alternateCitations": [
"4 L.P.R.A. § 2077"
],
"expirationDate": "2029-03-01",
"expirationDateRaw": "03-01-2029",
"sourcePageStart": 114,
"sourcePageEnd": 114,
"displayLabel": "MPEP § 2165.03",
"publicationDate": "2001-12-14",
"topLevelTitle": "Title 9: Criminal",
"externalUrl": "https://www.mass.gov/regulations/240-CMR-200-licensure-of-cosmetologists",
"sourceUrl": "https://www.mass.gov/regulations/240-CMR-200-licensure-of-cosmetologists"
},
"citationOutsideFilters": {
"actId": "USC_T42_C21_S1983",
"citation": "42 U.S.C. § 1983 (2026)",
"title": "Civil action for deprivation of rights",
"state": "federal",
"corpusType": "USC",
"excludedBy": [
"state"
]
},
"sessionLaw": {
"status": "matched",
"sessionLawId": "SSL_MN_2025R_G_Y2025_C1",
"citation": "CHAPTER 1--S.F.No. 1552",
"jurisdiction": "mn",
"session": {
"code": "2025R",
"label": "2025 Regular Session",
"type": "regular",
"year": 2025
},
"textStatus": "held",
"title": "An act relating to agriculture; modifying financial reporting requirements for grain buyers; amending Minnesota Statutes 2024, section 223.17, subdivision 6.",
"billNumber": "S.F.No. 1552",
"approvedDate": "2025-03-17",
"effectiveFirst": "2025-09-01",
"effectiveLast": "2025-09-01",
"enactmentOutcome": "signed",
"sourceUrl": "https://www.revisor.mn.gov/laws/2025/0/Session+Law/Chapter/1/",
"href": "/api/v1/us/session-laws/SSL_MN_2025R_G_Y2025_C1",
"candidates": [
{
"sessionLawId": "SSL_MN_2025R_G_Y2025_C1",
"citation": "CHAPTER 1--S.F.No. 1552",
"jurisdiction": "mn",
"session": {
"code": "2025R",
"label": "2025 Regular Session",
"type": "regular",
"year": 2025
},
"textStatus": "held",
"title": "An act relating to agriculture; modifying financial reporting requirements for grain buyers; amending Minnesota Statutes 2024, section 223.17, subdivision 6.",
"billNumber": "S.F.No. 1552",
"approvedDate": "2025-03-17",
"effectiveFirst": "2025-09-01",
"effectiveLast": "2025-09-01",
"enactmentOutcome": "signed",
"sourceUrl": "https://www.revisor.mn.gov/laws/2025/0/Session+Law/Chapter/1/",
"href": "/api/v1/us/session-laws/SSL_MN_2025R_G_Y2025_C1"
}
]
},
"matchLevel": "container",
"container": {
"kind": "chapter",
"label": "U.S. Const. art. III",
"childCount": 12,
"children": [
{
"actId": "CONST_US_A3_S1",
"citation": "U.S. Const. art. III, § 1",
"status": "in_force"
}
]
},
"repair": {
"kind": "code_name",
"cited": "Jud. Ct. Acts Law",
"interpretedAs": "N.Y. Judiciary Law § 475",
"alternatives": [
{
"actId": "STATE_NY_FCT_S475",
"citation": "N.Y. Fam. Ct. Act § 475"
}
]
},
"registerReference": {
"citation": "36 Pa. Bull. 510",
"state": "il",
"kind": "page",
"ruleCount": 2
},
"pinpoint": {
"requested": "(c)(1)",
"path": [
"c",
"1"
],
"label": "(1)",
"level": "paragraph",
"inferred": true,
"matched": true,
"matchLevel": "exact",
"leadIn": [
{
"path": [
"c"
],
"label": "(c)",
"text": "Unless a different limit is established under this Chapter, the limit is:"
}
],
"children": [
{
"path": [
"c",
"1"
],
"label": "(1)",
"level": "paragraph",
"inferred": true
}
],
"siblings": {
"previous": "b",
"next": "d"
},
"charStart": 1204,
"charEnd": 1873,
"kind": "range",
"reason": "no_such_subsection",
"structure": {
"source": "artifact",
"quality": "verified",
"builder": "ilga_html",
"textSha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
}
},
"missReason": "ambiguous_jurisdiction",
"candidates": [
{
"state": "co",
"actId": "REG_CO_T8_S1206-2",
"citation": "8 CCR 1206-2"
}
],
"processingTimeMs": 240.5,
"creditsConsumed": 4
}Changes
- warning
added the new
miss_reason_unavailableenum value to the/response property for the response status - warning
added the new
response_size_capenum value to the///response property for the response status - info
added the non-success response with the status
- info
removed the non-success response with the status
- info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status - info
the response property
//became required for the status
- warning