CPSC Product Recalls Scraper avatar

CPSC Product Recalls Scraper

Pricing

$2.70 / 1,000 product recalls

Go to Apify Store
CPSC Product Recalls Scraper

CPSC Product Recalls Scraper

Search official CPSC product recall records by keywords, product names, retailers, or dates. Get structured details such as hazards, injuries, remedies, product data, and official notice links.

Pricing

$2.70 / 1,000 product recalls

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

🔎 CPSC product recalls for safety checks

Retailers, product-safety teams, and researchers can search official Consumer Product Safety Commission (CPSC) recall records. Get structured rows with recall identity, product details, hazards, injuries, remedies, source-reported contacts, and direct notice links for review or downstream work.

📋 Structured CPSC recall records

Each dataset row is one structured recall record from the public CPSC source. It includes the official recall number, title, date, notice URL, product details, hazard, remedy, and other fields when the source reports them.

▶️ Search a date window or all available CPSC records

Add keywords, product names, retailers, or a recall date range, then run the Actor. Use calendar dates such as 2024-01-01 or relative values such as -30 days and now. Leave out dateRange to search all available dates.

Results are saved as structured records in the default dataset and can be read through the Apify API. Set maxItems when you want a run limit. If you leave maxItems empty, the Actor returns all available matching records until the source is exhausted.

⚙️ Input

Use the filters that match your question. Each list can contain one or more values.

Input fields

FieldTypeWhat it does
keywordsarray of stringsFinds recalls when a word or phrase appears in recall content, including product and hazard text.
productNamesarray of stringsLimits recalls to the product names you provide.
retailersarray of stringsLimits recalls to records that mention these retailers or sellers in sold-at information.
dateRangeobjectLimits recalls by date. Set both child fields to calendar dates or relative values, or leave this object out to search all available dates.
dateRange.startDatestringSets the first recall date to include, such as 2024-01-01 or -30 days.
dateRange.endDatestringSets the last recall date to include, such as 2024-12-31 or now.
maxItemsintegerSets the maximum number of recall records to return. Leave it empty to return all available matching records until the source is exhausted.

Example input

This is the public input from a successful current beta run using the prefilled 30-day date window and 50-record limit:

{
"dateRange": {
"startDate": "-30 days",
"endDate": "now"
},
"maxItems": 50
}

🧾 Output

The Actor returns one output link to the run's default dataset. Each dataset item is a recall object. Optional fields are included when the public CPSC notice reports them.

Output fields

FieldTypeWhat it does
datasetURL stringLinks to the default dataset for the run's recall records.
recallNumberstringGives the official CPSC recall number.
titlestringGives the title of the recall notice.
recallDatedate stringGives the date reported for the recall.
noticeUrlURL stringLinks to the direct official CPSC recall notice.
productobjectGroups the product details reported in the notice.
product.namestringGives the reported product name.
product.descriptionstringGives the reported product description when available.
product.modelstringGives the reported product model when available.
product.typestringGives the reported product type when available.
product.categorystringGives the reported product category when available.
product.affectedUnitsstringGives the reported number or description of affected units when available.
product.codesarray of stringsLists product codes reported in the notice when available.
hazardstringDescribes the hazard reported in the recall notice.
injuryInformationstringGives reported incidents or injuries when present.
remedyobjectGroups the remedy instructions and options reported in the notice.
remedy.instructionsstringGives instructions for getting the reported remedy.
remedy.optionsarray of stringsLists the remedy options reported in the notice when available.
retailersarray of stringsLists retailers or sellers reported in the notice.
soldAtstringGives the reported places or sales channels where the product was sold.
importerstringGives the importer reported in the notice.
manufacturerstringGives the manufacturer reported in the notice when available.
distributorstringGives the distributor reported in the notice when available.
manufacturingCountrystringGives the reported manufacturing country.
consumerContactobjectGroups public consumer contact details supplied in the notice.
consumerContact.phonestringGives a public consumer contact phone number when available.
consumerContact.emailstringGives a public consumer contact email address when available.
consumerContact.websiteURL stringGives a public consumer contact website when available.
consumerContact.addressstringGives a public consumer contact address when available.
imagesarray of objectsLists official product images supplied by the source.
images[].urlURL stringLinks to an official product image.
images[].captionstringGives the image caption when available.
relatedLinksarray of URL stringsLists related official notice links supplied by the source.
recallTypestringGives the recall type reported by the source when available.

Example output

This is one unshortened row from a successful current beta run with maxItems set to 1:

