CPSC Product Recalls Scraper
parseforge/cpsc-recalls-scraper
OtherAutomationDeveloper tools
Scrapes official U.S. Consumer Product Safety Commission recalls by date range or keyword. Returns each recall as a flat row with title, description, date, and source URL.
- Total users
- 2
- Monthly active
- 0
- Total runs
- 136
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
CPSC Product Recalls Scraper
Scrape CPSC product recalls by date range or keyword, up to a million per run. Every recall comes with its title, description, date, and source URL. No login or API key. Export to CSV, JSON, Excel, or XML.
The CPSC website lists every product recall in the United States, but there is no official bulk export and the search interface is built for one-off lookups. This Actor reads the public recall feed directly, filters it by date range or keyword as it runs, and returns each match in one fixed schema. It is the fastest way to turn CPSC recall data into a spreadsheet or API response.
| Who uses it | What they scrape CPSC for |
|---|---|
| Ecommerce compliance teams | Which of their SKUs have an active CPSC recall |
| Product safety researchers | How many recalls mention a specific hazard, like fire or choking |
| Brand risk analysts | Whether a competitor or supplier has a recent recall |
| Journalists and watchdog groups | A chronological list of recalls for a story or annual report |
What it does
This Actor collects CPSC product recalls by date range or keyword, and returns each recall as a flat row with its title, description, date, and source URL.
- ๐ Date range filter: set dateFrom and dateTo to pull only recalls in a window, defaulting to the last 12 months.
- ๐ Keyword search: pass a product or hazard term like 'battery' or 'children' to match recalls by title or description.
- ๐ฆ Bulk collection: raise maxItems up to 1,000,000 to pull the full recall history in one run.
- ๐งพ Flat row output: each recall is one row with title, description, date, and source URL, ready for CSV, JSON, Excel, or XML.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with CPSC data
๐ก๏ธ Monitor your own SKUs for recalls.
A compliance team runs the Actor weekly with a keyword for their brand or product line, then checks the returned titles against their catalog and flags any match for legal review.
๐ Track recall trends by hazard.
A product safety researcher pulls all recalls from the last five years with the keyword 'fire', then counts them by month to show whether a hazard is rising or falling.
๐ Vet suppliers and competitors.
A brand risk analyst runs the Actor with a supplier's name before signing a contract, and reviews the recall history to decide whether the risk is acceptable.
๐ฐ Build a recall news feed.
A journalist schedules the Actor daily with no filters, then publishes the newest recall titles and dates as a public safety notice.
Why choose this scraper
| What you get | |
|---|---|
| Official CPSC data | Every row comes from the U.S. Consumer Product Safety Commission's public recall feed, not a third-party summary. |
| No API key or registration | The Actor reads the public feed directly, so you can start a run without signing up for anything. |
| One fixed schema | Title, description, date, and source URL on every row, so downstream code never breaks. |
| Bulk export built in | Download the full result set as CSV, JSON, Excel, or XML from the Apify dataset. |
How it compares
This Actor focuses on CPSC recall data with a simple date and keyword filter, while the competitors below either cover multiple agencies or add risk scoring.
| Feature | ParseForge | US Recall API | FDA, CPSC & USDA FSIS | Product Safety Consumer Risk MCP Server | CPSC Product Recalls Scraper |
|---|---|---|---|---|
| CPSC recall data | Yes | Yes | Yes | Yes |
| Date range filter | Yes | Yes | Not listed | Not listed |
| Keyword search on title or description | Yes | Not listed | Not listed | Not listed |
| Bulk export up to 1,000,000 rows | Yes | Not listed | Not listed | Not listed |
| FDA and USDA FSIS recalls in the same run | Not listed | Yes | Not listed | Not listed |
| Pre-recall signal detection | Not listed | Not listed | Yes | Not listed |
| Severity scoring | Not listed | Yes | Not listed | Not listed |
Configure the run
Drive the Actor from a date range and a keyword, alone or together, and filters run as each recall is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10
}
A larger pull:
{
"maxItems": 200
}
Pricing
Pay-per-result: $0.0065 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.65 |
| 1,000 results | $6.50 |
| 10,000 results | $65.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the CPSC Product Recalls Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to CPSC through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/cpsc-recalls-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your filters. If dateFrom is set to a future date or dateTo is before dateFrom, the range is empty. Also try removing the searchQuery, because a very specific keyword may match nothing in the feed.
Why did the run stop before reaching maxItems?
The Actor stops when it has read all recalls that match your filters. If the CPSC feed has fewer matching recalls than your maxItems, the run ends early. Widen the date range or remove the keyword to get more rows.
Why is my keyword not matching a recall I know exists?
The search matches the title and description text exactly as published. Try a shorter or more general term, or check the recall on cpsc.gov to see how it is worded.
Why are some recalls missing from the last 12 months?
The default dateFrom is one year before the run date. If a recall was published outside that window, it will not appear. Set dateFrom to an earlier date to include it.
Can I get images or remedy instructions?
The Actor returns the title, description, date, and source URL. For images, remedy details, or other fields, open the source URL in the row to view the full CPSC page.
FAQ
| Question | Answer |
|---|---|
| Where does the data come from? | The Actor reads the public recall feed on the U.S. Consumer Product Safety Commission website, cpsc.gov. It does not use an unofficial API or a third-party database. |
| Can I get all CPSC recalls, not recent ones? | Yes. Set maxItems to a high number like 1,000,000 and leave dateFrom empty to pull the full history the feed exposes. The Actor will keep reading until it hits your limit or runs out of recalls. |
| What does one row look like? | Each row has the recall title, a description, the recall date, and the source URL on cpsc.gov. The exact field names are shown in the sample output on this page. |
| How do I filter by product type or hazard? | Use the searchQuery input. It matches the keyword against the recall title and description, so 'battery' returns battery-related recalls, 'children' returns children's product recalls, and so on. |
| Can I schedule this to run automatically? | Yes. In Apify, create a schedule for the Actor with your chosen inputs, and it will run on the interval you set. Each run produces a fresh dataset you can export or push to another system. |
| Is there a limit on how many recalls I can collect? | The maxItems input lets you set any number from 1 to 1,000,000. The only practical limit is how many recalls the CPSC feed currently contains. |
| Do I need an API key or login for CPSC? | No. The Actor reads the public feed directly, so you do not need to register an app or manage credentials. |
| What export formats are supported? | You can export the dataset as CSV, JSON, Excel, or XML from the Apify platform, or use the Apify API to fetch the results programmatically. |
| Can I get the full recall description, not a summary? | The Actor returns the description as published in the CPSC feed. If the feed provides a full description, you get it; if it provides only a short summary, that is what appears in the row. |
| How fresh is the data? | Each run reads the live CPSC feed at that moment, so the results are as current as the feed itself. Schedule frequent runs if you need near-real-time monitoring. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Consumer Product Safety Commission. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many recalls to collect per run. | 10 |
| dateFrom | string | Only include recalls from this date (YYYY-MM-DD). Default: last 12 months. | not set |
| dateTo | string | Only include recalls up to this date (YYYY-MM-DD). Default: today. | not set |
| searchQuery | string | Filter recalls by keyword in title or description (e.g., 'battery', 'children', 'fire'). | not set |
Pricing
from $6.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.006 to $0.0065 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~cpsc-recalls-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
