# CPSC Product Recalls Scraper (`parselab/cpsc-product-recalls-scraper`) Actor

Search US consumer product recalls from the CPSC by keyword, product, company or date. Get hazards, remedies, injuries reported, units sold, manufacturers, retailers, importers, country of manufacture and product photos. Monitor recalls for your category and export the list to CSV or Excel.

- **URL**: https://apify.com/parselab/cpsc-product-recalls-scraper.md
- **Developed by:** [ParseLab](https://apify.com/parselab) (community)
- **Categories:** Business, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $13.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## CPSC Product Recalls Scraper

This CPSC scraper collects US consumer product recalls from the Consumer Product Safety Commission and returns the full record for each one. Search by keyword, product, company or date and get the hazard, the remedy, injuries reported, how many units were sold, who made, imported, distributed and sold the product, the country of manufacture and the recall photos.

Retailers, brands, insurers, product safety teams, lawyers and parents' groups use it to monitor recalls in their category without checking the CPSC website every week.

### What can you do with this CPSC recall scraper?

- Find product recalls by keyword, for example infant sleepers or space heaters
- Get every recall issued by one company
- Find recalls between two dates
- See which retailers sold a recalled product
- Find out which country a recalled product was made in
- Check if injuries were reported for a recall
- See whether the remedy is a refund, a repair or a replacement
- Download recall photos and product model numbers
- Export CPSC recalls to CSV or Excel

### What data can you extract from the CPSC?

| Field | What it holds |
|---|---|
| `recallId`, `recallNumber`, `url` | Recall identifiers and official page |
| `title`, `recallDate`, `description` | What was recalled and when |
| `products` | Each product with name, model, type and units affected |
| `hazards` | Why the product is dangerous |
| `remedies`, `remedyOptions` | What consumers should do (refund, repair, replace) |
| `injuries` | Injuries reported, or "None reported" |
| `manufacturers`, `retailers`, `importers`, `distributors` | Every company in the chain |
| `manufacturerCountries` | Where it was made |
| `consumerContact` | How to reach the company |
| `images` | Recall photos with captions |

### How to scrape CPSC recalls

1. Type a keyword, a product name or a company name. Use any one of them or combine them.
2. Optionally set a start and end date.
3. Set **Max Items**.
4. Click **Start** and export the dataset as CSV, Excel or from the Apify console.

### Input example

```json
{
  "recallTitle": "infant",
  "dateFrom": "2026-01-01",
  "maxItems": 50
}
```

### Output example

```json
{
  "recallNumber": "26721",
  "title": "Kmaier Recalls Infant Walkers Due to Risk of Serious Injury or Death from Fall Hazard",
  "recallDate": "2026-08-27T00:00:00",
  "products": [
    { "name": "Kmaier Infant Walkers", "type": "Baby Walkers or Jumpers", "unitsAffected": "About 243" }
  ],
  "hazards": ["The recalled walkers violate the mandatory standard for infant walkers because they can fit through a standard doorway and fail to stop at the edge of a step, posing a deadly fall hazard."],
  "remedyOptions": ["Refund"],
  "injuries": ["None reported"],
  "manufacturerCountries": ["China"],
  "url": "https://cpsc.gov/Recalls/2026/Kmaier-Recalls-Infant-Walkers"
}
```

### How much does it cost to scrape CPSC recalls?

You pay per result: $18 per 1,000 recalls plus a tiny start fee. The free plan returns up to 10 recalls per run.

### Good to know

- Search terms match recall titles, so a specific word works better than a broad one.
- Some lists, such as manufacturers or importers, can be empty when the CPSC did not publish them for that recall.
- Dates are the recall date published by the CPSC.

### Who uses product recall data?

- **Retailers and marketplaces** check listings against new recalls.
- **Brands** watch competitors' recalls and category trends.
- **Insurers and lawyers** research hazards and injury patterns.
- **Consumer groups and journalists** publish alerts for parents and shoppers.

### FAQ

**Do I need a CPSC account?**
No. The Actor works without any login.

**Does it cover vehicles or food?**
No. Vehicles are handled by NHTSA and food and drugs by the FDA. This Actor covers consumer products such as toys, furniture, appliances and clothing.

**How often are recalls added?**
The CPSC publishes new recalls every week. Schedule the Actor weekly with a recent start date to catch them.

**Can I get the photos?**
Yes. Each recall includes photo links with captions.

### Monitoring ideas

- Weekly alert for recalls that mention your product category
- All recalls for a competitor, whether they made, imported, distributed or sold the item
- Recalls sold through one retailer, to check your own catalog
- Recalls with reported injuries, for risk and insurance research

When you search by company, the Actor checks the company as manufacturer, retailer, importer and distributor, and merges the results without duplicates.

### Automate and connect

Schedule the Actor from the Apify console to refresh the data daily or weekly. Send finished datasets to Google Sheets, Zapier, Make or n8n, or trigger a webhook when a run ends, so your reports and alerts update without manual work.

### Legal note

This Actor collects information that is publicly visible on the website. Check the source site's terms and your local rules before using the data.

### Support

Missing a field or found a bug? Open an issue from the Actor page.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000.

## `recallTitle` (type: `string`):

Search recall titles, e.g. 'infant', 'furniture', 'battery'.

## `productName` (type: `string`):

Filter by product name, e.g. 'stroller', 'crib'.

## `company` (type: `string`):

Filter by manufacturer, retailer, importer or distributor name.

## `dateFrom` (type: `string`):

YYYY-MM-DD.

## `dateTo` (type: `string`):

YYYY-MM-DD.

## Actor input object example

```json
{
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parselab/cpsc-product-recalls-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parselab/cpsc-product-recalls-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parselab/cpsc-product-recalls-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parselab/cpsc-product-recalls-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GOzFBEfYaTSz6VcZa/builds/fpI8FfVX61ifbbVHe/openapi.json
