Product Recall Feed — FDA, NHTSA & CPSC Recalls API avatar

Product Recall Feed — FDA, NHTSA & CPSC Recalls API

Pricing

from $1.60 / 1,000 recall records

Go to Apify Store
Product Recall Feed — FDA, NHTSA & CPSC Recalls API

Product Recall Feed — FDA, NHTSA & CPSC Recalls API

US recalls from FDA, NHTSA and CPSC, plus opt-in Canada, UK and EU Safety Gate, as one normalized JSON record with jurisdiction and hazard categories. Filter by date, keyword, firm or vehicle; get only new recalls since the last run by webhook. Pay per recall record.

Pricing

from $1.60 / 1,000 recall records

Rating

0.0

(0)

Developer

Owlabee

Owlabee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Categories

Security

Limited permissions

Share

Product recall feed for the US: FDA drug, device and food recalls, NHTSA vehicle recalls and CPSC consumer product recalls from the agencies' official APIs, in one normalized JSON record per recall. Opt in to Canada (Health Canada, with CFIA food and Transport Canada), the UK (OPSS, MHRA, FSA) and the EU Safety Gate, all in the same record with a jurisdiction, product category and hazard categories. Filter by date, keyword, firm or vehicle, and turn on Only new recalls since last run for a daily recall alert by webhook.

What it does

This Actor pulls US product recalls from the three federal agencies that publish them and writes every recall into one normalized JSON record: agency, recall id, date, title, product, product type, hazard or reason, classification and severity, recalling firm, distribution, remedy, units affected and a link to the official notice. The untouched agency fields can be attached as a nested raw object.

  • FDA (openFDA enforcement reports): drugs, medical devices, and food and cosmetics, with the Class I / II / III classification.
  • NHTSA: vehicle, equipment, tire and child-seat recall campaigns, with "do not drive" and "park outside" advisories, plus every recall on a specific make, model and year.
  • CPSC: consumer product recalls (toys, appliances, furniture, e-bikes, batteries...), with hazards, injuries, remedies and retailers.

Those five feeds are the default. These run only when you pick them in Agencies or choose their country in Jurisdictions:

  • FDA device recall database (fda-device-recall, openFDA): device recalls with the root cause FDA assigned, the firm's corrective action, product codes and 510(k) numbers.
  • FDA recall press releases (fda-rss): the company announcements FDA posts, often weeks before the enforcement report classifies the recall (the feed holds the newest 20).
  • Health Canada (health-canada): every Canadian recall and safety alert in Health Canada's daily open data, including CFIA food recalls, Transport Canada vehicle recalls, health products and consumer products.
  • UK (uk-opss, uk-mhra, uk-fsa): OPSS product safety reports and recalls, MHRA drug and device alerts, and Food Standards Agency allergy alerts and recall notices.
  • EU Safety Gate (eu-safety-gate): the European Commission's weekly reports of dangerous non-food products notified by EU/EEA authorities, with barcodes, batch and model numbers and product photos.

Every record, whatever its source, also carries jurisdiction (US, CA, GB or EU), recordType (recall, alert or announcement), productCategory and hazardCategories from one shared taxonomy, so one filter works across countries.

It calls the agencies' official public APIs directly — no browser, no proxies, no login — so runs take seconds. Filter by date window, keyword, firm or manufacturer, product type, firm state and FDA class, and turn on Only new recalls since last run to monitor: schedule it daily and only recalls not seen before are written, charged and sent to your webhook. Results are available as JSON, CSV, Excel, via the Apify API, webhooks and the Apify MCP server.

Built for compliance and quality teams, retailers and marketplaces checking their catalog, pharmacies and hospitals, fleet managers and dealers, insurers, product-safety lawyers, and journalists who track recalls across agencies instead of one agency at a time.

Why this Actor

