Skip to main content
GET /statutes/resolve turns a citation string into one exact section. This page answers the two questions that decide whether it 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 a citation 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 /statutes/search
Feed it straight back
If you are storing citations in your own database, store the 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, RSMo and § 162.41, Fla. Stat. resolve exactly like the name-first forms.
  • An edition year inside the code name. Ala. Code 1975, § 17-14-2 and NMSA 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 in subsection.

Forms that are refused on purpose

Some acronyms belong to two jurisdictions. For those, resolve returns resolved: false rather than guessing.
resolved: false on one of these is the correct answer, not a gap. A wrong section is a wrong statement of the law; an unresolved citation is a question you can answer.
Pass state and they resolve. You have told us which jurisdiction you mean, so there is nothing left to guess:
The same applies to a form carrying no jurisdiction at all: Virginia’s own in-state form is the bare word 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.
Some set acronyms are shared. CR is both the Kentucky Civil Rules and the Washington Superior Court Civil Rules; RAP belongs to Washington, Kentucky and West Virginia; TCR to Oregon and West Virginia. These return resolved: false until you pass state, and they are refused on the acronym’s own ambiguity, not on whether we happen to hold that rule number for one state only. A gap in our coverage must never read as disambiguation.

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.
That refusal is the point. Scope when a citation form is shared across jurisdictions or corpora, which is exactly when a bare lookup could pick the wrong one:
  • 8 CCR 1206-2 is Colorado and 22 CCR 76227 is California. The acronym alone cannot say which, so pass state.
  • A rule number and a statute section often collide. If your citation names a court rule, pass corpusType=STATE_RULES so a same-numbered statute cannot answer instead.
If you are not disambiguating, leave the scope off. Scoping an unambiguous citation cannot improve the answer, and a scope that disagrees with the citation turns a good result into resolved: false.

Scoping on search is a different thing

On POST /statutes/search, state and corpusType filter the candidate pool before ranking. Two consequences worth knowing:
  • A recognized citation passed as the query is pinned to rank 1 at relevanceScore: 1.0, scoped or not. If you want one exact section, prefer /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.

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 /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.
Last modified on August 27, 2026