---
title: "Regulation Changes"
method: GET
path: "/api/v1/changes"
---

# Regulation Changes

`GET /api/v1/changes`

## Request

- Base URL: `https://petforai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://petforai.com/api/v1/changes`
- Auth: none declared

Regulation change feed — confirmed fingerprint changes from the monthly monitor
plus pet-food recall events from the recall monitor (B1).

Returns a coverage summary (monitored sources + last run from monitor_state.json and
recall_state.json) plus change events from monitor_changes.json and recall_changes.json.
Each event carries source_id, jurisdiction, change_type and is traceable to the official
source via url. Recall events (change_type="new_recall") additionally expose recall_key,
recall_date, brand and product. Honest: no recorded change => results=[] (no fabricated history).

## Query parameters

- `since` string, nullable: Only changes detected at/after this point. ISO date (2026-07-01) or relative (30d / 4w / 2m). Empty = all recorded changes.
- `source` string, nullable: Filter by source id keyword, e.g. 'aafco', 'eu', 'cn', 'openfda'
- `type` string, nullable: Filter by change type keyword: 'expanded', 'reduced', 'modified' (heuristic from normalized-length delta)
- `group_by` string, nullable: Set 'jurisdiction' to also return a per-jurisdiction breakdown in summary.by_jurisdiction
- `limit` integer: Max results (anti-dump cap 50)
- `offset` integer: Paging offset

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/petforai/apis/pet-data-station-api.md) · [All operations](https://skmtc.dev/petforai/apis/pet-data-station-api/llms.txt) · [OpenAPI document](https://skmtc.dev/petforai/apis/pet-data-station-api/revisions/fc8febb293ab?raw)