This ActorTypical recall scraper in this categoryDo it yourself
Data sources coveredFDA drugs, devices and food, NHTSA campaigns and vehicle lookups, and CPSC by default; opt-in Health Canada, UK OPSS, MHRA and FSA, EU Safety Gate, the FDA device recall database and FDA press releases. All official, verified live 2026-11-01 and 2026-11-07One agency (FDA or NHTSA or CPSC) per ActorThree APIs with three query languages, three date formats and three pagination schemes
ModesOne-off feed with date, keyword, firm, type, state and class filters; changes mode that emits only recalls not seen beforeSearch or export; new-only is rareKeep your own seen-set per agency
Output fieldsOne normalized record across agencies (severity included), plus the raw agency fields on requestThe agency's own fields, different per ActorWhatever you map
Pricing unitPer recall record and per agency API request; an error item costs the same as a recallPer result, one agency per runYour time plus compute; the APIs are free
AlertsWebhook with the new recalls and counts per agency and severity, sent only when something is newRareYou build it
Proxies or browsers neededNoneSometimes browser automation of the agency websiteNone
Agent / MCP readyYes: pay-per-event, limited permissions, pin link, prompts and a call example belowSometimesYou write and host the tool definition
  • One schedule replaces three: a daily run over all five feeds costs a few cents when nothing is new.
  • severity puts FDA classes and NHTSA advisories on one scale, and the webhook carries highestSeverity, so a single field decides whether to page someone.
  • Every API request is a visible charge, and an agency outage becomes one charged error item instead of a failed run.
  • The quick-start input is the Store's daily automated test against all three agencies, so breakage is caught the same day.

How to use

  1. Pick the Agencies (the five US feeds by default) and optionally add Jurisdictions (CA, GB, EU), then set Recalls from the last N days or a Date from / Date to range.
  2. Optionally narrow with a Keyword (salmonella, airbag, lithium battery), a Firm or manufacturer, a Product type, a Firm state or FDA classifications, or add Vehicles as make, model, year.
  3. Click Start. Recalls appear in the dataset as each agency is paged. For alerts, schedule the Actor with Only new recalls since last run and a Webhook URL.

Quick start input

