CPSC Consumer Product Recall Delta Monitor avatar

CPSC Consumer Product Recall Delta Monitor

Pricing

Pay per usage

Go to Apify Store
CPSC Consumer Product Recall Delta Monitor

CPSC Consumer Product Recall Delta Monitor

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Valunex

Valunex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Monitors the public CPSC recalls REST API for a user-maintained watchlist of brand / product-category / retailer keywords and emits one dataset item (alert) per newly observed consumer product recall since the last run — "free when nothing changes" (unchanged replays emit nothing).

Who it is for

FBA and e-commerce sellers, consumer-product brands / CPG, retail compliance teams, product-liability insurers, and plaintiff/regulatory lawyers who need an early-warning signal for CPSC consumer product recalls (toys, appliances, electronics, furniture, children's products and more) without manually re-checking saferproducts.gov on a schedule. Run this Actor on a cadence and it only alerts on what is new.

What makes it different

Existing CPSC recall coverage on the Apify Store is one-shot, pay-per-event scraping: you re-pull and re-bill the full recall history on every poll. This Actor keeps a watchlist and remembers what it already reported (per-watchlist checkpoint in the Apify key-value store keyed by the stable CPSC RecallID), so repeat runs emit only genuinely new or amended recalls — free when nothing changes.

Data source

Public CPSC data only — no API key, no login, no proxies, no credentials:

All HTTP is server-side. Public domain US government data. No commercial inference (no LLMs) inside the product.

Pricing (Apify Store)

Listed as FREE. The Actor itself costs $0 per run and emits nothing when there are no new recalls ("free when nothing changes"). Pay-per-event pricing (a per-run start fee plus a per-alert dataset-item fee) only applies after the owner sets up payout billing in Apify Console (Actor pricing step + primary event step) — see POLICY #3: publish free now, enable monetization only at payout time when the owner completes KYC.

Input

See actor/.actor/input_schema.json. All fields optional; the default input watches no keywords (monitors all CPSC recalls) over the last 30 days:

{
"watchlist": [],
"sinceDays": 30,
"maxResults": 25
}

Example watching specific brands and retailers:

{
"watchlist": ["Bodum", "DREO", "Target", "space heater"],
"sinceDays": 30,
"maxResults": 25
}
  • watchlist: array of keyword strings (max 50). A recall matches when any keyword appears in its title, description, products, retailers or hazards, case-insensitively. Leave empty to monitor all CPSC recalls.
  • sinceDays (1-365, default 30): bounds how far back runs look; the first run establishes a baseline of all recalls currently in the window.
  • maxResults (1-200, default 25): cap on alerts emitted in a single run.

Output

One dataset item per new or amended recall:

{
"recallID": 11041,
"recallNumber": "27055",
"recallDate": "2026-10-29T00:00:00",
"lastPublishDate": "2026-10-29T00:00:00",
"title": "Bodum USA Recalls 5.9 Million French Press Coffee Makers ...",
"description": "This recall involves Bodum ... French Press coffee makers ...",
"url": "https://cpsc.gov/Recalls/2027/Bodum-USA-Recalls-...",
"consumerContact": "Bodum USA toll-free at 888-879-8213 ...",
"products": [
{
"Name": "Bodum French Press coffee makers ...",
"Type": "Unpowered Coffee Makers or Teapots",
"CategoryID": "585",
"NumberOfUnits": "5.9 million"
}
],
"retailers": [
{ "Name": "Sold At:\\nTarget, Walmart, ...", "CompanyID": "" }
],
"manufacturers": [],
"importers": [
{ "Name": "Bodum USA, Inc., of New York, New York", "CompanyID": "" }
],
"hazards": [
{ "Name": "The carafe can unexpectedly break during use ...", "HazardType": "", "HazardTypeID": "" }
],
"remedies": [
{ "Name": "Consumers should stop using metal spoons ...", ... }
],
"remedyOptions": [ { "Option": "Repair" } ],
"manufacturerCountries": [ { "Country": "Portugal" }, { "Country": "Thailand" } ],
"soldAtLabel": null,
"newSinceLastRun": true,
"changeType": "new",
"watchlistMatched": "Bodum",
"source": "https://www.saferproducts.gov/RestWebServices/Recall"
}

changeType is "new" for a previously unseen RecallID and "amended" for a known RecallID whose published content changed. Every optional field is null when it could not be parsed — the Actor never guesses.

Checkpoint / delta behaviour

State (a content fingerprint per RecallID plus the newest recall date seen) is kept per watchlist configuration in the Actor key-value store. The first run for a watchlist emits all currently known recalls in the sinceDays window as the baseline. Repeat runs only emit recalls newer than the lookback window that have not been seen before, or previously seen RecallIDs whose content changed. Resetting the store re-emits the baseline.

Limits

  • Max 50 watchlist keywords, 200 alerts per run, 365-day lookback.
  • One full feed fetch per run (no credentials, no proxies).
  • Checkpoints persist per watchlist configuration in the Actor key-value store.

Verification

Run pytest actor/tests before release (builder acceptance criterion). Default input { "sinceDays": 30 } must return more than 0 dataset items in under 5 minutes against live saferproducts.gov.