CPSC Product Recalls Monitor avatar

CPSC Product Recalls Monitor

Pricing

from $0.02 / 1,000 item extracteds

Go to Apify Store
CPSC Product Recalls Monitor

CPSC Product Recalls Monitor

Monitor official U.S. CPSC recalls by product, company, hazard, remedy, and keyword. Export compliance-ready recall datasets and only-new alerts.

Pricing

from $0.02 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Monitor official U.S. Consumer Product Safety Commission (CPSC) product recalls from the public saferproducts.gov recall API. This Apify Actor turns government recall records into clean datasets for compliance, marketplace monitoring, product safety, insurance, legal, and risk teams.

The actor is HTTP-first, fast, and designed for scheduled monitoring. Search by date range, product keyword, company keyword, hazard, remedy, or general text, then export normalized recall records with product names, hazards, remedies, companies, countries, contact details, and images.

What does CPSC Product Recalls Monitor do?

It queries the official CPSC recall JSON endpoint and saves matching recall records to an Apify dataset.

  • ✅ Monitor new consumer product recalls by date
  • ✅ Search recall titles, descriptions, products, hazards, remedies, companies, and countries
  • ✅ Extract normalized product, hazard, remedy, party, country, injury, and image fields
  • ✅ Run on a schedule with onlyNew dedupe by RecallID
  • ✅ Export data to JSON, CSV, Excel, BigQuery, Google Sheets, or your own API workflow

Who is it for?

Retail compliance teams

Track recalls that might affect SKUs sold in your stores or marketplace catalog.

Marketplace trust and safety teams

Detect safety recalls involving sellers, importers, product categories, or consumer hazards.

Product safety and quality teams

Monitor product names, model families, hazards, incidents, and remedies without manually checking CPSC pages.

Collect structured recall evidence with official source URLs, dates, descriptions, injuries, and remedy text.

Brand protection teams

Watch for product mentions, company names, retailer names, and importer details in new recall notices.

Why use this actor?

Manual recall monitoring is easy to miss. The CPSC website is public, but compliance teams usually need repeatable exports, filters, and integrations.

This actor provides:

  • 📅 Date range monitoring
  • 🔎 Keyword filtering
  • 🧾 Structured recall details
  • 🏷 Product and company matching
  • 🚨 Hazard and remedy extraction
  • 🔁 Scheduled onlyNew mode
  • 📤 Dataset exports and API access

Official data source

The actor uses the official saferproducts.gov recall REST service:

https://www.saferproducts.gov/RestWebServices/Recall?format=json

The source is public and does not require login, cookies, scraping browser pages, or a paid API key.

Data you can extract

FieldDescription
recallIdStable CPSC Recall ID
recallNumberPublic recall number
recallDateRecall announcement date
lastPublishDateLast publish/update date when provided
titleRecall title
descriptionProduct/recall description
urlOfficial CPSC recall URL
consumerContactConsumer instructions/contact details
productsProduct objects with name, model, type, units, category
productNamesFlattened product name list
hazardsCPSC hazard statements
remediesRemedy instructions
remedyOptionsRemedy labels such as Refund, Repair, Replace
injuriesIncidents or injuries text
manufacturersManufacturer names and IDs when present
importersImporter names and IDs when present
retailersRetailer / sold-at text and IDs when present
distributorsDistributor names and IDs when present
countriesManufacturer countries
upcsUPCs when provided by CPSC
imageUrlsRecall image URLs
imagesImage URLs with captions
matchedFiltersWhich user filters matched
isNewWhether the Recall ID was unseen in monitor mode
sourceSource endpoint label
scrapedAtActor run timestamp

How much does it cost to monitor CPSC product recalls?

The actor uses pay-per-event pricing:

  • A small start event per run
  • A per-record event for each CPSC recall saved

Because it uses the official JSON endpoint and no browser, runs are normally inexpensive. Use a short date range and a low maxItems value for test runs. For ongoing monitoring, schedule the actor daily or weekly with onlyNew enabled so you pay only for newly emitted records.

Input options

sinceDays

Look back this many days when startDate is empty. The default is 30.

startDate and endDate

Use explicit inclusive dates in YYYY-MM-DD format.

keyword

Search across title, description, products, hazards, remedies, companies, countries, and consumer contact text.

productKeyword

Search only product names, descriptions, models, and types.

companyKeyword

Search manufacturers, importers, retailers, and distributors.

hazardKeyword

Search hazard statements.

remedyKeyword

Search remedy instructions and remedy option labels.

maxItems

Maximum recall records to save. Keep this small for first tests and increase for historical exports.

sortBy

Choose newest or oldest.

onlyNew

Enable scheduled monitoring mode. The actor stores seen RecallID values in the default key-value store and emits only unseen recalls on later runs that use the same storage.

includeImages

Include image URL and caption fields when CPSC provides them.

Example input: recent smoke alarm recalls

