Law updates API
Changes in automatic-renewal law that Checkbox applies, with their effect on your sites.
Subscribe to the law.changed webhook to hear about them.
| Operation | Endpoint |
|---|---|
| List law updates | GET /v1/law_updates |
| Retrieve a law update | GET /v1/law_updates/{law_update} |
The LawUpdate object
A change in the law Checkbox applies, and its effect on your sites.
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the law update (law_…). |
object | enum | String representing the object's type. Always "law_update". |
livemode | boolean | true for live-mode objects, false for test mode (ck_test_ keys act on an isolated sandbox). |
source | enum | catalog_change: Checkbox updated the legal catalog; effective / sunset: a dated rule started or ended. One of catalog_change, effective, sunset. |
date | string | Date of the change (YYYY-MM-DD). |
summary | string | What changed. |
jurisdictions | array of enum | Jurisdictions changed. |
changes | array of LawChanges | Changed requirements. |
impacts | array of LawSiteImpacts | Effects on this account's sites (in this mode). |
created | integer | When Checkbox recorded the change. Unix timestamp in seconds. |
List law updates
GET /v1/law_updates
Law changes newest first, each with its effect on this account's sites.
Scope law_updates:read · Operation listLawUpdates
SDK: checkbox.lawUpdates.list() (Node) · checkbox.law_updates.list() (Python). MCP / agents: operation listLawUpdates.
Parameters
| Parameter | In | Type | Description |
|---|---|---|---|
limit | query | integer | Number of objects to return, 1-100 (default 10). |
starting_after | query | string | Cursor: an object id; returns the objects after it (older). |
ending_before | query | string | Cursor: an object id; returns the objects before it (newer). |
since | query | string | Only changes on or after this date (YYYY-MM-DD). |
Returns
Returns a list ({ object: "list", data, has_more, url }) of LawUpdate objects.
Errors use the standard envelope with a stable code and, where useful, next_action.
curl -G https://app.checkbox.site/v1/law_updates \
-u "$CHECKBOX_SECRET_KEY:" \
-d limit=3import Checkbox from '@checkbox-site/cli';
const checkbox = new Checkbox(process.env.CHECKBOX_SECRET_KEY);
const lawUpdates = await checkbox.lawUpdates.list({ limit: 3 });
console.log(lawUpdates.data);import os
from checkbox import Checkbox
checkbox = Checkbox(os.environ["CHECKBOX_SECRET_KEY"])
law_updates = checkbox.law_updates.list(limit=3)
print(law_updates.data){
"object": "list",
"data": [
{
"id": "law_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b",
"object": "law_update",
"livemode": false,
"source": "effective",
"date": "2026-11-01",
"summary": "New York online-cancellation rule takes effect.",
"jurisdictions": [
"US-NY"
],
"changes": [
{
"requirement_id": "US-NY.527-a.1",
"change": "effective",
"jurisdiction": "US-NY",
"citation": "N.Y. Gen. Bus. Law § 527-a",
"title": "Online cancellation",
"summary": null,
"effective_date": "2026-11-01",
"sunset_date": null,
"source_url": "https://www.nysenate.gov/legislation/laws/GBS/527-A"
}
],
"impacts": [
{
"site": "site_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b",
"summary": "1 check now fails under the new rule.",
"score_before": 90,
"score_after": 84,
"affected_checks": [
{
"check_id": "cancellation.online_cancel_available",
"title": "Customers can cancel online",
"severity": "critical",
"before": "pass",
"after": "fail"
}
],
"evaluated": 1793318400
}
],
"created": 1793318400
}
],
"has_more": false,
"url": "/v1/sites"
}Retrieve a law update
GET /v1/law_updates/{law_update}
One law change with its effect on this account's sites.
Scope law_updates:read · Operation retrieveLawUpdate
SDK: checkbox.lawUpdates.retrieve() (Node) · checkbox.law_updates.retrieve() (Python). MCP / agents: operation retrieveLawUpdate.
Parameters
| Parameter | In | Type | Description |
|---|---|---|---|
law_update required | path | string | Unique identifier of the law update (law_…). |
Returns
Returns a LawUpdate object.
Errors use the standard envelope with a stable code and, where useful, next_action.
curl https://app.checkbox.site/v1/law_updates/law_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b \
-u "$CHECKBOX_SECRET_KEY:"import Checkbox from '@checkbox-site/cli';
const checkbox = new Checkbox(process.env.CHECKBOX_SECRET_KEY);
const lawUpdate = await checkbox.lawUpdates.retrieve('law_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b');
console.log(lawUpdate);import os
from checkbox import Checkbox
checkbox = Checkbox(os.environ["CHECKBOX_SECRET_KEY"])
law_update = checkbox.law_updates.retrieve("law_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b")
print(law_update){
"id": "law_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b",
"object": "law_update",
"livemode": false,
"source": "effective",
"date": "2026-11-01",
"summary": "New York online-cancellation rule takes effect.",
"jurisdictions": [
"US-NY"
],
"changes": [
{
"requirement_id": "US-NY.527-a.1",
"change": "effective",
"jurisdiction": "US-NY",
"citation": "N.Y. Gen. Bus. Law § 527-a",
"title": "Online cancellation",
"summary": null,
"effective_date": "2026-11-01",
"sunset_date": null,
"source_url": "https://www.nysenate.gov/legislation/laws/GBS/527-A"
}
],
"impacts": [
{
"site": "site_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b",
"summary": "1 check now fails under the new rule.",
"score_before": 90,
"score_after": 84,
"affected_checks": [
{
"check_id": "cancellation.online_cancel_available",
"title": "Customers can cancel online",
"severity": "critical",
"before": "pass",
"after": "fail"
}
],
"evaluated": 1793318400
}
],
"created": 1793318400
}Checkbox is compliance software, not a law firm; nothing in these docs is legal advice (details). For AI agents: every page is available as Markdown at the same URL plus .md; the index is /llms.txt.