Product safety recalls
FDA and CPSC product-recall digests for storefront watchlists
This Actor scrapes official FDA and CPSC public recall databases and emits source-linked digest rows (alerts, docket numbers, agency dates). Default feeds cover those public recall sources when you leave feeds empty per the live schema.
Not NHTSA vehicle complaints. Not legal advice. Not a takedown or marketplace-enforcement tool.
from $9.00 / 1,000 Delivered monitoring result row ($0.009 per delivered apify-default-dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
Open Product Safety Recall Scraper on Apify
Product Safety Recall Scraper, not a neighboring Actor
Use this page for this Actor’s job. Use NHTSA Recall Scraper for NHTSA recalls/complaints; Use FDA Warning Letters Scraper for FDA warning-letter digests; Use Shopify Store Scraper for Public Shopify catalogs.
| This Actor | NHTSA Recall Scraper | FDA Warning Letters Scraper | Shopify Store Scraper | |
|---|---|---|---|---|
| Intent | Product Safety Recall Scraper | NHTSA recalls/complaints | FDA warning-letter digests | Public Shopify catalogs |
| Primary input | see schema | vehicle feeds | feeds / watchTerms | storeUrls |
| What it reads | Public sources listed on the Store page | NHTSA public APIs | FDA public warning-letter feeds | Shopify JSON endpoints |
| Primary output | Dataset rows billed per live PPE | recall digest rows | warning-letter digest rows | store/catalog rows |
| Not this job | Not NHTSA vehicle complaints. Not legal advice. Not a takedown or marketplace-enforcement tool. | Not CPSC consumer-product recalls | Not ClinicalTrials.gov or HHS OCR | Not Shopify App Store reviews |
Store ID: taroyamada/product-safety-recall-digest. Respect source terms, robots.txt, and rate limits.
Use cases
- Ecommerce SKU/watch-term recall checks
- Class I/II filters via recallClasses
- Scheduled snapshotKey storefront watches
How is Product Safety Recall Scraper different from NHTSA Recall Scraper and FDA Warning Letters Scraper?
Product Safety Recall Scraper (taroyamada/product-safety-recall-digest): This Actor scrapes official FDA and CPSC public recall databases and emits source-linked digest rows (alerts, docket numbers, agency dates). Default feeds cover those public recall sources when you leave feeds empty per the live schema. Not NHTSA vehicle complaints. Not legal advice. Not a takedown or marketplace-enforcement tool. NHTSA Recall Scraper is for NHTSA recalls/complaints (input vehicle feeds; NHTSA public APIs; recall digest rows). Not CPSC consumer-product recalls. FDA Warning Letters Scraper is for FDA warning-letter digests (input feeds / watchTerms; FDA public warning-letter feeds; warning-letter digest rows). Not ClinicalTrials.gov or HHS OCR. Shopify Store Scraper is for Public Shopify catalogs (input storeUrls; Shopify JSON endpoints; store/catalog rows). Not Shopify App Store reviews.
What input is required?
Live required fields: none listed (see live fields). Published exampleRunInput is shown below. Quickstart: leave feeds empty to monitor all 4 default sources (CPSC + FDA food/drug/device), set lookbackDays=30, recallClasses=["I","II"], and schedule recurring runs
| Field | Type | Default | Notes |
|---|---|---|---|
feeds |
object[] | empty |
Feeds to monitor. One entry per monitored feed/source. Each produces one digest row. Leave empty to use all 4 default feeds (CPSC, FDA food, FDA drug, FDA device). Each item supports id, name, source, lookbackDays, recallClasses, maxRecalls. item required: source |
lookbackDays |
integer | 30 |
Lookback window (days). Number of days back to search for recalls. Applies to all feeds unless overridden per feed. min=1 max=365 |
recallClasses |
string[] | ["I", "II"] |
FDA recall classes to include. Filter openFDA results to specific recall classes. Valid values: I (most serious), II, III. Does not apply to CPSC (which uses a different classification scheme). |
maxRecallsPerFeed |
integer | 50 |
Max recalls per feed. Upper bound on recall records fetched per feed per run. Lower = faster and less data; keep ≤ 50 for recurring digests. min=1 max=200 |
delivery |
string enum | dataset |
Delivery mode. dataset stores digest rows in the Apify dataset. webhook posts the digest JSON to webhookUrl. enum: dataset, webhook |
webhookUrl |
string | empty |
Webhook URL (required when delivery=webhook). POST target for the recall digest payload. Leave empty for dataset delivery. |
datasetMode |
string enum | all |
Dataset output mode. all emits every feed digest row. action_needed emits only feeds with new or first-run recalls. new_only emits only feeds with new recall IDs not seen in the previous run. enum: all, action_needed, new_only |
snapshotKey |
string | product-safety-recall-digest-state |
Snapshot key for recurring state. Stable key used to persist seen recall IDs across recurring runs so new_only and action_needed modes stay comparable. Use the same key across scheduled runs. |
notifyOnNoNew |
boolean | true |
Emit digest even when no new recalls found. When true (default), every feed always produces a digest row even if no new recalls were found. When false, feeds with no new recalls are omitted from webhook payloads. |
requestTimeoutSeconds |
integer | 30 |
HTTP request timeout (seconds). Timeout for each API request. min=5 max=120 |
batchDelayMs |
integer | 800 |
Delay between feeds (ms). Milliseconds to wait between feed fetches. Keeps keyless openFDA usage well below the 40 req/min rate limit. min=0 max=10000 |
dryRun |
boolean | false |
Dry run (skip snapshot writes and webhook delivery). Validate, fetch, and assemble without persisting state or posting webhooks. Safe for testing input shapes. |
nowIso |
string | empty |
Override current time (ISO string, for testing). Set to a fixed ISO timestamp to make runs deterministic against fixture data. |
Published Store example run input (omitted fields take schema defaults):
{
"lookbackDays": 30,
"recallClasses": [
"I",
"II"
],
"maxRecallsPerFeed": 50,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "recall-digest-quickstart",
"notifyOnNoNew": true,
"batchDelayMs": 800,
"dryRun": false
}
Run Product Safety Recall Scraper on Apify
How do dataset, webhook, and dry-run delivery work?
delivery defaults to dataset on the live schema. Dataset output is the billable surface when rows are written. webhookUrl is used when delivery is webhook (and typically not during dryRun). dryRun true validates or samples without the usual dataset/webhook side effects described on the Store schema. datasetMode can limit emits to changes_only / changed_only / action_needed versus all. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
What does a result contain?
Published README Output Example / Sample Output JSON. Treat README samples as illustrations, not a live coverage guarantee. There is no published output JSON schema on the Store page.
How is Product Safety Recall Scraper priced?
Billing is pay per event. The live Store card is from $9.00 / 1,000 Delivered monitoring result row ($0.009 per delivered apify-default-dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE. Current PPE:
| Event | Price | Emitted when |
|---|---|---|
apify-default-dataset-item (Delivered monitoring result row) |
$0.009 | Charged only when a new or changed monitoring result row is delivered. Unchanged runs are free. |
The published README Cost block is stale versus the live Store pricing tab. README Cost still quotes actor-start $0.01. README Cost quotes dataset-item $0.003; live primary is $0.009 (Delivered monitoring result row). Live: Delivered monitoring result row $0.009. This page quotes live PPE only.
from $9.00 / 1,000 Delivered monitoring result row ($0.009 per delivered apify-default-dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
See Product Safety Recall Scraper pricing on Apify
Limits to keep in mind
- Public FDA/CPSC recall sources
- recallClasses filters classes when set
- Not NHTSA
- Not professional advice
- Respect source terms, robots.txt, and rate limits.
Open Product Safety Recall Scraper on Apify
Related pages
- NHTSA Recall Scraper — Vehicles, not consumer-product recalls.
- FDA Warning Letters Scraper — Warning letters, not recall dockets.
- Shopify Store Scraper — Catalog metadata, not recalls.
- CPSC Product Recall Marketplace Watch — official recall alerts.
- NHTSA Recall & Complaint Watch — make, model, campaign watches.
- CPSC Recall Portfolio Watch — NHTSA Vehicle Safety Alerts — CPSC/NHTSA/openFDA enforcement portfolio.
- UK FSA Food Safety Alert Portfolio Report — UK FSA Food Alerts, not FDA/CPSC digest.
- Tools