FDA Product Intelligence
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.
Maintenance Pulse
90/100Documentation
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.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try FDA Product Intelligence?
Start for free on Apify. No credit card required.
Open on Apify Store