{
"sinceDays": 90,
"keyword": "smoke",
"maxItems": 50,
"sortBy": "newest",
"onlyNew": false,
"includeImages": true
}

Example input: company monitoring

{
"sinceDays": 365,
"companyKeyword": "Amazon",
"maxItems": 100,
"sortBy": "newest",
"onlyNew": true
}

Example output

{
"recallId": 10840,
"recallNumber": "26582",
"recallDate": "2026-06-25",
"title": "Combination Smoke and Carbon Monoxide (CO) Detectors Recalled...",
"url": "https://www.cpsc.gov/Recalls/...",
"productNames": ["Treatlife Smoke and Carbon Monoxide (CO) Detectors"],
"hazards": ["The recalled detectors can fail to alert consumers of a fire..."],
"remedyOptions": ["Refund"],
"countries": ["China"],
"matchedFilters": ["keyword"],
"isNew": true
}

How to run the actor

  1. Open the actor on Apify.
  2. Enter a date range or leave startDate empty and use sinceDays.
  3. Add keyword, product, company, hazard, or remedy filters if needed.
  4. Set maxItems.
  5. Click Start.
  6. Download the dataset or connect it to another workflow.

Scheduled monitoring workflow

For daily compliance monitoring:

  1. Set sinceDays to 7 or 14.
  2. Add your company, product, hazard, or keyword filters.
  3. Enable onlyNew.
  4. Create an Apify schedule that runs daily.
  5. Send dataset items to Slack, email, Google Sheets, a webhook, or your internal compliance system.

The actor dedupes by stable CPSC RecallID in its default key-value store.

Tips for better results

  • Use broad keyword searches for discovery.
  • Use productKeyword when matching SKUs or product families.
  • Use companyKeyword for manufacturers, importers, retailers, or marketplace names.
  • Use hazardKeyword for risks such as fire, burn, choking, fall, or laceration.
  • Use remedyKeyword for workflows focused on refunds, repairs, replacements, or warnings.
  • Keep scheduled runs small and frequent instead of running huge historical exports every day.

Integrations

You can connect CPSC recall data to:

  • Google Sheets product safety trackers
  • Slack alerts for new recall matches
  • Marketplace seller risk dashboards
  • Catalog compliance review queues
  • Insurance and legal research databases
  • Webhooks for internal case management systems
  • BigQuery or Snowflake for historical recall analytics

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/cpsc-product-recalls-monitor').call({
sinceDays: 30,
keyword: 'battery',
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/cpsc-product-recalls-monitor').call(run_input={
'sinceDays': 30,
'keyword': 'battery',
'maxItems': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~cpsc-product-recalls-monitor/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"sinceDays":30,"keyword":"battery","maxItems":50}'

MCP integration

Use this actor with Apify MCP tools in Claude Desktop, Claude Code, or other MCP clients.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/cpsc-product-recalls-monitor

Claude Code setup:

$claude mcp add apify-cpsc-recalls https://mcp.apify.com/?tools=automation-lab/cpsc-product-recalls-monitor

Claude Desktop JSON config:

{
"mcpServers": {
"apify-cpsc-recalls": {
"url": "https://mcp.apify.com/?tools=automation-lab/cpsc-product-recalls-monitor"
}
}
}

Example prompts:

  • "Run the CPSC Product Recalls Monitor for the last 30 days and summarize recalls mentioning batteries."
  • "Check whether any new CPSC recalls mention smoke detectors or carbon monoxide alarms."
  • "Export CPSC recalls involving Amazon sellers to a table with hazard and remedy columns."

Data freshness

The actor retrieves records from the live CPSC recall service at run time. Use lastPublishDate and recallDate to distinguish original announcements from updated records.

Limitations

  • The actor returns what the official CPSC recall endpoint provides.
  • Some fields, such as UPCs or manufacturers, may be empty for certain recalls.
  • Keyword matching is case-insensitive substring matching, not semantic classification.
  • onlyNew dedupe is scoped to the actor's default key-value store; changing storage starts a new seen-ID history.

Legality and ethical use

This actor accesses a public U.S. government recall API. Use the data for lawful compliance, safety, research, and business purposes. Always review official CPSC pages for legal decisions, public notices, or customer-facing communications.

FAQ

I got zero results

Try a broader date range, remove narrow filters, or search a simpler keyword such as battery, fire, smoke, toy, or refund.

My scheduled run did not emit an old recall

If onlyNew is enabled, the actor skips Recall IDs it has already seen in the same key-value store. Disable onlyNew or use a fresh storage to re-export historical records.

A field is empty

Some CPSC records do not include every nested field. Empty UPC, manufacturer, distributor, or image arrays usually mean the source record did not provide them.

Other Automation Lab actors can complement this workflow:

Support

If you need a new CPSC filter, output field, or integration example, open an issue on the actor page with the input you used and the expected output.