openFDA Drug & Device Data Crawler avatar

openFDA Drug & Device Data Crawler

Pricing

Pay per event

Go to Apify Store
openFDA Drug & Device Data Crawler

openFDA Drug & Device Data Crawler

Crawl FDA drug adverse events, recalls, labels, NDC codes, device events, and 510(k) clearances from the openFDA API. Filter by drug name, manufacturer, date range, and severity. 20M+ adverse event reports available.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

3 days ago

Last modified

Share

Query the FDA's public API for drug adverse events, recalls, drug labels, NDC codes, device events, and 510(k) clearances. Eight datasets, one actor, no authentication required.

Features

  • Queries all eight openFDA endpoints — drug adverse events (FAERS), drug recalls, drug labels (SPL), drug approvals (Drugs@FDA), NDC directory, device adverse events (MAUDE), 510(k) clearances, and device recalls
  • Filters by drug name, manufacturer, and date range — field mapping is handled per-endpoint automatically
  • Limits adverse event results to serious reports — death, hospitalization, life-threatening outcomes, and permanent disability
  • Filters recalls by severity class — Class I (risk of death), Class II (moderate), or Class III (least severe)
  • Paginates past the 25,000-record API cap — uses date-range windowing for large result sets
  • Decodes numeric codes into readable values — drug characterization, sex, reaction outcome, and reporter qualification are translated from FDA codes to plain text
  • Returns a unified schema across all endpoints — adverse event fields and recall fields coexist in each record; unused fields are empty rather than absent

Use Cases

Who is pulling this data and why?

  • Pharmacovigilance analysts monitoring adverse event signals for a specific drug or drug class
  • Compliance teams tracking open recalls by class and distribution region before a product launch
  • Healthcare data engineers building pipelines that enrich internal drug databases with FAERS data
  • Medical device researchers screening 510(k) clearance history for a competitor's device portfolio
  • Insurance underwriters assessing liability exposure tied to Class I recall history for a manufacturer
  • Academic researchers studying patient demographics and reaction outcomes across a drug category

How It Works

  1. Select an FDA dataset endpoint and apply filters (drug name, manufacturer, date range, severity).
  2. The actor constructs the openFDA search= query, paginates through results in batches of 100, and respects the 240 req/min rate limit with a 250ms delay between requests.
  3. Raw API records are decoded — numeric sex/outcome/characterization codes become human-readable strings, dates are normalized to YYYY-MM-DD.
  4. Each record is written to the Apify dataset in the unified schema. Adverse event fields are populated for drug/event and device/event runs; recall fields are populated for enforcement and recall runs.

Input

{
"endpoint": "drug/event",
"drugName": "metformin",
"manufacturer": "",
"dateFrom": "2023-01-01",
"dateTo": "2023-12-31",
"seriousOnly": true,
"recallClass": "",
"maxItems": 500
}
FieldTypeDefaultDescription
endpointstringdrug/eventFDA dataset to query. See endpoint table below.
drugNamestringDrug brand or generic name. Partial match supported.
manufacturerstringManufacturer or recalling firm name. Partial match supported.
dateFromstringStart date (YYYY-MM-DD). For adverse events, filters by FDA receive date.
dateTostringEnd date (YYYY-MM-DD). Defaults to today when dateFrom is set.
seriousOnlybooleanfalseReturn only serious reports (adverse event endpoints only).
recallClassstringClass I, Class II, or Class III. Recall endpoints only.
maxItemsinteger100Maximum records to return.

Available Endpoints

ValueDatasetRecords Available
drug/eventDrug Adverse Events (FAERS)20M+
drug/enforcementDrug Recalls18K+
drug/labelDrug Labels (SPL)257K+
drug/drugsfdaDrug Approvals (Drugs@FDA)29K+
drug/ndcNDC Directory134K+
device/eventDevice Adverse Events (MAUDE)24M+
device/510kDevice 510(k) Clearances174K+
device/recallDevice Recalls

Output Fields

{
"report_id": "12345678",
"endpoint": "drug/event",
"drug_name": "METFORMIN HYDROCHLORIDE",
"drug_active_ingredients": ["METFORMIN HYDROCHLORIDE"],
"drug_manufacturer": "Amneal Pharmaceuticals",
"drug_characterization": "Suspect",
"drug_indication": "TYPE 2 DIABETES MELLITUS",
"drug_route": "Oral",
"reactions": ["Nausea", "Vomiting", "Lactic acidosis"],
"reaction_outcomes": ["Recovered", "Recovered", "Hospitalized"],
"serious": true,
"seriousness_death": false,
"seriousness_hospitalization": true,
"patient_age": "67",
"patient_sex": "Female",
"report_country": "US",
"report_source": "Physician",
"receive_date": "2023-04-18",
"recall_number": "",
"recall_class": "",
"recall_status": "",
"recall_reason": "",
"recall_product": "",
"recall_firm": "",
"recall_state": "",
"recall_distribution": ""
}
FieldDescription
report_idUnique report or record identifier (FAERS safety report ID, recall number, NDC code, etc.)
endpointFDA dataset this record came from
drug_nameDrug brand name or generic name
drug_active_ingredientsActive ingredient(s) in the drug
drug_manufacturerDrug manufacturer or reporting company
drug_characterizationRole of drug in the report: Suspect, Concomitant, or Interacting
drug_indicationCondition the drug was prescribed for
drug_routeRoute of administration (Oral, Intravenous, Topical, etc.)
reactionsAdverse reaction terms (MedDRA preferred terms)
reaction_outcomesOutcome per reaction: Recovered, Recovering, Not Recovered, Recovered with Sequelae, Fatal, Unknown
seriousWhether the report is classified as serious
seriousness_deathWhether the event resulted in death
seriousness_hospitalizationWhether the event resulted in hospitalization
patient_agePatient age at time of event
patient_sexPatient sex (Male, Female, Unknown)
report_countryCountry where the report originated
report_sourceReporter type (Physician, Pharmacist, Consumer, etc.)
receive_dateDate the FDA received the report or recall initiation date (YYYY-MM-DD)
recall_numberFDA recall number (recall and enforcement records)
recall_classClass I, II, or III
recall_statusOngoing, Completed, or Terminated
recall_reasonReason for the recall
recall_productDescription of the recalled product
recall_firmFirm initiating or subject to the recall
recall_stateState of the recalling firm
recall_distributionDistribution pattern of the recalled product

FAQ

How much data is available for drug adverse events? The openFDA Drug Adverse Events (FAERS) dataset contains over 20 million reports accumulated since the 1960s. The Device Adverse Events (MAUDE) dataset has over 24 million. This actor paginates through results up to the maxItems limit you set.

Does this actor require an API key? No. The openFDA API is a free government service that requires no authentication. Without a key, the rate limit is 240 requests per minute. This actor stays within that limit and does not currently support API key injection.

What happens when results exceed 25,000 records? The openFDA API has a hard cap of 25,000 on the skip offset (skip + limit must not exceed 25,000). This actor detects that boundary and stops pagination at the cap. For datasets larger than 25,000, use a narrow date range to retrieve specific windows of data across multiple runs.

Can I get only deaths or hospitalizations? Set seriousOnly: true to restrict drug/event and device/event results to serious reports. Within those results, seriousness_death and seriousness_hospitalization are boolean fields you can filter on in your downstream pipeline. The actor does not currently support single-outcome filtering as a direct input parameter.

Are all fields present in every record? The actor uses a unified schema across all eight endpoints. Fields that do not apply to a given endpoint (e.g., recall fields on an adverse event record) are returned as empty strings or empty arrays rather than omitted. This keeps downstream schema handling consistent.

Need More Features?

Open an issue or contact us at apify.com/jungle_synthesizer/openfda-drug-crawler to request additional endpoints, new filter parameters, or a custom build.

Why Use This Actor

  • No scraping, no rate-limit workarounds — the openFDA API returns clean JSON; this actor handles pagination, decoding, and schema normalization so you do not have to
  • Eight datasets in one interface — adverse events, recalls, labels, approvals, NDC codes, and device data are all accessible through the same input format
  • Numeric codes are decoded — FDA uses integer codes for sex, reaction outcome, drug characterization, and reporter type; this actor converts them to readable strings before writing to your dataset