Other · Lead generation
CPSC Product Recalls Scraper — SaferProducts.gov Export
Export US Consumer Product Safety Commission (CPSC) recall records via the public, keyless SaferProducts.gov REST service — products, hazards, remedies, retailers, injuries and images — as clean flattened JSON rows for any bounded date window.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
CPSC's SaferProducts.gov service publishes every US consumer product recall as a raw, deeply nested JSON payload — hazards, remedies, retailers, manufacturers and images all buried in their own arrays. This Actor pulls a bounded date window and flattens every nested field into one clean row, so a compliance watchlist or marketplace safety check becomes a spreadsheet instead of a parsing project. Different regulator and wire format than our FDA drug/food/device Actor — not a duplicate.
What we handle for you
- 📅 Bounded date windows, always — both dates are required and capped at 31 days, so a run never balloons into a full-corpus pull.
- 🧹 Every nested array flattened — hazards, remedies, retailers, manufacturers and images all land as clean comma-joined strings, never raw JSON blobs.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts,Retry-Afterhonoured. - 🫠 One bad record never fails the run — a malformed recall is logged and skipped, the rest of the window still ships.
- 🧊 Clean, typed dataset rows — Pydantic-validated, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for rows that hit your dataset, plus one small warm-up charge per run.
Use cases
- Screen marketplace listings against active recalls before they ship.
- Feed a compliance watchlist with weekly CPSC recall windows.
- Back an insurer's product-liability risk model with structured recall history.
- Give consumer-safety researchers clean rows instead of CPSC's nested JSON.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
recallDateStart | string | yes | Start of the recall-date window, inclusive, as YYYY-MM-DD. Required — this Actor never runs an unbounded query. |
recallDateEnd | string | yes | End of the recall-date window, inclusive, as YYYY-MM-DD. Must be on or after the start date and within 31 days of it. |
maxResults | integer | no | Stop after this many records. Each record is one billed result-row event. The date window, not this number, controls how much CPSC data is fetched. |
{
"recallDateStart": "2026-08-14",
"recallDateEnd": "2026-08-21",
"maxResults": 10,
"proxyConfiguration": {
"useApifyProxy": false
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
recall_idrecall_numberrecall_datelast_publish_datetitledescriptionurlconsumer_contactproductsproduct_unitshazardsremediesremedy_optionsinjuriesretailersmanufacturers
{
"recall_id": 10937,
"recall_number": "26716",
"recall_date": "2026-08-20",
"last_publish_date": "2026-08-20",
"title": "CCM Hockey U.S. Recalls FMHVR Hybrid Visors Due to Impact Injury Hazard",
"description": "The recalled visors can crack or shatter on impact...",
"url": "https://www.cpsc.gov/Recalls/2026/...",
"consumer_contact": "CCM Hockey U.S. toll-free at 855-333-2662",
"products": "FMHVR Hybrid Visor",
"product_units": "About 12,957",
"hazards": "Impact injury hazard",
"remedies": "Consumers should stop using the recalled visors immediately",
"remedy_options": "Replace",
"injuries": "None reported",
"retailers": "Hockey specialty stores nationwide, Oct 2025-Jul 2026, $80-$150",
"manufacturers": "",
"importers": "CCM Hockey U.S.",
"distributors": "",
"manufacturer_countries": "China",
"sold_at_label": null,
"image_urls": "https://www.cpsc.gov/s3fs-public/CCM-1.gif"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result row | $0.0040 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- The date window is capped at 31 days per run — this is a deliberate egress guard, not a CPSC limit; chain successive windows for a longer backfill.
- Some free-text fields (e.g. retailer names) embed date ranges or prices as CPSC published them — passed through as-is, no regex extraction.
- Covers CPSC's
Recallresource only — the separate CPSRMS incident-report dataset is out of scope.
FAQ
Do I need an API key?
Why are both dates required?
How far back can one run go?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors