Skip to main content
GET
Feed of changes to the session-law registry

Authorizations

Authorization
string
header
required

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

Query Parameters

sinceId
integer
default:0

Return only entries with an id greater than this: the cursor for walking the feed forward. Send 0 (the default) to start from the beginning, then the cursor of your last page. id is an integer that only grows, so this is exact and immune to clock skew. A negative or non-integer value is a 422 and is never charged; a value past the newest id is an empty page, which is charged.

Required range: 0 <= x <= 9223372036854776000
Example:

1500

jurisdiction
enum<string> | null

Limit the feed to one jurisdiction: a two-letter state code, dc or pr, case-insensitive. Omit for every jurisdiction. federal and any unknown code is a 422 and is never charged: federal session laws are not in this feed. The cursor is a position in the whole feed, so a filtered page may have gaps in id.

Available options:
al,
ak,
as,
az,
ar,
ca,
co,
ct,
de,
dc,
fl,
ga,
gu,
hi,
id,
il,
in,
ia,
ks,
ky,
la,
me,
md,
ma,
mi,
mn,
ms,
mo,
mt,
ne,
nv,
nh,
nj,
nm,
ny,
nc,
nd,
mp,
oh,
ok,
or,
pa,
pr,
ri,
sc,
sd,
tn,
tx,
ut,
vt,
vi,
va,
wa,
wv,
wi,
wy
Example:

"mn"

limit
integer
default:50

Most entries on this page: 1 to 200, default 50. The price is per page, however many entries it holds, so a larger page is cheaper per entry. Out of range is a 422 and is never charged.

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

100

Response

A page of the feed, oldest first. hasMore and cursor say how to continue; an empty changes is a charged answer.

Response for GET /us/session-laws/changes.

changes
SessionLawChange · object[]

The entries after sinceId, oldest first, at most limit. Empty when nothing changed since your cursor, which is an answer and is charged.

count
integer
default:0

Entries on this page.

Example:

2

cursor
integer | null

The largest id on this page: send it as sinceId for the next page. Null when the page is empty, so keep the cursor you already hold.

Example:

1502

hasMore
boolean
default:false

True when more entries follow this page: call again with sinceId set to cursor straight away. False means you have caught up as of this call.

Example:

true

creditsConsumed
integer
default:0

Credits actually charged for this call, never the list price. 0 when the call was refunded (a failure on our side).

Example:

1

processingTimeMs
number
default:0

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

Example:

41.8

Last modified on October 9, 2026