FDA Product Intelligence — Approvals & Recalls is an Apify actor on ApifyForge. Comprehensive FDA regulatory intelligence for any drug, device, or food product. Combines approvals, adverse events, and recalls from 9 openFDA endpoints into a risk-assessed report. It costs $0.30 per analysis-run. Best for teams who need automated fda product intelligence — approvals & recalls data extraction and analysis. Not ideal for use cases requiring real-time streaming data or sub-second latency. Maintenance pulse: 90/100. Last verified March 27, 2026. Built by Ryan Clinton (ryanclinton on Apify).
FDA Product Intelligence — Approvals & Recalls
FDA Product Intelligence — Approvals & Recalls is an Apify actor available on ApifyForge at $0.30 per analysis-run. Comprehensive FDA regulatory intelligence for any drug, device, or food product. Combines approvals, adverse events, and recalls from 9 openFDA endpoints into a risk-assessed report.
Best for teams who need automated fda product intelligence — approvals & recalls data extraction and analysis.
Not ideal for use cases requiring real-time streaming data or sub-second latency.
What to know
- Results depend on the availability and structure of upstream data sources.
- Large-scale runs may be subject to platform rate limits.
- Requires an Apify account — free tier available with limited monthly usage.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| analysis-run | Charged per FDA product intelligence analysis. Searches approvals, recalls, adverse events, and devices across multiple FDA databases. | $0.30 |
Example: 100 events = $30.00 · 1,000 events = $300.00
Documentation
Get a comprehensive FDA regulatory intelligence report for any drug, device, or food product — combining approvals, adverse events, and recalls from 9 openFDA endpoints in a single run. Search by product name, company name, or both, and receive a unified risk-assessed profile with cross-domain timeline, key findings, and aggregate safety statistics.
Why Use This Actor?
- One query, full picture — queries 9 separate FDA endpoints in parallel and returns a single intelligence report instead of requiring 9 separate API integrations
- Risk assessment — automatically computes a risk level (CRITICAL / HIGH / MODERATE / LOW / MINIMAL) based on Class I recalls, death reports, adverse event seriousness rates, and ongoing recalls
- Key findings — generates human-readable insights like "34,791 death-associated drug adverse event reports" and "2 Class I recall(s) — most serious category"
- Cross-domain timeline — builds a chronological timeline of approvals, clearances, and recalls across drugs, devices, and food
- Smart aggregation — uses openFDA count endpoints for adverse event statistics (top reactions, outcomes, seriousness) instead of fetching millions of individual records
- No API key needed — uses the free public openFDA API
Key Features
- Searches across 3 FDA domains: drugs, medical devices, and food/supplements
- Queries 9 openFDA endpoints in parallel: drug approvals, drug adverse events, drug recalls, device 510(k) clearances, device PMA approvals, device adverse events (MAUDE), device recalls, food adverse events (CAERS), and food recalls
- Computes risk level from Class I recall counts, death-associated reports, seriousness ratios, and ongoing recalls
- Generates key findings — a bullet list of the most important regulatory signals
- Builds a cross-domain timeline — approval dates, clearance dates, and recall dates sorted chronologically
- Returns aggregate adverse event statistics — total reports, serious count, death count, and top 15 reaction/outcome terms
- Configurable search scope — search all domains or narrow to drugs, devices, or food only
- Parallel execution — all endpoint queries run concurrently for fast results (typically 2-5 seconds)
- Automatic retry with backoff on rate limits and transient errors
How to Use
- Go to the actor's input page on Apify Console
- Enter a Product Name (e.g. "metformin", "pacemaker") and/or Company Name (e.g. "Pfizer", "Medtronic")
- Optionally select a Search Scope to narrow results to a specific domain
- Optionally set a date range to filter results
- Click Start and wait for the intelligence report
- Download the report from the Dataset tab
Input Parameters
| Field | Type | Required | Description |
|---|---|---|---|
productName | string | No* | Drug, device, or food product name |
companyName | string | No* | Manufacturer, sponsor, or recalling firm |
searchScope | enum | No | all, drugs, devices, or food (default: all) |
dateFrom | string | No | Start date filter (YYYY-MM-DD) |
dateTo | string | No | End date filter (YYYY-MM-DD) |
maxResultsPerCategory | integer | No | Max detailed records per category (default: 25, max: 100) |
*At least one of productName or companyName is required.
Input Examples
Drug safety profile
{
"productName": "metformin",
"searchScope": "drugs"
}
Company-wide regulatory intelligence
{
"companyName": "Medtronic",
"searchScope": "all"
}
NDMA contamination investigation
{
"productName": "valsartan",
"searchScope": "drugs",
"dateFrom": "2018-01-01",
"dateTo": "2023-12-31"
}
Medical device due diligence
{
"productName": "pacemaker",
"companyName": "Medtronic",
"searchScope": "devices",
"maxResultsPerCategory": 50
}
Input Tips
- Use brand names (Lipitor) or generic names (atorvastatin) for drug searches — both are searched
- Company names for drug approvals are automatically uppercased (FDA stores sponsor names in ALL CAPS)
- Set
searchScopeto a specific domain if you know the product type — this reduces API calls and speeds up the response - The
maxResultsPerCategoryonly limits detailed records (approvals, recalls). Adverse event aggregates (totals, top reactions) always include all matching records - Date filters apply differently per endpoint — typically filtering on report date, approval date, or event date as appropriate
Output
The actor produces a single intelligence report record:
{
"query": {
"productName": "metformin",
"companyName": "",
"searchScope": "drugs",
"searchedAt": "2026-02-25T10:30:00.000Z"
},
"summary": {
"riskLevel": "CRITICAL",
"totalFindings": 11,
"domainsWithData": ["drugs"],
"keyFindings": [
"Earliest drug approval: NDA NDA021842 (2009-10-21)",
"5 drug application(s) found",
"428,781 total adverse event reports across all domains",
"34,791 death-associated drug adverse event reports",
"Top drug adverse reaction: NAUSEA (29,312 reports)",
"5 recall(s) found",
"⚠ 1 Class I recall(s) — most serious category",
"1 ongoing/active recall(s)"
],
"classIRecalls": 1,
"deathReports": 34791,
"totalAdverseEvents": 428781,
"totalRecalls": 5,
"totalApprovals": 5
},
"drugs": {
"approvals": [
{
"applicationNumber": "NDA021842",
"applicationType": "NDA",
"sponsorName": "TAKEDA PHARMS USA",
"brandNames": ["ACTOPLUS MET"],
"genericNames": ["PIOGLITAZONE HYDROCHLORIDE AND METFORMIN HYDROCHLORIDE"],
"activeIngredients": ["PIOGLITAZONE HYDROCHLORIDE", "METFORMIN HYDROCHLORIDE"],
"dosageForms": ["TABLET"],
"routes": ["ORAL"],
"productCount": 4,
"submissionCount": 22,
"originalApprovalDate": "2009-10-21"
}
],
"adverseEvents": {
"totalReports": 428781,
"seriousCount": 285471,
"deathCount": 34791,
"topReactions": [
{ "term": "NAUSEA", "count": 29312 },
{ "term": "BLOOD GLUCOSE INCREASED", "count": 27459 },
{ "term": "DIARRHOEA", "count": 27320 },
{ "term": "DRUG INEFFECTIVE", "count": 22196 },
{ "term": "LACTIC ACIDOSIS", "count": 18415 }
]
},
"recalls": [
{
"recallNumber": "D-0435-2021",
"classification": "Class II",
"status": "Terminated",
"recallingFirm": "Cardinal Health Inc.",
"productDescription": "xigduo XR (dapgliflozin/metformin HCl extended-release) tablets ...",
"reasonForRecall": "CGMP Deviations: Intermittent exposure to temperature excursion",
"recallInitiationDate": "2021-03-15",
"distributionPattern": "FL, GA, SC",
"brandNames": ["XIGDUO"]
}
]
},
"devices": null,
"food": null,
"timeline": [
{
"date": "2025-11-10",
"domain": "drug",
"type": "approval",
"description": "ANDA ANDA090564 approved — METFORMIN HYDROCHLORIDE"
},
{
"date": "2025-02-25",
"domain": "drug",
"type": "recall",
"description": "Class II drug recall by A-S Medication Solutions LLC — Presence of Foreign Tablet"
}
]
}
Output Fields
Query Metadata
| Field | Type | Description |
|---|---|---|
query.productName | string | Product name searched |
query.companyName | string | Company name searched |
query.searchScope | string | Domain scope used |
query.searchedAt | string | ISO timestamp of the search |
Summary
| Field | Type | Description |
|---|---|---|
summary.riskLevel | string | Computed risk: CRITICAL, HIGH, MODERATE, LOW, or MINIMAL |
summary.totalFindings | number | Total approvals + recalls + adverse event signals |
summary.domainsWithData | string[] | FDA domains that returned results |
summary.keyFindings | string[] | Human-readable key insights |
summary.classIRecalls | number | Count of most-serious Class I recalls |
summary.deathReports | number | Death-associated adverse event reports |
summary.totalAdverseEvents | number | Total adverse event reports across all domains |
summary.totalRecalls | number | Total recall enforcement actions |
summary.totalApprovals | number | Total approvals and clearances |
Drug Intelligence (drugs)
| Field | Type | Description |
|---|---|---|
drugs.approvals[] | array | NDA/ANDA/BLA drug approvals with brand names, ingredients, dates |
drugs.adverseEvents.totalReports | number | Total FAERS adverse event reports |
drugs.adverseEvents.seriousCount | number | Reports flagged as serious |
drugs.adverseEvents.deathCount | number | Reports with death outcome |
drugs.adverseEvents.topReactions[] | array | Top 15 adverse reactions by frequency |
drugs.recalls[] | array | Drug recall enforcement reports |
Device Intelligence (devices)
| Field | Type | Description |
|---|---|---|
devices.clearances510k[] | array | FDA 510(k) premarket clearances |
devices.approvalsPma[] | array | FDA PMA (Class III) device approvals |
devices.adverseEvents.totalReports | number | Total MAUDE adverse event reports |
devices.adverseEvents.topDeviceProblems[] | array | Top device generic names by frequency |
devices.adverseEvents.topPatientProblems[] | array | Top report types |
devices.recalls[] | array | Device recall enforcement reports |
Food Intelligence (food)
| Field | Type | Description |
|---|---|---|
food.adverseEvents.totalReports | number | Total CAERS adverse event reports |
food.adverseEvents.topReactions[] | array | Top adverse reactions |
food.adverseEvents.topOutcomes[] | array | Top outcomes (hospitalization, death, etc.) |
food.recalls[] | array | Food recall enforcement reports |
Timeline
| Field | Type | Description |
|---|---|---|
timeline[].date | string | Event date (YYYY-MM-DD) |
timeline[].domain | string | drug, device, or food |
timeline[].type | string | approval, clearance, recall, or adverse_event_spike |
timeline[].description | string | Human-readable event description |
Risk Level Methodology
| Level | Criteria |
|---|---|
| CRITICAL | Multiple Class I recalls AND >100 death reports, OR Class I recalls AND >50 death reports |
| HIGH | Any Class I recall, OR >50 death reports, OR >80% serious adverse event rate |
| MODERATE | Recalls present AND >1,000 adverse events, OR ongoing recalls, OR >100 adverse events |
| LOW | Some recalls or adverse events present but not reaching higher thresholds |
| MINIMAL | Few or no concerning findings across all domains |
Use Cases
- Pharma due diligence — Before acquiring a drug portfolio, get the full regulatory profile: approvals, recall history, adverse event trends, and risk level in one report
- Medical device evaluation — Research a device's 510(k) clearances, PMA approvals, MAUDE reports, and recall history before procurement
- Drug safety research — Investigate a drug's adverse event profile including top reactions, death counts, and seriousness rates
- NDMA/contamination investigation — Track recalls and adverse events for drugs affected by impurity contaminations (valsartan, ranitidine, metformin)
- Competitor intelligence — Search by company name to see a competitor's full FDA regulatory footprint across all product domains
- Regulatory compliance monitoring — Schedule weekly runs to track evolving risk profiles for products in your portfolio
- Supply chain risk assessment — Evaluate manufacturer recall history and adverse event patterns before sourcing decisions
- Legal research — Build a complete regulatory timeline for litigation involving drug or device safety claims
API Examples
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/fda-product-intelligence").call(run_input={
"productName": "metformin",
"searchScope": "drugs",
})
report = list(client.dataset(run["defaultDatasetId"]).iterate_items())[0]
print(f"Risk Level: {report['summary']['riskLevel']}")
print(f"Key Findings:")
for finding in report['summary']['keyFindings']:
print(f" - {finding}")
JavaScript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('ryanclinton/fda-product-intelligence').call({
productName: 'pacemaker',
companyName: 'Medtronic',
searchScope: 'devices',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const report = items[0];
console.log(`Risk: ${report.summary.riskLevel}`);
console.log(`Device AE: ${report.devices?.adverseEvents.totalReports.toLocaleString()}`);
cURL
curl "https://api.apify.com/v2/acts/ryanclinton~fda-product-intelligence/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{"productName": "valsartan", "searchScope": "drugs"}'
How It Works
┌─────────────────────┐
│ Product / Company │
│ Query Input │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ Scope Router │
│ drugs/devices/food │
└──────────┬──────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ DRUGS │ │ DEVICES │ │ FOOD │
│ │ │ │ │ │
│ drugsfda │ │ 510k │ │ food/event│
│ drug/event│ │ pma │ │ food/enf │
│ drug/enf │ │ device/evt│ │ │
│ │ │ device/enf│ │ │
│ 3 results │ │ 4 results │ │ 2 results │
│ 2 counts │ │ 2 counts │ │ 2 counts │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
└────────────────────┼────────────────────┘
│
┌──────────▼──────────┐
│ Intelligence │
│ Engine │
│ │
│ • Risk Assessment │
│ • Key Findings │
│ • Timeline Builder │
│ • Domain Merging │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ Unified Report │
│ to Apify Dataset │
└─────────────────────┘
Endpoints Queried
| Domain | Endpoint | Data Retrieved |
|---|---|---|
| Drugs | drug/drugsfda | NDA/ANDA/BLA approvals |
| Drugs | drug/event | FAERS adverse event totals + top reactions + seriousness |
| Drugs | drug/enforcement | Drug recall enforcement reports |
| Devices | device/510k | 510(k) premarket clearances |
| Devices | device/pma | PMA Class III device approvals |
| Devices | device/event | MAUDE adverse event totals + top device problems |
| Devices | device/enforcement | Device recall enforcement reports |
| Food | food/event | CAERS food/supplement adverse event totals + top reactions |
| Food | food/enforcement | Food recall enforcement reports |
Data Source
All data comes from the openFDA API (api.fda.gov), the U.S. Food and Drug Administration's public data platform. Data is updated regularly (typically weekly) and covers:
- Drug approvals: ~29K applications (NDA, ANDA, BLA)
- Drug adverse events: ~27M FAERS reports
- Drug recalls: ~17K enforcement reports
- Device clearances: ~230K 510(k) records
- Device approvals: ~56K PMA records
- Device adverse events: ~19M MAUDE reports
- Device recalls: ~38K enforcement reports
- Food adverse events: ~148K CAERS reports
- Food recalls: ~25K enforcement reports
Cost Estimate
| Scenario | Records | Estimated Cost |
|---|---|---|
| Single drug profile (drugs only) | ~5 API calls | ~$0.005 |
| Company intelligence (all domains) | ~15 API calls | ~$0.01 |
| Cross-domain product search | ~15 API calls | ~$0.01 |
| Scheduled weekly monitoring | ~15 API calls × 4 | ~$0.04/month |
Tips
- Start broad, then narrow: Run with
searchScope: "all"first to see which domains have data, then follow up with domain-specific searches and highermaxResultsPerCategoryfor the relevant domain - Schedule for monitoring: Set up a weekly schedule to track evolving risk profiles — new recalls, increasing adverse event counts, or new approvals
- Company vs. product: Company searches work best for devices (applicant field). Product name searches work best for drugs (brand_name, generic_name fields)
- Risk level context: A CRITICAL or HIGH risk level doesn't necessarily mean the product is unsafe — metformin has 34K death reports because it's prescribed to millions of diabetic patients. Context matters
Limitations
- openFDA caps results at 1,000 per endpoint — for products with more records, the actor returns a representative sample plus aggregate statistics
- Adverse event reports are not proof of causation — a drug listed in an adverse event report may not have caused the reaction
- Not all records have openFDA enrichment — some enforcement reports lack brand_name/generic_name cross-references
- Food/event endpoint doesn't support company-name-only searches — productName is needed for food adverse event queries
- The
seriouscount on drug/event uses the FDA's seriousness flag (1=serious, 2=not serious) which is reporter-dependent - Date range filters apply to different date fields per endpoint (report_date, decision_date, receivedate, etc.)
Responsible Use
- All data comes from public FDA records — no proprietary or restricted data is accessed
- Adverse event reports are not validated by FDA and should not be used for clinical decision-making
- This actor is designed for research and intelligence purposes — not as a substitute for professional regulatory advice
- Recall data may include terminated recalls that have been fully resolved
- Risk levels are computed algorithmically and should be interpreted with appropriate context
FAQ
Q: Do I need an API key? A: No. The openFDA API is free and public. No API key is required.
Q: How current is the data?
A: openFDA data is typically updated weekly. The searchedAt timestamp in the report shows when the query was run.
Q: Why does metformin show CRITICAL risk? A: Metformin has 428K+ adverse event reports and 34K death-associated reports because it's one of the most widely prescribed drugs worldwide. High adverse event counts reflect high usage, not necessarily high danger. Always interpret in context.
Q: What's the difference between the domain-specific actors and this intelligence actor? A: The domain-specific actors (e.g., FDA Drug Recall Search) return detailed individual records with full field access and pagination. This actor returns a unified intelligence report combining aggregate statistics, risk assessment, and cross-domain timeline — optimized for decision-making rather than raw data extraction.
Q: Can I search for a specific recall number? A: This actor is designed for product/company intelligence. For specific recall lookup, use the individual FDA Drug Recall Search or FDA Medical Device Recall Search actors.
Q: How many API calls does one run make? A: Depends on scope. Drug-only: ~5 calls. Device-only: ~6 calls. All domains: ~15 calls. All calls run in parallel so wall-clock time is typically 2-5 seconds.
Related Actors
This actor aggregates data from the same sources as these individual actors in the FDA regulatory intelligence suite:
| Actor | What It Does |
|---|---|
| FDA Drug Approval Search | Detailed drug approval records (NDA/ANDA/BLA) |
| openFDA Drug Event Monitor | Individual drug adverse event reports with full detail |
| FDA Drug Recall Search | Drug recall enforcement reports with full filtering |
| FDA 510(k) Device Clearances | Medical device 510(k) clearance records |
| FDA PMA Device Approvals | Class III PMA device approval records |
| FDA Device Adverse Events (MAUDE) | Medical device adverse event reports |
| FDA Medical Device Recall Search | Device recall enforcement reports |
| FDA Food & Supplement Adverse Events | CAERS food/supplement adverse event reports |
| FDA Food Recall Monitor | Food recall enforcement reports |
Use the individual actors when you need detailed records with full field access. Use this intelligence actor when you need a unified risk assessment and cross-domain overview.
Related actors
CFPB Complaint Search — By Company, Product & State
Search the CFPB consumer complaint database with 5M+ complaints. Filter by company, product, state, date range, and keyword. Extract complaint details, company responses, and consumer narratives. Free US government data, no API key required.
SEC EDGAR Filing Search — 10-K, 10-Q, 8-K & More
Search SEC EDGAR filings by keyword, company name, or ticker symbol. Filter by form type (10-K, 10-Q, 8-K, S-1, DEF 14A, Form 4) and date range. Returns structured filing data with direct document URLs. Free, no API key.
EUIPO Trademark Search — By Name, Class & Status
Search EU trademarks via the official EUIPO API. Find registered, pending, or expired trademarks by name, Nice class, applicant, status, or date. Returns application details, owners, goods & services, and EUIPO links.
FEC Campaign Finance - Political Donations & Donors
Campaign finance API + political donor network analysis. Turns raw FEC contribution data into entity-resolved, auditable, automation-ready political intelligence — donor canonical IDs, relationship mapping, network centrality, political memory, anomalies, event records.
Ready to try FDA Product Intelligence — Approvals & Recalls?
Run it on your own Apify account. Apify offers a free tier with $5 of monthly credits.
Open on Apify Store