Board Watches

List what changed on a watch's source

Changed on

The sections this watch's source added, amended, or removed, newest first: the per-item detail behind the counts in a notification. It covers the source's whole captured history, not just the period since you subscribed; pass since= the watch's createdAt for what your alert has covered.

History runs from when change capture began for that source and is swept at 5 years. An empty list means no captured change, not that the law was never amended; the publisher's own history, where there is one, is on the section's amendmentHistory. The endpoint is read-only and safe to poll alongside a webhook or email watch: it cannot suppress, advance or double-fire a delivery.

Paging: pass sinceId with meta.cursor from your previous page to get only what is new, and keep going while meta.hasMore is true. With sinceId the order defaults to asc so the cursor never skips rows. To read newest first, pass order=desc and page older with beforeId=meta.nextBeforeId.

changeKind is added (a new section), amended (its content was replaced), or removed (it disappeared from a full refresh of the source). citation and title are null for corpora that do not carry them. detectedAt is when our refresh saw the change; sourceChangedOn, the publisher's own date, is carried on cfr, federal_rules and on no other board, and its absence never licenses reading detectedAt as the amendment date. Check publishesSourceChangedOn on GET /boards.

Free.

get/api/v1/watches/{watch_id}/changes

Request

Path parameters

watch_idstring required

Id of the watch, as returned by POST /watches (id).

Query parameters

limitinteger

Max changes to return.

sinceIdinteger nullable

Return only changes with an id greater than this. The cursor to build on: ids are a monotonic sequence, so this is exact, immune to clock skew, and cannot drop two changes that share a timestamp. Carry meta.cursor forward from your last page.

beforeIdinteger nullable

Return only changes with an id less than this: the cursor for walking BACK through history, where sinceId walks forward into new changes. A newest-first reader needs this one, since paging down a descending list means asking for what sits below the lowest id already held. Pass the smallest id on your last page.

sincestring nullable

Return only changes detected strictly after this ISO-8601 timestamp. Coarser than sinceId (a single refresh writes many rows at the same instant, and this drops all of them), but useful when all you kept was the detectedAt off a changes[] item in a webhook body. Prefer that item's id as sinceId where you still have it. Both may be combined.

Example:2026-08-07T04:10:00Z
changeKindstring[] nullable

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

order'asc' | 'desc' nullable

desc is newest first, for showing a recent-activity list, and is the default when sinceId is not set. When sinceId IS set the default is asc: catching up from a cursor walks forward, and an oldest-first page that hits limit leaves the unread gap at its far end, so meta.cursor can be carried forward without skipping rows. Pass desc together with sinceId explicitly to read the newest rows first; see meta.cursor and meta.nextBeforeId.

Response

What changed, newest first.

Example response

{
  "data": {
    "changes": [
      {
        "sourceChangedOn": "2026-08-17"
      }
    ]
  }
}

Changes

    • breaking

      for the query request parameter order, default value desc was removed

    • breaking

      removed the enum value asc from the query request parameter order

    • breaking

      removed the enum value desc from the query request parameter order

    • info

      query request parameter order list-of-types was widened by adding types null

    • info

      for the query request parameter order, the type was generalized from string to no type

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status