ParseForge Scrapers

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.

Run this scraper See the API call
Total users
2
Monthly active
0
Total runs
136
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

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

  1. Create a free Apify account with $5 in credit.
  2. Open the CPSC Product Recalls Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

FieldTypeWhat it doesDefault
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 forWhat it isPrice 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.

POST ยท run and get results
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.

input.json
{
  "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.

Related scrapers

Run CPSC Product Recalls Scraper on Apify All scrapers