Skip to main content
GET
Get statute full text

Authorizations

Authorization
string
header
required

API key issued from the developer dashboard. Pass as Authorization: Bearer vq_key_...

Path Parameters

act_id
string
required

Section identifier. Encodes the citation's hierarchy: USC_T42_C21_S1983 is Title 42, Chapter 21, Section 1983, the section a lawyer writes as 42 U.S.C. § 1983. Take it from a /us/statutes/search result rather than assembling it: the title and section are derivable from a citation, but the CHAPTER is not, so hand-built ids usually 404.

Required string length: 3 - 200
Example:

"CFR_T17_P240_S240_10b5_1"

Query Parameters

format
enum<string>
default:both

Which representations to return. A long section carries the same text twice by default, so plain or html roughly halves the payload. Cost is unchanged: the fetch is the same either way.

content omits html and plain entirely and returns only the split fields (content, sourceCredit, notes). Use it when you want the operative text and nothing else: on 17 U.S.C. § 107 that is about 1 KB instead of 30 KB over the wire, for the same price. Only United States Code sections can be split, so for any other corpus content returns no text at all -- check content for null and fall back to plain if you are not sure which corpus you have.

Available options:
both,
html,
plain,
content
Example:

"content"

structured
boolean
default:false

When true, also return markdown and a subsections tree parsed from the text for pincite addressing. Same cost.

Example:

true

asOf
string | null

Return the section's text as it stood on this date (YYYY-MM-DD) instead of today's. Same cost.

This is a reconstruction, not an archive. The corpus holds one current text per citation; an earlier one is rebuilt from the before-side of the first change we OBSERVED after your date. The asOf block on the response says which version you got (source), what it rests on (basisChangeId), how far back the evidence reaches (observedFrom), and whether the answer is bounded by when capture began rather than by the law (isBounded). Read isBounded before citing the text.

A section that did not exist yet returns available: false with asOf.existed: false, which is a real answer and is charged. A section we know changed but cannot rebuild returns source: "unavailable" and IS refunded, because you asked for a historical text and did not get one.

A date that does not exist on a calendar (2026-02-30) is a 422 and is not charged.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-01-15"

Response

Successful Response

Full text of a statute section in HTML and/or plain text.

actId
string
required

The section this body belongs to, echoed back from the request.

Example:

"USC_T42_C21_S1983"

html
string | null

HTML-formatted statute text.

plain
string | null

Plain text version.

source
string | null

Data source identifier.

sourceUrl
string | null

Where this text was published by the government, so the bytes you were served can be cited and verified against the official record. Null when we hold no publishable link for the section: a third-party compiler is never served here, and an absent link is the correct answer in that case. source is a storage identifier and is NOT a citation.

Example:

"https://www.govinfo.gov/content/pkg/USCODE-2024-title17/html/USCODE-2024-title17-chap1-sec107.htm"

content
string | null

The OPERATIVE TEXT of the section, with the source credit and the notes apparatus removed. This is the law; plain is the law plus everything the publisher prints around it.

Populated for United States Code sections, where GPO delimits the fields in the granule it publishes. Null for CFR and for state corpora, whose sources carry no equivalent structure -- null means "we cannot split this reliably", never "this section is empty", and plain is still the whole body.

Worth using if you feed sections to a model: measured 2026-09-02, the operative text is a median 46% of plain across USC and as little as 3.4% (17 U.S.C. § 107, where 28,529 of 29,775 characters are committee reports and amendment notes). A model handed the full body can quote a 1992 amendment note as the law in force.

Example:

"Notwithstanding the provisions of sections 106 and 106A, the fair use..."

sourceCredit
string | null

The publisher's credit line for the section, e.g. (Pub. L. 94-553, title I, §101, Oct. 19, 1976, 90 Stat. 2546; ...). Split out of the body rather than left inside it.

The same value is also on GET /us/statutes/section/{actId} as sourceCredit; it is repeated here so a caller fetching the text does not need a second call to know what enacted it.

Example:

"(Pub. L. 94–553, title I, §101, Oct. 19, 1976, 90 Stat. 2546)"

notes
string | null

The notes apparatus the publisher prints after the section: Historical and Revision Notes, committee reports, Editorial Notes (codification and amendments), Statutory Notes and Related Subsidiaries (effective dates), and any guidelines reprinted by the editors.

Kept, not discarded: it is the legislative history, and it is the reason a section's body can be twenty times the length of the law. It is simply NOT the operative text, so it is served as its own field. Null where we cannot split the body.

Example:

"Historical and Revision Notes\n\nhouse report no. 94–1476..."

available
boolean
default:true

Whether full text is available.

note
string | null

Note if text is unavailable.

markdown
string | null

The body rendered as nested Markdown lists. Present only when structured=true.

subsections
SubsectionNode · object[] | null

The section broken into its lettered and numbered subsections, nested as they appear in the text. Use it to quote or link a single clause rather than the whole section. Present only when structured=true.

asOf
AsOfProvenance · object | null

Present only when the request passed asOf. Says WHICH version of the section you are holding and how far the evidence for it goes. Read isBounded before treating the text as the law on that date.

processingTimeMs
number
default:0

Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on.

Example:

240.5

creditsConsumed
number
default:0

Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.

Example:

4

Last modified on September 7, 2026