GET /us/statutes/resolve turns a citation string into one exact section, and
POST /us/statutes/resolve does the same for up to 50 at a time.
This page answers the two questions that decide whether either works for you:
what to send, and when to scope it.
The short answer: send back the citation we gave you
Every section we return carries acitation field. That string is the form the
publishing jurisdiction itself prints, and feeding it back is guaranteed to
resolve to the same section.
Result from /us/statutes/search
Feed it straight back
citation value we
return rather than a form you construct. It round-trips by definition, and it
survives us adding jurisdictions.
You do not have to send Bluebook
Both the Bluebook form and the form the state’s own courts use resolve to the same section. You do not need a per-state table.
Also accepted, because real documents contain them:
- The code name after the section.
§ 292.290, RSMoand§ 162.41, Fla. Stat.resolve exactly like the name-first forms. - An edition year inside the code name.
Ala. Code 1975, § 17-14-2andNMSA 1978, § 22-23-1.1. The year names the edition, not the section, and is ignored. - Doubled section symbols.
Cal. Civ. Code §§ 1950.5. - A trailing period, so a citation lifted out of a sentence works:
42 U.S.C. § 1983. - Typographic dashes. Text copied from a PDF or Word document carries
non-breaking hyphens, figure dashes and minus signs instead of
-. They are invisible on screen and they are normalized for you. - Pinpoint subsections.
42 U.S.C. § 1983(b)(2)resolves to the parent section and echoes(b)(2)back insubsection.
Forms that are refused on purpose
Some acronyms belong to two jurisdictions. For those,resolve returns
resolved: false rather than guessing.
Pass
state and they resolve. You have told us which jurisdiction you mean,
so there is nothing left to guess:
Code, so cite=Code § 8.01-243&state=va
resolves while the string alone cannot.
Connecticut and North Carolina both print General Statutes § ..., which names
a compilation but no jurisdiction. Those resolve the same way:
cite=General Statutes § 42a-1-101&state=ct.
Court rules
Many states cite a court rule with no jurisdiction token at all, because inside that state none is needed. Those resolve on the set acronym alone:
Punctuation and case do not matter:
I.I.R. 4, IIR 4 and iir 4 are the same
citation.
Trial-court, professional-conduct and territory forms
A county or district trial court’s local rules are cited with the court named, because the court is part of the citation and of theactId:
A bare rule number that names no court is never guessed at.
The 38 courts held are listed on State and territory coverage.
Professional-conduct rules resolve in the form each jurisdiction prints:
Cal. R. Prof. Conduct 1.1, Or. RPC 1.1, Va. R. Prof. Conduct 1.1, D.C. R. Prof. Conduct 1.1, Ga. R. Prof. Conduct 1.1, Idaho R. Prof. Conduct 1.1, Fla. R. Regulating Fla. Bar 4-1.1.
Nevada’s alternative dispute resolution rules are three sets: Nev. R. ADR 1 (the General Provisions only), Nev. Arb. R. 14 and Nev. Med. R. 9.
The territories use their own codes: 9 Guam Code Ann. § 16.10, 2 N. Mar. I. Code § 7222, Am. Samoa Code Ann. § 46.4810 (or A.S.C.A. § 46.4810), Am. Samoa Const. art. IV, § 4, Am. Samoa Admin. Code § 4.2126, V.I. Code Ann. tit. 14, § 1 (or 14 V.I.C. § 1) and 12 V.I. R. & Regs. § 803-52.
Their court rules resolve as Guam R. Civ. P. 71, N. Mar. I. R. Civ. P. 53, Am. Samoa High Ct. R. 139, V.I. R. Civ. P. 6-3 and V.I. S. Ct. R. 211.1.10.
Vermont’s court rules resolve in the Judiciary’s own forms, Vt. R. Civ. P. 26 (or V.R.C.P. 26) and Vt. R. Evid. 803 (or V.R.E. 803).
Scoping: a constraint, not a hint
state and corpusType narrow a lookup. They never redirect one.
1
A citation that agrees with the scope resolves normally
cite=O.C.G.A. § 51-1-6&state=ga&corpusType=STATE returns the same section
as the unscoped call.2
A citation that disagrees returns resolved: false
cite=O.C.G.A. § 51-1-6&state=tx does not find a Texas section that
happens to share the number. It returns resolved: false.8 CCR 1206-2is Colorado and22 CCR 76227is California. The acronym alone cannot say which, so passstate.- A rule number and a statute section often collide. If your citation names a
court rule, pass
corpusType=STATE_RULESso a same-numbered statute cannot answer instead.
When the answer is not the exact unit you cited: matchLevel
An exact match carries none of the fields below, so every answer that resolved before is unchanged.
Four optional fields appear on both GET and POST /us/statutes/resolve only when section is not the exact unit you cited.
resolved keeps its meaning (a section came back) and is true at every level, so read matchLevel to tell an exact section from a first-of-several.
The companion fields:
container:kind(chapter,subchapter,series,article,sectionfor a constitution section made of numbered paragraphs, oramendment),label,childCount(always exact),children(actId,citation,status, in document order, starting with the section returned) andtruncated(true whenchildrenlists fewer thanchildCount; at most 50 are listed).citedSections: the sections you named, as written. A range such as1983-1985is one entry.repair:kind(today onlycode_name),cited(the part we corrected),interpretedAs, andalternatives, the other held sections the same code name could have meant. Empty when the repair was the only reading.registerReference: see Register citations.
container
container (fields beside resolved and section)
children array above is cut to two of the twelve entries for this page; the real response lists all twelve.
repaired (N.Y. Jud. Ct. Acts Law § 475)
Register citations
36 Pa. Bull. 510 or 17 Ill. Reg. 10414 names a page of a state register.
The answer depends on whether we hold that register:
- We hold the item (
registerReference.registerItemHeld: true).sectionis the register notice itself,corpusTypeSTATE_REGISTER. It is a notice as printed on a date, not codified law.kindispagewhen the citation names the page the item starts on andrangewhen it names a later page of the item. Held for the jurisdictions listed under State administrative registers. - We do not hold it (
registerItemHeld: false).sectionis a codified rule whose history note cites that page: the first ofruleCount, with the others inrules. An omnibus item that touched more than 30 rules is refused rather than represented by one arbitrary rule.
registerReference carries citation (as we read it), state, kind, ruleCount (always exact), rules (their actIds, in document order, at most 25) and registerItemHeld.
kind is page (a history note cites exactly this volume and page), range (a note cites a range that contains the page), issue (the citation names a register issue, as Colorado and Michigan cite) or filing (it names a filing identifier, as Washington, Nevada, Indiana and Wisconsin do).
register item held (36 Pa. Bull. 510)
register item not held (17 Ill. Reg. 10414)
17 Ill. Reg. 10415 returns resolved: false.
Washington’s WSR 20-12-091 and Virginia’s 27 Va. Reg. 640 resolve to the register item, and Colorado’s 42 CR 15 names an issue and resolves to the first of 11 rules that cite it.
A register citation that no held item and no rule’s history note cites returns resolved: false.
Checking a whole document: POST /us/statutes/resolve
Everything above applies unchanged to the batch route.
It takes up to 50 citations in one call and returns the same verdict per
citation.
Use it when you are checking the citations in a document rather than looking one
up.
A brief, a memo or a model’s output typically carries dozens, and the
single-citation route makes that dozens of round trips.
resolved: false, never as an omission.
A caller checking thirty citations needs to know WHICH failed, and a shorter
array cannot say that.
Duplicates are collapsed before pricing and before the response is built, so
sending the same citation twice costs once and returns one entry.
results lines up with the de-duplicated input, in the order supplied, and
count is its length.
Scoping applies to the whole batch.
state and corpusType are the same constraint they are on the single route,
applied to every citation in the call.
A batch spanning jurisdictions should omit them and let each citation name its
own.
Batching buys a round trip, not a discount.
It is billed per citation, exactly as if you resolved them one at a time.
Unresolved citations are charged, because a confident “this does not resolve” is
the answer you are paying for when you are verifying a model’s output.
Only citations we failed to process because of a backend error are refunded, so
read creditsConsumed rather than multiplying.
Scoping on search is a different thing
OnPOST /us/statutes/search, state and corpusType filter the candidate pool
before ranking. Two consequences worth knowing:
- A recognized citation passed as the
queryis pinned to rank 1 atrelevanceScore: 1.0, scoped or not. If you want one exact section, prefer/us/statutes/resolve: it is cheaper and it tells you whether the citation is real. - For a natural-language query, scoping changes which candidates are considered, so scoped and unscoped searches legitimately return different result sets. That is filtering working, not a bug.
State session law citations
/us/statutes/resolve resolves code sections first.
When a citation names no code section but does name a state session law (CHAPTER 2025-12, S.F.No. 1552), the response carries matchedCorpus: "session_law" and a sessionLaw block with the law’s title, dates, outcome and href, and resolved stays false because section is null.
sessionLaw.status is matched or ambiguous; an ambiguous citation lists every candidate and chooses none.
There is no extra charge.
To read the law, send its sessionLawId or the citation itself to GET /us/session-laws/{sessionLawId}.
When something does not resolve
1
Check it is not a deliberate refusal
Compare against the ambiguous-acronym table above. If it is on that list,
add
state.2
Drop the scope
A scope that disagrees with the citation returns
resolved: false. Retry
without state and corpusType to find out whether the scope was the
problem.3
Search for it instead
POST /us/statutes/search with the citation as the query will surface the
section even when the string is not a form we parse, and the result carries
the citation we do recognize.4
Tell us
A citation that a jurisdiction genuinely prints and that we cannot read back
is a defect on our side, not yours. Send it to
contact@vaquill.ai and we will fix the parser.
Case law citations are not covered here. The Data API serves statutes,
regulations, constitutions and court rules; it is not a case law API.

