Skip to main content
GET
List every served version of a state session law

Authorizations

Authorization
string
header
required

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

Headers

Idempotency-Key
string | null

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.

Required string length: 16 - 255
Pattern: ^[\x21-\x7e]+$
Example:

"3f9c2a1e-7b44-4d0a-9c1e-5a6b7c8d9e0f"

Path Parameters

session_law_id
string
required

A state session law's id, for example SSL_MN_2025S1_G_Y2025_C1, from a /us/session-laws/list result.

A citation also works here on GET /us/session-laws/{sessionLawId}, and resolvedFrom says what your input matched. Name the state in the citation: Minn. Laws 2025, ch. 1, 2025 Minn. Laws ch. 1, Ch. 1, Laws of Minnesota 2025, Ch. 2025-12, Laws of Fla., 2025 Wash. Sess. Laws ch. 12, La. Acts 2025, No. 12, Pa. Act 12 of 2025, Minn. S.F. 1552 (2025), MN: Laws 2025, ch. 1. A form only one state uses needs no state: P.A. 104-0001 (Illinois), Pub. Act No. 26-151 (Connecticut), S.L. 2025-12 (North Carolina), Stats. 2025, ch. 12 (California), D.C. Law 25-713. The publisher's printed form (CHAPTER 2025-12, S.F.No. 1552) and the citation we print on every law also work. A form several states share (Laws 2025, ch. 1, HB 123, Act 12 of 2025) is a 404 with reason: needs_jurisdiction, the states it exists in and one candidate per state: we never guess the state. A citation naming several laws of one state (Minnesota 2025 has two Chapter 1s) is a 404 listing all of them, candidateCount and truncated saying whether the list is complete, and defaultSessionLawId the regular session's law where there is exactly one conventional reading. An id or citation that matches nothing in a session we have only partly collected is a 404 with reason: session_not_fully_collected and that session's coverage: the law may exist and not be held yet, so it is never charged, the resolve price included. A citation costs the route's price PLUS the /us/statutes/resolve price (2 credits), the second kept whether or not it resolves (an unresolved citation is a charged verdict) and refunded on an ambiguous citation (several laws carry it and none is chosen, so nothing resolved), on a partly collected session, on a citation we could not read as a state session-law citation at all (its detail lists the accepted forms) or on a failure. URL-encode the citation; one containing / cannot travel in a path segment.

Federal session laws (SAL_..., Pub. L. 118-5, the Statutes at Large) are served by /us/statutes/section, not here, and code citations (26 U.S.C. § 1) by /us/statutes/resolve.

Required string length: 1 - 300
Example:

"SSL_MN_2025S1_G_Y2025_C1"

Response

The law's versions, newest first, exactly one of them current. A law with a single version answers a list of one, which is charged.

Response for GET /us/session-laws/{sessionLawId}/versions.

sessionLawId
string
required

The law these versions belong to.

Example:

"SSL_MN_2025S1_G_Y2025_C1"

textStatus
enum<string>
required

Whether we serve this law's text. held: the text is served by /us/session-laws/{sessionLawId}/body. withheld: we hold the text but a measured defect keeps it from being served, and withheldReason says what. not_held: we know the act exists and do not hold its text. pending: collected and not yet verified.

Available options:
held,
withheld,
not_held,
pending
Example:

"held"

count
integer
required

Number of versions listed.

Example:

2

processingTimeMs
number
default:0

Server-side time for this request in milliseconds, excluding network transit. Not billed on.

Example:

747.5

creditsConsumed
number
default:0

Credits actually charged for this call, never the list price. It includes the /us/statutes/resolve fee when a citation was sent where an id goes. 0 when the call was not charged or was refunded (a body that answers available: false).

Example:

2

textReliability
enum<string> | null

How far to trust the CURRENT text of this law, the same field as on /body: verified when the text passed our strike-through check, unverified when that check has not been completed, known_issue when we have evidence the text shows deleted law as if enacted. A served law can be any of the three (its text is still served); a held-back law is unverified or known_issue and its text is read with includeUnverified=true. Omitted when no text of this law may be read.

Available options:
verified,
unverified,
known_issue
Example:

"verified"

reasonCode
string | null

Why the text is not verified, the same token as on /body. Omitted when the text is verified.

Example:

"strike_unchecked"

versions
SessionLawVersion · object[]

Every version we served or adopted, newest first, at most 100 of them (see truncated). At least the current one, except when note says the registry lists none.

currentVersion
integer | null

The version that is current. Null only when no version is current, which a served law never is.

Example:

2

truncated
boolean
default:false

True when the law has more versions than one answer lists, so versions is the newest ones and older versions exist that are not shown. False when versions is the whole history.

Example:

false

note
string | null

Set only when the law exists but the registry lists no version of its text for it (versions is empty, count is 0): the answer is free, nothing is charged. Omitted otherwise.

Example:

"The registry holds this law but lists no version of its text for it (its current version is not set: the law may be withdrawn, merged into another law, or its text not yet recorded). There is nothing to read, so nothing was charged."