CPSC Product Recalls & Safety Data Monitor
Pricing
from $4.00 / 1,000 recall results
CPSC Product Recalls & Safety Data Monitor
Monitor US consumer product recalls from public CPSC data. Filter by date, product, manufacturer, retailer, or keywords and export hazards, injuries, remedies, retailers, manufacturers, images, and UPCs when reported — with health checks, schedules, and structured output.
Pricing
from $4.00 / 1,000 recall results
Rating
0.0
(0)
Developer
Johnn Mottin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Monitor US consumer product recalls from official public CPSC data
Search and export structured U.S. consumer product recall data for compliance monitoring, e-commerce safety workflows, marketplace research, insurance analysis, and product-risk datasets.
The Actor queries the public CPSC recall source by a recall-date window and can return structured fields such as:
- recall number and publication date;
- product names and product details;
- hazards;
- reported injuries;
- remedies;
- retailer information;
- manufacturers and manufacturing countries;
- official product images;
- UPCs when the CPSC record includes them.
No login. No browser automation. No CPSC API key.
Key features
- Relative or absolute recall-date windows
- Product-name filtering
- Manufacturer filtering
- Retailer filtering
- Keyword filtering across recall content
- Hazard and injury data
- Remedy information
- Retailer and manufacturer data
- Official CPSC image URLs
- UPC extraction when reported
- Structured normalized output
- Built-in core-field health checks
- Legitimate empty-window handling
- Schedule-ready monitoring
- Pay only for records actually written
Unofficial community Actor. Not affiliated with, sponsored by, or endorsed by the U.S. Consumer Product Safety Commission (CPSC). Data comes from public CPSC recall sources and remains subject to the applicable source terms and policies.
Why recall monitoring matters
U.S. federal law prohibits selling, offering for sale, or distributing certain recalled consumer products.
For online sellers, retailers, marketplaces, resellers, and compliance teams, recall monitoring can help identify products that require investigation before they remain listed or are sold.
This Actor helps turn public CPSC recall notices into structured records that can be filtered, exported, scheduled, and compared against internal product or catalog data.
Important legal and operational note
This Actor is a data-monitoring tool, not legal advice and not a substitute for reviewing the authoritative CPSC recall notice.
A recall record should be matched carefully against the exact product, model, date code, remedy status, and other identifying information in the official notice.
CPSC guidance also distinguishes recalled products that remain subject to the recall from products for which an authorized remedy has already been applied.
When a business decision depends on recall status, verify the current CPSC notice and applicable remedy before acting.
Who it's for
Amazon, Walmart, Shopify, and marketplace sellers
Monitor recent CPSC recalls and filter records using retailer, product, manufacturer, or keyword terms relevant to your catalog.
Examples:
Amazonbatterystrollercribchargerfireburn
Use the resulting dataset as an input to a catalog-review or compliance workflow.
The Actor does not automatically prove that one of your exact SKUs is recalled. Product matching remains a downstream task.
E-commerce compliance teams
Create recurring recall feeds around:
- product categories;
- manufacturers;
- retailers;
- hazard keywords;
- defined monitoring windows.
Insurers and product-liability analysts
Export structured public fields such as:
- hazard text;
- injury information;
- remedy details;
- manufacturer information;
- retailer text;
- recall dates.
Safety and risk data teams
Use the Apify API or integrations to route recall records into:
- databases;
- dashboards;
- internal alerting systems;
- spreadsheets;
- compliance workflows;
- product-risk pipelines.
How it works
The Actor makes one query per run against the configured CPSC recall source using a recall-date window.
You can choose:
Relative window
Use:
daysBack
The default is:
30
The relative window is recalculated at runtime.
That makes it useful for saved Apify Tasks because the date range moves automatically with every scheduled run.
Absolute window
Use both:
recallDateStartrecallDateEnd
in:
YYYY-MM-DD
format.
When both absolute dates are supplied, they take precedence over daysBack.
Filtering model
Filters are applied in two stages.
Source-side filters
The source query supports:
productNamemanufacturer
These are sent with the CPSC request.
Actor-side filters
After records are fetched, the Actor can further filter using:
retailerkeywords
retailer performs substring matching against the recall's retailer data.
keywords can match recall content including:
- title;
- description;
- product names;
- hazard text.
Records discarded by filters are not written as billable dataset records.
Input
Example: e-commerce recall monitoring
{"daysBack": 30,"retailer": "Amazon","keywords": ["battery", "fire", "burn"],"maxResults": 100}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
daysBack | int 1–365 | 30 | Relative recall window when absolute dates are not supplied. Recomputed at runtime. |
recallDateStart / recallDateEnd | YYYY-MM-DD | — | Absolute date window. Both values are required together and take precedence over daysBack. |
productName | string | — | Source-side product-name filter, e.g. stroller. |
manufacturer | string | — | Source-side manufacturer filter. |
retailer | string | — | Actor-side substring filter against the recall's retailer entries. |
keywords | string[] | [] | Actor-side keyword filter across title, description, product names, and hazard text. |
maxResults | int | 100 | Maximum written recall records. Hard limit: 5,000. |
Example: product-category watch
{"daysBack": 30,"keywords": ["crib","stroller","car seat","toy"],"maxResults": 100}
Example: manufacturer watch
{"daysBack": 90,"manufacturer": "Example Manufacturer","maxResults": 200}
Example: retailer watch
{"daysBack": 30,"retailer": "Amazon","maxResults": 200}
The retailer match uses the free-text retailer information supplied in the recall record.
It should be treated as a recall-filtering aid, not as a deterministic SKU-level catalog match.
Example: absolute historical window
{"recallDateStart": "2026-01-01","recallDateEnd": "2026-06-30","maxResults": 500}
Output
The Actor writes one structured dataset record per matching recall.
Missing scalar values are returned as:
null
and missing list values as:
[]
The Actor does not invent missing data.
Example output
Example structure from an official public CPSC recall record:
{"recallId": 10876,"recallNumber": "26635","recallDate": "2026-07-23T00:00:00","title": "Aojieni Silicone Recalls Sili Factory Pull String Teething Toys Due to Risk of Serious Injury or Death from Choking...","url": "https://www.cpsc.gov/Recalls/2026/Aojieni-Silicone-Recalls-Sili-Factory-Pull-String-Teething-Toys...","productNames": ["Sili Factory Pull String Teething Toys"],"hazards": ["The recalled teething toys... posing a risk of serious injury or death from choking..."],"injuries": ["None reported"],"remedyOptions": ["Refund"],"retailers": ["Online at Amazon.com from January 2025 through April 2026 for about $10."],"manufacturerCountries": ["China"],"imageUrls": ["https://www.cpsc.gov/s3fs-public/..."],"upcs": []}
Output fields
| Field group | Fields | Notes |
|---|---|---|
| Identity | recallId, recallNumber, recallDate, title, url | Core recall identity fields. |
| Publication | lastPublishDate | Publication/update metadata when available. |
| Description | description, consumerContact | Public recall description and contact information. |
| Products | productNames, products[] | products[] can preserve name, model, type, and units when supplied. |
| Safety | hazards[], injuries[] | Public hazard and injury information. |
| Remedy | remedies[], remedyOptions[] | Public CPSC remedy information. |
| Retail | retailers[], soldAtLabel | Free-text retailer and sold-at information when available. |
| Manufacturer | manufacturers[], manufacturerCountries[] | Manufacturer data when present. |
| Images | imageUrls[], imageCaptions[] | Official recall image references when available. |
| Product codes | upcs[] | UPCs when the CPSC record supplies them. |
| Related links | inconjunctionUrls[] | Related links when present. |
UPC availability
UPCs are useful when present because they can support downstream matching against e-commerce catalog data.
However, CPSC recall records often do not include UPCs.
In the sample documented for this Actor version, UPCs were present in only a small minority of recalls.
Therefore:
upcs[]
should be treated as best-effort enrichment, not the primary matching strategy.
More reliable downstream matching usually combines fields such as:
- product name;
- model information;
- manufacturer;
- retailer text;
- description;
- official recall notice.
Retailer data as a catalog-matching signal
The:
retailers[]
field can contain free-form text describing where, when, and sometimes for how much the recalled product was sold.
This can be useful when checking whether a recall is relevant to:
- Amazon sellers;
- Walmart sellers;
- Shopify merchants;
- marketplaces;
- retail catalogs.
But retailer text alone does not prove that a particular SKU in your own catalog is affected.
Exact product matching should use the identifying details from the authoritative recall notice.
Built-in health checks
Core fields are monitored for extraction completeness.
Core fields include:
recallIdrecallNumberrecallDatetitleurl
If more than 50% of returned records are missing a monitored core field, the run fails explicitly with:
DEAD_FIELDS
and identifies the affected field.
This prevents an upstream contract change from silently producing a dataset with a broken essential column.
Run diagnostics
Operational information is stored in:
STATS
This can include:
- core-field completeness;
- UPC presence rate;
- retries;
- warnings;
- legitimate empty-window status.
Failures can be written to:
ERRORS
with stable error codes such as:
HTTP_UNAVAILABLEHTTP_TIMEOUTINVALID_INPUTAPI_CONTRACT_CHANGEDEMPTY_RESULTSDEAD_FIELDS
Legitimate empty windows
A short date range may contain no recalls.
When the CPSC source responds successfully with an empty recall list, the Actor treats that as a legitimate monitoring result rather than automatically labeling it as a technical failure.
The condition is recorded through:
STATS.legitimateEmptyWindow
This is intentionally different from:
- a failed HTTP request;
- an invalid response;
- an upstream API-contract change.
Scheduling
This Actor is designed for recurring recall monitoring.
A relative:
daysBack
window recomputes every run, so a saved Task does not require manually updating calendar dates.
Recommended cadence
A weekly schedule is a practical default because CPSC's public recall data is published on a periodic basis.
Organizations with internal workflows that require more frequent checks may schedule runs more often, but repeated runs can return the same records until the public source changes.
Example weekly setup
- Save your filters as an Apify Task.
- Go to Console → Schedules → Create schedule.
- Add the Task.
- Set a weekly schedule.
- Route the dataset to your downstream system.
Example Monday 6:00 AM cron:
0 6 * * 1
Because daysBack is relative, the time window moves automatically.
Possible destinations include:
- Slack;
- Google Sheets;
- CRM systems;
- databases;
- webhooks;
- e-commerce compliance workflows;
- product-risk dashboards.
API usage
Run the Actor and retrieve dataset items in one request:
curl -s "https://api.apify.com/v2/acts/<YOUR_USERNAME>~cpsc-recalls-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"daysBack":7,"maxResults":50}'
Example catalog-review workflow
Input:
{"daysBack": 30,"retailer": "Amazon","keywords": ["battery","charger","fire","burn"],"maxResults": 200}
Possible workflow:
- run the Actor on a schedule;
- receive matching recent recall records;
- compare product names, manufacturer data, retailer text, UPCs when present, and other product identifiers with your internal catalog;
- send possible matches to a compliance review step;
- verify the authoritative CPSC recall notice before taking product-specific action.
The Actor performs steps 1–2 and provides structured data for the downstream comparison.
It does not automatically determine that an internal SKU is recalled.
Pricing
This Actor uses Pay Per Event pricing.
You are billed for recall records actually written to the dataset.
Records discarded by:
- the date window;
- source-side filters;
- Actor-side filters;
maxResults
are not billed as written recall records.
The Pricing tab on the Actor page is always the authoritative source for current rates and any run-start fee.
Cost-control inputs
Use:
daysBackproductNamemanufacturerretailerkeywordsmaxResults
to control how broad the result set is.
Honest limits
CPSC recall volume is not constant
Some short windows can legitimately return zero records.
A longer relative window is more suitable when you want a recurring feed that is less likely to be empty.
UPCs are sparse
Do not build a recall-matching workflow that depends only on UPC availability.
Use product and manufacturer identifiers from the full recall record.
Hazard text is free-form
The Actor filters hazard-related keywords from public recall text.
It does not claim that the source provides a complete standardized hazard taxonomy for every record.
Retailer information is free-form
Retailer strings can include narrative information about:
- where the product was sold;
- when it was sold;
- price information.
They are useful for filtering but are not normalized merchant catalog IDs.
One source query per run
The current design sends one date-window query per run.
There is no multi-page pagination workflow in this Actor version.
Source data can be revised
Recall information and remedies can be updated after initial publication.
For decisions that matter operationally or legally, verify the current official CPSC recall notice.
Compliance and legal note
This Actor provides structured access to public recall information.
It does not determine:
- whether a particular physical item exactly matches a recalled model;
- whether a recall remedy has already been applied to a particular item;
- whether a specific marketplace listing satisfies legal requirements;
- what legal action your organization should take.
Federal CPSC rules prohibit the sale or offer for sale of recalled products covered by the applicable recall provisions.
Use the official recall notice and appropriate compliance procedures for product-specific decisions.
FAQ
Do I need a CPSC account?
No.
Do I need a CPSC API key?
No.
Does it use browser automation?
No.
The Actor queries the public CPSC recall source directly.
Can I monitor recalls from the last N days?
Yes.
Use:
{"daysBack": 30}
Can I search an exact historical window?
Yes.
Supply both:
recallDateStartrecallDateEnd
Can I filter by product name?
Yes.
Use:
productName
Can I filter by manufacturer?
Yes.
Use:
manufacturer
Can I filter for a retailer such as Amazon?
Yes.
Example:
{"retailer": "Amazon"}
The match is performed against the recall's free-text retailer entries.
It is not a direct query against your Amazon seller catalog.
Can I search hazard keywords?
Yes.
Example:
{"keywords": ["fire","burn","battery"]}
Does the Actor return UPCs?
Yes, when the CPSC source publishes them.
UPC availability is sparse, so missing UPCs should be expected.
Does it return injuries?
Yes, when injury information is present in the source record.
Does it return remedies?
Yes.
The normalized record can contain:
remedies[]remedyOptions[]
Does it return product images?
Yes, when official image URLs are supplied in the recall data.
What happens when there are no recalls in the selected window?
A valid empty source response can be treated as a legitimate empty window and recorded through:
STATS.legitimateEmptyWindow
What am I charged for?
Recall records actually written to the dataset.
Records discarded by configured filters or limits are not billed as written result events.
Always check the Actor's Pricing tab for current prices and any run-start fee.
Can I schedule it?
Yes.
Weekly monitoring is a practical default for this data source.
Can this Actor tell me with certainty that one of my exact products is recalled?
Not by itself.
It returns structured CPSC recall records.
You must compare the recall's identifying information against the exact product in your catalog and verify the official recall notice.
Is selling recalled merchandise prohibited?
U.S. federal law prohibits the sale, offer for sale, or distribution in commerce of consumer products subject to applicable publicly announced recall or corrective-action provisions.
For product-specific decisions, review the current CPSC notice, including whether an authorized remedy has already been applied.
Is this affiliated with the CPSC?
No.
This is an unofficial community Actor and is not affiliated with, sponsored by, or endorsed by the CPSC.
Data source
The Actor uses public U.S. Consumer Product Safety Commission recall data.
The CPSC is the authoritative source for the underlying recall notices.
The Actor normalizes and filters those public records for easier use in Apify datasets and downstream workflows.
Part of the JM Forge suite
Also from the same developer:
-
NHTSA Vehicle Recalls & Complaints Scraper — Batch-check NHTSA recall-campaign and owner-complaint data by make, model, and model year.
-
FDA Recalls: Food, Drug & Device Scraper — Search and normalize FDA food, drug, and medical-device recall data with filters, watchlists, and operational priority scoring.
-
Amazon Product Search Scraper — Extract Amazon product listings, prices, discounts, ratings, ASINs, and URLs across seven marketplaces.
Support
Report issues in the Issues tab of this actor — I respond within 24h. Feature requests welcome.