The prefilled input (the Store's daily test) returns the 5 newest recalls from each feed of the last 30 days in about 3 seconds for about $0.07:

{
"agencies": ["fda-drug", "fda-device", "fda-food", "nhtsa", "cpsc"],
"daysBack": 30,
"maxResultsPerSource": 5
}

Ready-to-run inputs

Daily Class I food and drug recall alert (schedule daily; the first run is the baseline):

{
"agencies": ["fda-drug", "fda-food"],
"daysBack": 14,
"fdaClassifications": ["Class I"],
"onlyNewSinceLastRun": true,
"webhookUrl": "https://example.com/hooks/recalls"
}

Every recall on a fleet's vehicles:

{
"agencies": [],
"vehicles": ["Ford, F-150, 2021", "Toyota, Camry, 2020", "Honda, Accord, 2019"]
}

Canada, the UK and the EU only, last 14 days, as a daily changes-mode alert:

{
"agencies": [],
"jurisdictions": ["CA", "GB", "EU"],
"daysBack": 14,
"onlyNewSinceLastRun": true,
"webhookUrl": "https://example.com/hooks/recalls"
}

FDA device recalls with root cause and corrective action, next to the enforcement reports:

{
"agencies": ["fda-device", "fda-device-recall"],
"daysBack": 60,
"keyword": "software"
}

Lithium battery hazards across agencies over the last year:

{
"agencies": ["cpsc", "nhtsa", "fda-device"],
"daysBack": 365,
"keyword": "lithium",
"maxResultsPerSource": 500
}

Input

FieldTypeRequiredDescription
agenciesstring[]noDefault feeds fda-drug, fda-device, fda-food, nhtsa, cpsc (default all five). Opt-in feeds fda-device-recall, fda-rss, health-canada, uk-opss, uk-mhra, uk-fsa, eu-safety-gate. Empty means the default five, or only the chosen jurisdictions.
jurisdictionsstring[]noUS, CA, GB, EU: adds every feed of each (US adds the two opt-in FDA feeds to the default five). Leave agencies empty to query only these.
daysBackintegernoWindow ending today or on dateTo (1–3650). Default 30.
dateFrom / dateTostringnoExplicit window, YYYY-MM-DD, inclusive. dateFrom overrides daysBack.
keywordstringnoProduct, description or hazard text. Searched by the FDA, NHTSA and GOV.UK APIs, matched locally for the other feeds.
firmstringnoRecalling firm, manufacturer, importer or distributor contains this text.
productTypestringnoNHTSA recall type or component (Tire, Child Seat, Air Bags); CPSC product category (Bicycles); the agency's category for the other non-FDA feeds (Toys and games, Cosmetics). Ignored for FDA.
statestringnoTwo-letter state of the recalling firm. FDA enforcement and device recall feeds only (the other agencies do not publish it).
fdaClassificationsstring[]noClass I, Class II, Class III. FDA enforcement feeds only (the device recall database and press releases publish no class).
vehiclesstring[]noNHTSA lookups, one per line: make, model, year. Each returns every recall on that vehicle, whatever the window and filters.
maxResultsPerSourceintegernoCap per feed, newest first (changes mode: new recalls). Default 200, max 25,000.
maxSecondsPerSourceintegernoTime budget per feed (default 300, 30–1800); see "Limits and fair use".
onlyNewSinceLastRunbooleannoChanges mode: emit only recalls not seen in earlier runs, flagged isNew: true.
stateStoreNamestringnoNamed key-value store holding the seen-sets. Default product-recall-feed-state.
notifyOnlyOnNewbooleannoSkip the webhook when nothing was emitted. Default true.
includeRawbooleannoAttach the agency's own fields as raw.
fdaApiKeystring (secret)noFree openFDA key; only raises rate limits.
webhookUrlstringnoPOST target for the run summary and the emitted recalls (max 1,000).

Output example

{
"agency": "CPSC",
"source": "cpsc",
"recallId": "27055",
"date": "2026-10-29",
"title": "Bodum USA Recalls 5.9 Million French Press Coffee Makers with Replaceable Glass Carafes Due to Risk of Serious Burn Injury",
"product": "Bodum French Press coffee makers with 8-cup and 12-cup replaceable glass carafes (Bistro, Brazil, Caffettiera, Chambord, Crema, Java, Jesper, and Kenya models)",
"productType": "Unpowered Coffee Makers or Teapots",
"description": "This recall involves Bodum 8-cup and 12-cup Bistro, Brazil, Caffettiera, Chambord, Crema, Java, Jesper, and Kenya model French Press coffee makers with replaceable glass carafes. ...",
"hazard": "The carafe can unexpectedly break during use if the glass carafe is damaged or cracked, including by use of a metal spoon to stir the coffee, posing a risk of serious burn injuries.",
"classification": "Repair",
"severity": null,
"firm": "Bodum USA, Inc., of New York, New York",
"distribution": "Target, Walmart, and coffee and home goods stores nationwide and online at Bodum.com, Amazon.com, Target.com, Walmart.com and other online retailers from 1974 through October 2026 for about $15 to $65.",
"remedy": "Consumers should stop using metal spoons or utensils to stir coffee in the glass carafe immediately and contact Bodum to receive a plastic Bodum stirring spoon and warning label. ...",
"status": null,
"quantity": "5.9 million",
"state": null,
"country": "Portugal; Thailand",
"url": "https://cpsc.gov/Recalls/2027/Bodum-USA-Recalls-5-9-Million-French-Press-Coffee-Makers-with-Replaceable-Glass-Carafes-Due-to-Risk-of-Serious-Burn-Injury",
"fetchedAt": "2026-11-01T12:55:01.288Z"
}
FieldFDANHTSACPSC
recallIdrecall number (D-0041-2027)campaign number (26V714000)recall number
datereport datereport received daterecall date
hazardreason for recallconsequence summaryhazards
classificationClass I / II / III"Do not drive", "Park outside"remedy options (Refund, Repair, Replace)
severityClass I high, II medium, III lowhigh with an advisory, else mediumnull (CPSC publishes no class)
remedynull (not in enforcement reports)corrective actionremedies
distributiondistribution patternnullretailers ("sold at")
urlopenFDA record querynhtsa.gov recall pagecpsc.gov recall page

Fields shared by every source

Added on 2026-11-07 to every record, including the five default feeds (no existing field changed meaning). An EU Safety Gate alert:

{
"agency": "EC",
"source": "eu-safety-gate",
"recallId": "SR/03088/26",
"date": "2026-11-04",
"title": "Tablecloth: Solei d'Ocre Nappe Rectangulaire 140x300 cm, Anti-tâches, imperméable",
"productType": "Decorative articles",
"hazard": "Chemical: The product has an excessive concentration of DEHP (measured value: 27 % by weight). ...",
"classification": "Serious risk",
"severity": "high",
"firm": "Solei d'Ocre",
"distribution": "Notified by Luxembourg",
"remedy": "Type of economic operator to whom the measure(s) were ordered: Retailer; Category of measure(s): Withdrawal of the product from the market; ...",
"country": "People's Republic of China",
"url": "https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10118629",
"jurisdiction": "EU",
"language": "en",
"recordType": "alert",
"productCategory": "consumer-product",
"productSubcategory": "other",
"hazardCategories": ["chemical", "regulatory-violation"],
"identifiers": { "gtin": ["3418178586009"], "lot": ["86NG589"], "model": ["052025, Crystal transparent 100 microns"] },
"imageUrls": ["https://ec.europa.eu/safety-gate-alerts/public/api/notification/image/11240816"],
"fetchedAt": "2026-11-07T18:11:40.084Z"
}
FieldValues
jurisdictionUS, CA, GB or EU (the publishing authority)
languageen; FDA's Spanish press releases are es (text is never machine-translated)
recordTyperecall; alert for a safety report or advisory (OPSS safety reports, MHRA notices, FSA food alerts for action, Health Canada warnings, Safety Gate); announcement for an FDA press release
productCategoryfood, drug, medical-device, cosmetic, tobacco, vehicle, vehicle-equipment, consumer-product (or null when the source gives too little to tell)
productSubcategorySecond level where it can be read: food (meat-poultry, dairy, produce, infant, supplements, animal-food), vehicle (car, truck, bus, motorcycle, rv), equipment (tire, child-seat, parts), consumer products (toys-children, electrical-electronics, batteries-e-mobility, furniture, appliances, clothing-textiles, sports-recreation, household-chemicals, jewelry, other)
hazardCategoriesOne or more of injury, burns, fire, electric-shock, choking, suffocation, strangulation, entrapment, cuts, drowning, fall, crash, loss-of-control, hearing, sight, chemical, carbon-monoxide, explosion, pathogen, undeclared-allergen, foreign-matter, contamination, spoilage-process-failure, sterility, potency, impurity, device-malfunction, software, mislabeling, regulatory-violation, environment, other. Read by a fixed keyword table from the agency's own text (no AI), plus Safety Gate's published risk types; the agency's words stay in hazard
pathogensNamed pathogens when hazardCategories has pathogen: listeria, salmonella, e-coli, clostridium-botulinum, ...
identifiersWhere published: gtin (barcodes: Safety Gate, CPSC UPCs), lot, model, productCode and kNumber (FDA device recall database)
imageUrlsProduct photos (Safety Gate, CPSC)
rootCauseFDA device recall database only: FDA's root cause category

How the opt-in feeds fill the existing fields:

FeedrecallIddateclassification → severityfirm
fda-device-recallproduct recall number (Z-0326-2027, same as the enforcement report)date postednone (null)recalling firm
fda-rsspage slugpress release datenone (null)from the title
health-canadaHealth Canada idlast updated (the only date the open data publishes; items without one are skipped)Class 1 / Type I high, 2 / II medium, 3 / III low; advisories nullnot published (null)
uk-opssOPSS reference (2610-0149)alert daterisk level: serious and high = high, medium, lownot published (null)
uk-mhraalert reference (EL(26)A/45, DSI/2026/013)issued dateClass 1 high, 2 medium, 3 and 4 low; device notices nullfrom the title
uk-fsaFSA notation (FSA-AA-51-2026)createdFAFA and AA (allergy) high, PRIN mediumreporting business
eu-safety-gatecase number (SR/03088/26)alert publication dateSerious risk high, other levels mediumbrand

Dates are ISO YYYY-MM-DD. In changes mode every emitted recall carries isNew: true. A feed that cannot be queried produces one error item instead of failing the run: { "agency": "CPSC", "source": "cpsc", "error": "FETCH_FAILED", "errorMessage": "...", "fetchedAt": "..." } (codes: FETCH_FAILED, SOURCE_ERROR, TIME_BUDGET, INVALID_VEHICLE).

If the output saves you time, a review on the Store page helps other buyers find this Actor; the Store invites you to leave one after you have run it a few times.

Alerts and delivery

Changes mode is built for a daily schedule; this is how new recalls reach your inbox, Slack or ticketing system.

  • Schedule in the Console. Save the input (with onlyNewSinceLastRun: true) as a Task and attach it to a daily schedule under Schedules. FDA publishes enforcement reports weekly and NHTSA and CPSC daily, so keep daysBack at 14 or more so late-published recalls still fall inside the window. Use one stateStoreName per schedule when different filters run side by side.
  • The Actor's own webhook. Set webhookUrl and the Actor POSTs one JSON document at the end of a run that emitted recalls (every run when notifyOnlyOnNew is false; 10 second timeout, two retries; a failed delivery is recorded as webhookDelivered: false in the SUMMARY record and never fails the run). The body is { actor, runId, mode, window, filters, sources, totalRecalls, byAgency, bySeverity, highestSeverity, charges, recalls: [...], recallsTruncated }.
  • Apify run webhooks. On the Actor's Integrations tab add a webhook for ACTOR.RUN.SUCCEEDED or ACTOR.RUN.FAILED; Apify POSTs the run id and dataset id to your URL.
  • Slack, Make, Zapier, Google Sheets, email. The same Integrations tab lists Apify's ready-made integrations: a Slack message per run, Make and Zapier modules, an export to a Google Sheet, and email notifications.
  • API and dataset endpoints. Start a run with POST https://api.apify.com/v2/acts/owlabee~product-recall-feed/runs and read the newest results with GET https://api.apify.com/v2/acts/owlabee~product-recall-feed/runs/last/dataset/items?format=json (also csv or xlsx).

Sources

Source idAgency feedOfficial APIFreshness
fda-drugFDA drug enforcement reportsapi.fda.gov/drug/enforcement.json (openFDA)Weekly
fda-deviceFDA medical device enforcement reportsapi.fda.gov/device/enforcement.jsonWeekly
fda-foodFDA food and cosmetics enforcement reportsapi.fda.gov/food/enforcement.jsonWeekly
nhtsaNHTSA recall campaigns (vehicles, equipment, tires, child seats)DOT open data datahub.transportation.gov dataset 6axg-epim, the NHTSA recalls databaseDaily
vehicles inputNHTSA recalls for a make, model and yearapi.nhtsa.gov/recalls/recallsByVehicleDaily
cpscCPSC consumer product recallswww.saferproducts.gov/RestWebServices/RecallDaily
fda-device-recall (opt-in)FDA medical device recall databaseapi.fda.gov/device/recall.json (openFDA)Weekly
fda-rss (opt-in)FDA recalls, market withdrawals and safety alerts (company press releases)FDA recalls RSS feed on fda.govDaily; newest 20
health-canada (opt-in)Health Canada recalls and safety alerts, incl. CFIA and Transport CanadaOpen data JSON on recalls-rappels.canada.ca (one 15.9 MB file)Daily
uk-opss (opt-in)UK Office for Product Safety and Standards reports and recallsGOV.UK Search API www.gov.uk/api/search.jsonDaily
uk-mhra (opt-in)UK MHRA drug and medical device alertsGOV.UK Search APIDaily
uk-fsa (opt-in)UK Food Standards Agency allergy alerts, recall notices and food alerts for actiondata.food.gov.uk/food-alertsDaily
eu-safety-gate (opt-in)EU Safety Gate alerts (dangerous non-food products, EU/EEA)Weekly report XML on ec.europa.eu/safety-gate-alertsWeekly (Fridays)

What one agency API request is for the opt-in feeds: one openFDA page of up to 100 device recalls, the RSS feed, the Health Canada file (one request, however many recalls it holds; the download itself is one bulk data file download on top, see Pricing), one GOV.UK or FSA page of up to 100 alerts, the Safety Gate list of weekly reports, and each weekly report in the window.

Attribution (keep it with any redistribution): contains information licensed under the Open Government Licence – Canada (Health Canada, CFIA, Transport Canada). Contains public sector information licensed under the Open Government Licence v3.0 (OPSS, MHRA, FSA). EU Safety Gate data © European Union, published by the European Commission and reusable under Commission Decision 2011/833/EU (CC BY 4.0).

Pricing

Pay per event. You only pay for what the Actor produces; set a maximum cost per run in the run options to cap spend.

EventPriceNotes
Recall record (recall-record)$0.002Per dataset item: a recall from any agency, a vehicle recall, or an error item for a feed that failed
Agency API request (agency-page-fetched)$0.004Per request to an agency API: an FDA page of up to 100 recalls, an NHTSA page of up to 500, one CPSC 90-day window, one vehicle lookup, one GOV.UK or FSA page, the Safety Gate list or one weekly report, the FDA RSS feed, or the request for the Health Canada file; including empty, no-match, already-seen and failed requests
Bulk data file download (bulk-file-fetched)$0.01Per download attempt of a whole-dataset file, today the Health Canada open-data file (about 16 MB; opt-in feed health-canada or jurisdiction CA), on top of the API request for it; also charged when the download times out, never when the file is unchanged (304 in changes mode) or the request is refused. The default US feeds never charge it
Actor start$0.00005Apify platform event

Examples: the quick-start input (25 recalls, 5 requests) ≈ $0.07; 1,000 FDA drug recalls = $2.00 + 10 pages $0.04 ≈ $2.04; a daily changes-mode check of all five feeds with a 14-day window and nothing new ≈ $0.02, plus $0.002 per new recall. 1,000 recalls ≈ $2. A daily Health Canada check with nothing new ≈ $0.014 (one request plus one file download), or $0.004 when the file has not changed since the last run; Canada, the UK and the EU together on a quiet day ≈ $0.05.

Store pricing discounts: users on the Scale plan (Silver) pay 10% less per event, Business (Gold) 20% less on recall records and 15% less on API requests and bulk downloads.

Limits and fair use

  • At most 2 requests per second per agency host, exponential backoff on 429/5xx, three feeds queried in parallel.
  • Time budget per source. Each feed gets maxSecondsPerSource seconds (default 300) and is abandoned earlier, with a charged TIME_BUDGET error item, when 60 seconds pass without a successful response. Every request, retries included, is limited to 30 seconds, and a Retry-After longer than 10 seconds is not waited for. A feed cut off after producing recalls keeps them.
  • openFDA allows 240 requests per minute and 1,000 per day per IP without a key and pages up to 25,100 records per query; add a free fdaApiKey for heavy daily use.
  • CPSC has no server-side keyword or firm search, so the whole date window is downloaded (one request per 90 days, about 0.45 MB) and filtered locally.
  • Health Canada publishes one 15.9 MB file. It is streamed, never held whole: only items inside the date window are parsed, and because the file is newest first the download stops 45 days past the window's start (a 30-day window reads about 0.25 MB). Bulk downloads run one at a time, are capped at 32 MB and 60 seconds, and in changes mode are skipped with a conditional request when the file has not changed since the last complete run (the validators are kept in the state store; the 304 costs one API request and no download). Each download attempt is one bulk data file download event ($0.01) on top of the API request, charged when the file starts arriving or when the download times out. Peak memory measured with every item of a 10-year window kept: about 210 MB.
  • EU Safety Gate is read week by week: one request for the list of weekly reports plus one per week in the window, so long windows cost more requests (about 52 per year).
  • Default run memory is 512 MB.
  • Coverage is what each agency publishes: FDA enforcement reports list recalls after FDA classifies them (often weeks after the firm's press release); NHTSA and CPSC publish within days.

Other pay-per-event Actors from the same account, all limited-permission and agent-friendly:

Guide and code examples

Use from AI agents (MCP)

Pin this Actor in the Apify MCP server with one link: https://mcp.apify.com?tools=owlabee/product-recall-feed, or let the agent find it with the search-actors tool. It is pay-per-event with limited permissions. Prompts that map directly onto the input:

  1. "List this month's Class I FDA food and drug recalls with the firm, the reason and the distribution."
  2. "Every morning, send new recalls from FDA, NHTSA and CPSC that mention lithium batteries to my webhook."
  3. "Are there any open recalls on a 2021 Ford F-150, a 2020 Toyota Camry or a 2019 Honda Accord?"

To call it from an agent that already has the Apify MCP server connected, copy this tool call and change only the input object:

{
"tool": "call-actor",
"arguments": {
"actor": "owlabee/product-recall-feed",
"input": {
"agencies": ["fda-drug", "fda-device", "fda-food", "nhtsa", "cpsc"],
"daysBack": 30,
"maxResultsPerSource": 5
}
}
}

FAQ

Does this need proxies or an API key? No. It calls the agencies' public APIs over plain HTTPS. An openFDA key is optional and only raises openFDA's rate limits.

How is cost controlled? Set maxResultsPerSource, narrow the window and filters, and set the run's maximum total charge; the Actor stops cleanly when any limit is reached. In changes mode you pay per new recall plus one charge per API request.

Why is remedy empty for FDA recalls? FDA enforcement reports do not publish a remedy field; the reason, classification, distribution and quantity are there. Turn on includeRaw to see every field the agency publishes.

What does the first changes-mode run do? It is the baseline: every recall in the window is written and charged, and remembered. Later runs write only recalls not seen before.

Why does a recall I saw in the news not appear yet? FDA lists a recall in its enforcement report after classifying it, which can take weeks after the firm's announcement. Use a wider daysBack (30 or more) for FDA.

What happens when an agency API is down? That feed yields one error item (charged like a recall) and the other feeds continue, so a schedule never fails on one agency's outage.

Which countries are covered? The US by default; Canada, the United Kingdom and the EU/EEA when you choose them in jurisdictions or pick their feeds in agencies. Each record says where it came from in jurisdiction and agency (FDA, NHTSA, CPSC, HC, CFIA, TC, OPSS, MHRA, FSA, EC). Australia, France and Transport Canada's vehicle lookups are not built yet.

Do the new fields change my existing results? No existing field changed. Every record gained jurisdiction, language, recordType, productCategory, productSubcategory and hazardCategories, and some records gained pathogens, identifiers or imageUrls. Saved inputs query the same five feeds as before.

Can I try it for free? Yes. The Apify free plan comes with monthly platform credit, and the quick-start input costs a few cents.

Support

Questions, bugs or a source you'd like added? Open an issue on the Actor's Issues tab, or email jacob@owlabee.com.

Changelog

  • 2026-11-08 — Pricing: new bulk-file-fetched event ($0.01; Silver $0.009, Gold $0.0085) per download attempt of the Health Canada open-data file, charged on top of the API request for it, never on a 304 or a refusal. The default US feeds and every saved input that does not select Health Canada cost exactly what they did before; the agency-page-fetched description now lists the opt-in request shapes.
  • 2026-11-07 — Opt-in feeds: Health Canada (with CFIA and Transport Canada), UK OPSS, MHRA and FSA, EU Safety Gate, the FDA device recall database and FDA recall press releases, plus a jurisdictions input. New fields on every record: jurisdiction, language, recordType, productCategory, productSubcategory, hazardCategories, and where published pathogens, identifiers, imageUrls and rootCause. The default five feeds and their existing fields are unchanged.
  • 2026-11-01 — First release: FDA drug, device and food enforcement reports, NHTSA recall campaigns and vehicle lookups, CPSC recalls in one normalized record; date, keyword, firm, product type, state and class filters; changes mode with a seen-set per feed; webhook alerts with counts per agency and severity; time budget per source and charged error items.

The five default feeds come from public US government APIs (openFDA, NHTSA via DOT open data and api.nhtsa.gov, and CPSC SaferProducts) that are free to use and need no login. openFDA's own disclaimer applies: do not rely on openFDA to make decisions regarding medical care, and assume results are unvalidated. The opt-in feeds are published under open licences whose attribution must stay with the data: Health Canada, CFIA and Transport Canada recalls contain information licensed under the Open Government Licence – Canada; OPSS, MHRA and Food Standards Agency records contain public sector information licensed under the Open Government Licence v3.0; EU Safety Gate alerts are © European Union, published by the European Commission and reusable under Commission Decision 2011/833/EU (CC BY 4.0), with the Commission's Safety Gate named as the source. Firm names are reproduced as published by the agency; the records describe products and firms, not people. This Actor is not affiliated with or endorsed by FDA, NHTSA, CPSC, Health Canada, CFIA, Transport Canada, OPSS, MHRA, the Food Standards Agency or the European Commission; agency names identify the source of each record. Use the data in compliance with each agency's terms and applicable law.