# Rattlewatch > US product recall lookup for AI agents. CPSC consumer products plus FDA food, > drug and device enforcement, every record pinned to an official source. Rattlewatch answers a narrow question well: - Is this product, brand, or model number subject to a recall? - Which agency published that recall, and what is the source URL? - What recalls or rule changes appeared since a given date? - What cited market-entry requirements apply to a product and market? (a small curated set: CPC, CPSC eFiling, EU GPSR, CE marking, REACH SVHC, RoHS, Prop 65) It **never generates an answer**. It returns only records that exist in its store, each pinned to an official source URL and a last-verified date, or an explicit `found: false` meaning "no verified record". Absence is an honest negative, not a guess. Facts are append-only: a changed answer creates a new version and a change event rather than an in-place edit. ## MCP endpoint https://rattlewatch.rattled.ca/mcp - Transport: `streamable-http` - Authentication: none. Public and parameterless. - Configuration: none required. - Verified: `initialize` -> `initialized` -> `tools/list` returns all four tools. ## Tools - `search_recalls` — cited CPSC recall records by product name, brand, model, or UPC - `get_requirement` — cited requirements for a subject + market (CPSIA/CPC, CPSC eFiling, EU GPSR, CE marking, REACH SVHCs, RoHS, California Prop 65) - `list_changes` — new recalls and rule changes since an ISO-8601 timestamp - `verify` — cited records matching a claim, or an explicit negative ## REST API https://rattlewatch.rattled.ca - `GET /v1/recalls/search?q=&market=US&limit=10` - `GET /v1/requirements?subject=&market=` - `GET /v1/changes?since=` - `POST /v1/verify` with `{"query": "..."}` - `GET /stats` — counts, plus `corpus_built_at` and `data_age_hours` (freshness is deliberately public) - `GET /docs` — OpenAPI ## Coverage - **CPSC** (consumer products) — the full structured U.S. recall feed - **openFDA** (food, drug, device) — enforcement reports - **Cited requirements** — CPSIA/CPC, CPSC eFiling, EU GPSR, CE marking, REACH SVHCs, RoHS, California Prop 65 Every record carries a resolvable `source_url`: either the official CPSC page or a per-record openFDA query. ## Freshness The corpus is rebuilt daily from the upstream feeds. Check `data_age_hours` at `/stats` before relying on an answer for anything time-critical. ## Source https://github.com/veritylabsai/rattlewatch (MIT) ## Limits - Coverage is U.S. federal recall data plus a curated set of cited market requirements. It is **not** a complete global regulatory database, and it is not legal advice. - An empty result means "not in the store", **not** "not recalled". Always confirm against the cited source before acting.