Skip to main content
GET
Get this section's change history

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_T21_P314_S314_50"

Query Parameters

limit
integer
default:50

Max changes to return on this page.

Required range: 1 <= x <= 200
Example:

50

sinceId
integer | null

Return only changes with an id greater than this: the cursor for polling forward into new changes. Ids are a monotonic sequence, so this is exact, immune to clock skew, and cannot drop two changes that share a timestamp. Carry cursor forward.

Required range: x >= 0
beforeId
integer | null

Return only changes with an id less than this: the cursor for walking BACK through history, which is what a newest-first reader needs. Pass the smallest id on your last page.

Required range: x >= 0
changeKind
enum<string>[] | null

Filter to these kinds. Repeat the parameter to pass several (?changeKind=amended&changeKind=removed). Omit for all three.

Available options:
added,
amended,
removed
order
enum<string>
default:desc

desc (default) is newest first, the natural reading order for a history. Use asc to replay a section's life forward, or when catching up from a cursor.

Available options:
asc,
desc

Response

The section's captured change history, newest first.

Response for GET /us/statutes/section/{act_id}/changes.

actId
string
required

The section identifier you asked about, echoed back.

Example:

"CFR_T21_P314_S314_50"

coverage
string
required

What this history can and cannot tell you, in one sentence. Change capture began well after the corpus itself did and is swept on a retention window, so this endpoint reports the changes we OBSERVED in that window, never the section's full legislative history. Read it before treating an empty list as 'unchanged'.

Example:

"Observed changes only, from when capture began for this source through today, retained 24 months. Not a full legislative history."

section
StatuteResult · object | null

The section as it stands today. NULL is meaningful and not an error: it means the section is no longer in the corpus, which is exactly the case when the newest change is a removed. The history below is still the answer.

changes
StatuteChangeEvent · object[]

Observed changes, newest first by default. Empty is a real answer, and it means NO CAPTURED CHANGE, not that the section has never been amended. See coverage.

total
integer
default:0

Size of changes on this page, not a corpus-wide count: it is capped by limit.

Example:

3

hasMore
boolean
default:false

True when the page filled to limit, so more may sit behind it. Page with beforeId (walking back) or sinceId (walking forward) rather than by raising limit.

cursor
integer | null

Highest id on this page, or null when the page is empty. Carry it into sinceId to poll for what is new; keep the one you hold when a page comes back empty.

Example:

91

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:

18.4

creditsConsumed
number
default:0

Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0.

Example:

1

Last modified on August 23, 2026