{
"recallNumber": "26789",
"title": "5Color Recalls Children’s Bicycle Helmet and Pads Sets Due to Risk of Serious Injury or Death from Head Injury; Violate Mandatory Standard for Bicycle Helmets",
"recallDate": "2026-09-24",
"noticeUrl": "https://cpsc.gov/Recalls/2026/5Color-Recalls-Childrens-Bicycle-Helmet-and-Pads-Sets-Due-to-Risk-of-Serious-Injury-or-Death-from-Head-Injury-Violate-Mandatory-Standard-for-Bicycle-Helmets",
"product": {
"name": "5Color Children’s Bike Helmet and Pads Sets",
"description": "This recall involves 5Color-branded bicycle helmet and pads sets. The sets consist of a pink helmet, knee and elbow pads. Only the size small helmets are included in this recall. The helmets are size small (S), fitting a head circumference of about 18 to 22 inches, and have black padding, black straps, a black and a black fit-adjusting knob at the back. “2026/03/20” are included in this recall. “Model No.: YD-001,” “Lot/Ref: YD-260320” and “Date 2026/03/20” are printed on a label on the inside of the helmet and on the product packaging.",
"type": "Helmets & Helmet Accessories",
"category": "1995",
"affectedUnits": "About 324"
},
"hazard": "The helmets in the recalled sets violate the mandatory safety standard for bicycle helmets because the helmets do not comply with the impact attenuation, retention system, positional stability, labeling and certification requirements. The helmets can fail to protect the user in the event of a crash, posing a serious risk of injury or death due to head injury.",
"remedy": {
"instructions": "Consumers should stop using the helmets immediately and contact 5Color for a full refund of the set. Consumers will be asked to destroy the recalled helmet by cutting the straps and email a photo of the destroyed helmet to FiveColorCS@163.com. Consumers should then dispose of the recalled helmet. Consumers may keep the protection pads.",
"options": [
"Refund"
]
},
"injuryInformation": "None reported",
"retailers": [
"Sold Online At:\nAmazon.com in May 2026 for between $25 and $26.",
"Hengqin Guangwei Consulting Co., Ltd., dba. 5Color, of China"
],
"manufacturingCountry": "China",
"consumerContact": {
"phone": "833-382-6461",
"email": "FiveColorCS@163.com"
},
"images": [
{
"url": "https://cpsc.gov/s3fs-public/5Color1.jpg?VersionId=atSu6_Bv4DlP1J_K78WbQQJAQhdw9JUP",
"caption": "Recalled 5Color Helmet and Pads Set"
},
{
"url": "https://cpsc.gov/s3fs-public/5Color2.jpg?VersionId=ZWuv6bs5xXdfyiOT.9yKdKcrqGdi12a0",
"caption": "“Model No.: YD-001,” “Lot/Ref: YD-260320” and “Date 2026/03/20” are printed on a label inside of the Recalled 5Color helmet and on the set’s packaging."
}
]
}

💳 Pricing

This Actor uses pay-per-event pricing. Each matching product recall saved to the dataset is charged at the current listed rate of $0.0027. The Apify Store pricing panel shows the current charge.

🔌 Integrations

Read the dataset through the Apify API or connect a completed run to a downstream workflow. You can also schedule runs in Apify when you need to repeat the same search.

❓ FAQ

Can I filter recalls by product name or retailer?

Yes. Add product names or retailers to narrow the CPSC records returned for a run. Add keywords when the term may appear in recall content, product text, or hazard text.

Can I search all available recall dates?

Yes. Leave out dateRange to search all available dates. You can also set a calendar or relative start and end date.

What happens when I leave maxItems empty?

The Actor returns all available matching records until the source is exhausted. Set maxItems when you want to stop after a chosen number of records.

Does a recall result prove that my exact product or inventory is affected?

No. The Actor does not determine whether a particular SKU, listing, or inventory item is affected. Read the official notice and verify important safety or business decisions with qualified professionals.

No. It returns public CPSC records for review and does not make legal or compliance decisions or guarantee that a remedy is complete.

Are all product, hazard, and contact fields present in every record?

No. Optional source fields are included when the public notice reports them.

Do I need a CPSC API key?

No customer CPSC API key is required for the public source data used by this Actor.

Can one run perform several independent searches?

No. Configure one set of filters for each run. Start another run when you need a separate search.

Does this Actor keep a cross-run recall baseline or send alerts?

No. It does not maintain a cross-run baseline or emit new, changed, or resolved lifecycle alerts.

📝 Changelog

v0.0 (26-09-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré