openFDA

App · Research & Academia · 40 actions

Query every public dataset the US Food and Drug Administration publishes, across drugs, medical devices, food, cosmetics, veterinary medicine and tobacco. Look up a drug by its NDC or read its label; track recalls, shortages, approvals and clearances; search adverse event reports for drugs, devices, food and animals; look up a device by its product code, its UDI or its 510(k); read the letters FDA sends when it refuses an application; and turn any of it into a frequency table. All thirty of openFDA's datasets are covered. No account needed.

Actions

ActionWhat it does
Count values in a fieldTurn any openFDA dataset into a frequency table: how often each value of one field appears, most common first, without downloading the records.
Get a device approvalRead one premarket approval by its PMA number, or one of its supplements.
Get a device classificationRead one device product code in full: what FDA calls that kind of device, its definition, its risk class, the CFR regulation that governs it with a link to the text, and whether it is implantable, life-sustaining or exempt from Good Manufacturing Practice.
Get a device clearanceRead one 510(k) clearance by its K number: the device, the applicant and their address, when FDA received it and when it decided, the decision itself, the product code and the review panel, plus a link to the clearance on FDA's site.
Get a drug approvalRead one Drugs@FDA application by its number: who sponsors it, every product approved under it with its strengths and marketing status, and every submission and supplement filed against it with the date FDA decided each one.
Get a drug labelRead one drug's label by its SPL Set ID, the identifier that names a label across every version of it, and the one shown on the product's DailyMed page.
Get a drug product by NDCLook up one drug product by its National Drug Code, the number printed on every US drug package.
Get dataset detailsRead one openFDA dataset's record count, export date, sortable and countable fields, and the bulk download files it is published as, each with its size, record count and the period it covers.
List openFDA datasetsList every dataset openFDA publishes with how many records it holds, when FDA last exported it, how many bulk download files it comes in, and which of its fields can be sorted and counted.
Run an advanced queryRun a search expression of your own against any openFDA dataset, in openFDA's own query language: 'field:value', AND / OR / NOT, quoted phrases, '[2024-01-01 TO 2024-12-31]' date ranges, and 'exists:field'.
Search animal and veterinary adverse eventsSearch the adverse events reported for animal drugs and devices: which species, what reaction, what happened to the animal, which product was involved and who reported it.
Search Complete Response LettersSearch the letters FDA sends when it will not approve an application, released in full text with the deficiencies each one cites.
Search cosmetic adverse eventsSearch the adverse events reported to FDA about cosmetics: the reaction, the product blamed for it, whether the product was suspected or merely in use at the time, and how serious the outcome was.
Search COVID-19 antibody test validationsSearch the independent validation the National Cancer Institute ran on COVID-19 antibody tests for FDA: every sample put through every test, what the test said, what the truth panel said, and whether the two agreed.
Search COVID-19 research samplesSearch the samples in FDA's COVID-19 miRNA and proteomics research: each donor's severity, sex and age, and, on request, the several thousand protein measurements taken from their sample.
Search device adverse eventsSearch MAUDE, FDA's database of medical device reports: the deaths, injuries and malfunctions reported for a device, with the manufacturer's narrative of what happened, what the patient's outcome was, and what remedial action was taken.
Search device approvals (PMA)Search premarket approvals: the highest-risk devices, which have to prove safety and effectiveness rather than equivalence, plus every supplement filed against an approval afterwards.
Search device classificationsSearch FDA's device classification database: what each three-letter product code means, which risk class it is in, which regulation governs it, whether it is implantable or life-sustaining, and what kind of premarket submission it needs.
Search device clearances (510(k))Search 510(k) premarket notifications: the devices FDA has cleared for market because they are substantially equivalent to one already sold.
Search device establishment registrationsSearch every establishment registered with FDA to make, repack, relabel or import a medical device, and the devices each one lists.
Search device identifiers (UDI)Search the Global UDI Database: the catalogue entry behind every device identifier, with the brand and model, the company, the sizes it comes in, whether it is sterile, single-use or prescription-only, its MRI safety rating, its storage conditions and the premarket submissions behind it.
Search device recall enforcement reportsSearch device recalls in the same enforcement format FDA uses for drugs and food, so they carry the Class I / II / III hazard classification and can be filtered the same way.
Search device recallsSearch device recalls as FDA's device centre files them, with the root cause it assigned (device design, software, process control, packaging) and the correcting action the firm took.
Search drug adverse eventsSearch the 20 million adverse event and medication error reports in FDA's FAERS database: what reaction was reported, which drug was suspected, the patient's age and sex, whether the outcome was serious, and who reported it.
Search drug approvalsSearch Drugs@FDA: every drug application FDA has acted on, brand-name (NDA), generic (ANDA) and biologic (BLA), with the products approved under it and the full history of submissions and supplements.
Search drug labelsSearch the prescribing information published for every marketed drug: the boxed warning, indications, dosage, contraindications, adverse reactions, interactions and the rest of the package insert.
Search drug products (NDC directory)Search the National Drug Code directory: every drug product listed with FDA, with its NDC, brand and generic names, labeler, dosage form, route, active ingredients and strengths, package sizes, DEA schedule and marketing dates.
Search drug recallsSearch FDA's drug recall enforcement reports: what was recalled, by whom, why, how much of it, where it was distributed, and how dangerous FDA judged it.
Search drug shortagesSearch FDA's drug shortage database: which drugs are in short supply, in which presentations, why, what the company says about availability, and whether the shortage is current or resolved.
Search food adverse eventsSearch CAERS, the reports FDA collects about foods, dietary supplements and cosmetics: the reaction, the product blamed for it, how serious the outcome was, and the consumer's age and sex.
Search food recallsSearch FDA's food recall enforcement reports: what was recalled, by whom, why (undeclared allergens and contamination are the usual reasons), how much of it, where it was distributed, and how dangerous FDA judged it.
Search historical FDA documentsSearch FDA's digitised press releases and talk papers, in full text, back through the agency's history.
Search NSDE package recordsSearch the NSDE file: one row per drug package, with its eleven-digit and hyphenated NDCs, its billing unit, and the dates it started and stopped being marketed.
Search smokefree.gov traffic researchSearch the traffic measurements FDA publishes for its smokefree.gov quit-smoking resources: page views, completions, session durations and downloads for each tool, split by whether visitors arrived from The Real Cost campaign, from a search engine, or directly.
Search substance registrationsSearch FDA's Global Substance Registration System, the scientific record behind every substance it regulates: its UNII code, every name it goes by, its class, and, for chemicals, its formula, molecular weight and structure.
Search the Orange BookSearch the Orange Book: FDA's list of approved drug products with their therapeutic equivalence codes, the patents that cover them and the exclusivity periods that keep generics off the market.
Search tobacco digital ad performanceSearch how FDA's digital tobacco-prevention adverts performed on each channel: views, view-through rate, how long people actually watched, how much of that time they were paying attention, and whether they recognised the advert and the brand afterwards.
Search tobacco prevention ad studiesSearch FDA's Tobacco Rapid Response ad-testing studies: how each prevention advert moved young people's beliefs about addiction, health consequences and harmful constituents, and how much, broken down by risk status, gender, age group and race or ethnicity.
Search tobacco problem reportsSearch the problems the public reports to FDA about tobacco products: the health effects (seizures and breathing problems are common with vaping products) and the product defects, such as batteries overheating or foreign material in the product.
Search UNII codesSearch FDA's Unique Ingredient Identifier list: the ten-character code FDA assigns to every substance, paired with its preferred name and nothing else.

Count values in a field

Turn any openFDA dataset into a frequency table: how often each value of one field appears, most common first, without downloading the records. This answers the questions the search actions cannot: the most-reported reactions for a drug, the states with the most recalls, the root causes behind device recalls, recalls per month. Add a query to count within a slice rather than the whole dataset. Choosing a date field gives a time series instead of a breakdown. No API key required.

Inputs

DatasetdatasettextRequired
Which of openFDA's thirty datasets to tally.One of: drug/event (Drugs: Drug adverse events), drug/label (Drugs: Drug product labels), drug/ndc (Drugs: National Drug Code directory), drug/enforcement (Drugs: Drug recalls), drug/drugsfda (Drugs: Drug approvals (Drugs@FDA)), drug/shortages (Drugs: Drug shortages), drug/orangebook (Drugs: Orange Book), device/event (Devices: Device adverse events), device/classification (Devices: Device classifications), device/510k (Devices: Device clearances (510(k))), and 20 more.
Field to countfieldtextRequired
Which field's values to tally. The list narrows to the chosen dataset, and only offers fields openFDA can actually count. It refuses the rest.
Only count records matchingquerytext
An openFDA search expression narrowing what gets counted, in the same syntax as 'Run an advanced query'. Leave empty to count the whole dataset.
Number of valueslimitnumber
How many of the most frequent values to return (1-1000). Defaults to 25.From 1 to 1000.

Outputs

countnumber
datasettext
dataset_labeltext
fieldtext
last_updatedtext
querytext
resultslist
source_urltext
total_matchingnumber
Example output
{
  "count": 3,
  "dataset": "drug/enforcement",
  "dataset_label": "Drug recalls",
  "field": "state.exact",
  "last_updated": "2026-08-12",
  "query": "",
  "results": [
    {
      "count": 2187,
      "date": null,
      "term": "NJ"
    },
    {
      "count": 1534,
      "date": null,
      "term": "FL"
    },
    {
      "count": 1324,
      "date": null,
      "term": "IL"
    }
  ],
  "source_url": "https://open.fda.gov/apis/drug/enforcement/",
  "total_matching": 5045
}

Get a device approval

Read one premarket approval by its PMA number, or one of its supplements. Leave the supplement number blank for the original approval. Returns the device, the applicant, the decision and its date, the advisory committee, and FDA's approval-order statement, plus a link to the record on FDA's site. The step fails if the number does not exist. No API key required.

Inputs

PMA numberpma_numbertextRequired
The approval number, including the leading P.
Supplement numbersupplement_numbertext
Leave blank for the original approval, or give a supplement's number to read that instead.

Outputs

approvalobject
datasettext
last_updatedtext
source_urltext
Example output
{
  "approval": {
    "advisory_committee": "CV",
    "advisory_committee_description": "Cardiovascular",
    "ao_statement": "approval for minor labeling changes, removal of paper IFU, and minor dimensional changes to sterile pouches",
    "applicant": "Boston Scientific",
    "approval_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P960004",
    "city": "St Paul",
    "date_received": "2026-02-04",
    "decision_code": "APPR",
    "decision_date": "2026-04-10",
    "docket_number": "",
    "expedited_review_flag": "N",
    "fed_reg_notice_date": null,
    "generic_name": "Drug eluting permanent right ventricular (RV) or right atrial (RA) pacemaker electrodes",
    "openfda": {
      "device_class": "3",
      "device_class_label": "Class III (high risk)",
      "device_name": "Drug Eluting Permanent Right Ventricular (Rv) Or Right Atrial (Ra) Pacemaker Electrodes",
      "fei_number": [
        "3008159616",
        "3004369318"
      ],
      "medical_specialty_description": "Unknown",
      "registration_number": [
        "3008159616",
        "9610139"
      ],
      "regulation_number": ""
    },
    "pma_number": "P960004",
    "product_code": "NVN",
    "state": "MN",
    "supplement_number": "S114",
    "supplement_reason": "Labeling Change - Indications/instructions/shelf life/tradename",
    "supplement_type": "Real-Time Process",
    "trade_name": "Straight Lead Stylets Limber Models 6033, 6034; Straight Lead Stylets Firm Models 6036, 6037; J Shaped Lead Stylets Limb",
    "zip": "55112"
  },
  "dataset": "device/pma",
  "last_updated": "2026-08-10",
  "source_url": "https://open.fda.gov/apis/device/pma/"
}

Get a device classification

Read one device product code in full: what FDA calls that kind of device, its definition, its risk class, the CFR regulation that governs it with a link to the text, and whether it is implantable, life-sustaining or exempt from Good Manufacturing Practice. The step fails if the code does not exist. No API key required.

Inputs

Product codeproduct_codetextRequired
The three-letter code, such as LRO. Find one with 'Search device classifications'.

Outputs

classificationobject
datasettext
last_updatedtext
source_urltext
Example output
{
  "classification": {
    "definition": "This product code has been established in accordance with the may 20, 1997, guidance entitled, convenience kits interim regulatory guidance, found at www.Fda...",
    "device_class": "2",
    "device_class_label": "Class II (moderate to high risk)",
    "device_name": "General Surgery Tray",
    "gmp_exempt_flag": "N",
    "implant_flag": "N",
    "life_sustain_support_flag": "N",
    "medical_specialty": "SU",
    "medical_specialty_description": "General, Plastic Surgery",
    "openfda": {
      "fei_number": [
        "3008496560",
        "3006191977"
      ],
      "k_number": [
        "K212258",
        "K934028"
      ],
      "registration_number": [
        "3008496560",
        "3006191977"
      ]
    },
    "product_code": "LRO",
    "regulation_number": "878.4370",
    "regulation_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?FR=878.4370",
    "review_panel": "SU",
    "submission_type_id": "7",
    "submission_type_id_label": null,
    "summary_malfunction_reporting": "Eligible",
    "third_party_flag": "N"
  },
  "dataset": "device/classification",
  "last_updated": "2026-08-10",
  "source_url": "https://open.fda.gov/apis/device/classification/"
}

Get a device clearance

Read one 510(k) clearance by its K number: the device, the applicant and their address, when FDA received it and when it decided, the decision itself, the product code and the review panel, plus a link to the clearance on FDA's site. The step fails if the number does not exist. No API key required.

Inputs

510(k) numberk_numbertextRequired
The clearance number, including the leading K.

Outputs

clearanceobject
datasettext
last_updatedtext
source_urltext
Example output
{
  "clearance": {
    "address_1": "120 S. Sierra Ave., Suite 100",
    "advisory_committee": "NE",
    "advisory_committee_description": "Neurology",
    "applicant": "ClearPoint Neuro, Inc.",
    "city": "Solana Beach",
    "clearance_type": "Traditional",
    "clearance_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233144",
    "contact": "Brennan  Sullivan",
    "country_code": "US",
    "date_received": "2023-09-27",
    "decision_code": "SESE",
    "decision_date": "2024-01-12",
    "decision_description": "Substantially Equivalent",
    "device_name": "ClearPoint Bone Screw Fiducials",
    "expedited_review_flag": "",
    "k_number": "K233144",
    "openfda": {
      "device_class": "2",
      "device_class_label": "Class II (moderate to high risk)",
      "device_name": "Neurological Stereotaxic Instrument",
      "fei_number": [
        "3006405073",
        "3017004815"
      ],
      "medical_specialty_description": "Neurology",
      "registration_number": [
        "3006405073",
        "3017004815"
      ],
      "regulation_number": "882.4560"
    },
    "postal_code": "92075",
    "product_code": "HAW",
    "state": "CA",
    "statement_or_summary": "Summary",
    "third_party_flag": "N"
  },
  "dataset": "device/510k",
  "last_updated": "2026-08-10",
  "source_url": "https://open.fda.gov/apis/device/510k/"
}

Get a drug approval

Read one Drugs@FDA application by its number: who sponsors it, every product approved under it with its strengths and marketing status, and every submission and supplement filed against it with the date FDA decided each one. The step fails if the number is not in Drugs@FDA. No API key required.

Inputs

Application numberapplication_numbertextRequired
The FDA application number, including its prefix: NDA, ANDA or BLA.

Outputs

applicationobject
datasettext
last_updatedtext
source_urltext
Example output
{
  "application": {
    "application_number": "NDA021436",
    "drugs_at_fda_url": "https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=021436",
    "openfda": {
      "application_number": [
        "NDA021436"
      ],
      "brand_name": [
        "ABILIFY"
      ],
      "generic_name": [
        "ARIPIPRAZOLE"
      ],
      "manufacturer_name": [
        "Otsuka America Pharmaceutical, Inc."
      ],
      "package_ndc": [
        "59148-006-13",
        "59148-006-92"
      ],
      "product_ndc": [
        "59148-006",
        "59148-007"
      ],
      "product_type": [
        "HUMAN PRESCRIPTION DRUG"
      ],
      "route": [
        "ORAL"
      ],
      "rxcui": [
        "349490",
        "349545"
      ],
      "spl_id": [
        "1b189d15-798d-4bed-a93d-a543ed7abd81"
      ],
      "spl_set_id": [
        "c040bd1d-45b7-49f2-93ea-aed7220b30ac"
      ],
      "substance_name": [
        "ARIPIPRAZOLE"
      ]
    },
    "products": [
      {
        "active_ingredients": [
          {
            "name": "ARIPIPRAZOLE",
            "strength": "2MG"
          }
        ],
        "brand_name": "ABILIFY",
        "dosage_form": "TABLET",
        "marketing_status": "Prescription",
        "product_number": "006",
        "reference_drug": "Yes",
        "reference_standard": "No",
        "route": "ORAL",
        "te_code": "AB"
      },
      {
        "active_ingredients": [
          {
            "name": "ARIPIPRAZOLE",
            "strength": "30MG"
          }
        ],
        "brand_name": "ABILIFY",
        "dosage_form": "TABLET",
        "marketing_status": "Prescription",
        "product_number": "004",
        "reference_drug": "Yes",
        "reference_standard": "No",
        "route": "ORAL",
        "te_code": "AB"
      }
    ],
    "sponsor_name": "OTSUKA",
    "submissions": [
      {
        "application_docs": [
          {
            "date": "2006-09-20",
            "id": "36917",
            "type": "Label",
            "url": "http://www.accessdata.fda.gov/drugsatfda_docs/label/2006/021436s014,021713s009lbl.pdf"
          },
          {
            "date": "2006-09-20",
            "id": "5362",
            "type": "Letter",
            "url": "http://www.accessdata.fda.gov/drugsatfda_docs/appletter/2006/021436s014, 021713s009ltr.pdf"
          }
        ],
        "review_priority": "STANDARD",
        "submission_class_code": "LABELING",
        "submission_class_code_description": "Labeling",
        "submission_number": "14",
        "submission_status": "AP",
        "submission_status_date": "2006-09-18",
        "submission_type": "SUPPL"
      },
      {
        "application_docs": [
          {
            "date": "2004-10-04",
            "id": "15455",
            "type": "Label",
            "url": "http://www.accessdata.fda.gov/drugsatfda_docs/label/2004/21436s002lbl.pdf"
          },
          {
            "date": "2013-05-10",
            "id": "21653",
            "type": "Review",
            "url": "http://www.accessdata.fda.gov/drugsatfda_docs/nda/2004/021436Orig1s002.pdf"
          }
        ],
        "review_priority": "STANDARD",
        "submission_class_code": "EFFICACY",
        "submission_class_code_description": "Efficacy",
        "submission_number": "2",
        "submission_status": "AP",
        "submission_status_date": "2004-09-29",
        "submission_type": "SUPPL"
      }
    ]
  },
  "dataset": "drug/drugsfda",
  "last_updated": "2026-08-21",
  "source_url": "https://open.fda.gov/apis/drug/drugsfda/"
}

Get a drug label

Read one drug's label by its SPL Set ID, the identifier that names a label across every version of it, and the one shown on the product's DailyMed page. Choose which sections to bring back. The step fails if no label carries that ID, so use 'Search drug labels' when you have a name rather than an identifier. No API key required.

Inputs

SPL Set IDset_idtextRequired
The label's Set ID. A specific version's document ID works too.
Sections to returnsectionstext
Which parts of the label to bring back. Nothing but the identifying fields is returned until you choose, because a full label can run to a megabyte.One or more of: boxed_warning (Boxed warning), indications_and_usage (Indications and usage), dosage_and_administration (Dosage and administration), dosage_forms_and_strengths (Dosage forms and strengths), contraindications, warnings, warnings_and_cautions (Warnings and cautions), adverse_reactions (Adverse reactions), drug_interactions (Drug interactions), use_in_specific_populations (Use in specific populations), and 23 more.

Outputs

datasettext
labelobject
last_updatedtext
source_urltext
Example output
{
  "dataset": "drug/label",
  "label": {
    "available_sections": [
      "active_ingredient",
      "ask_doctor"
    ],
    "dailymed_url": "https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=015a6179-bacb-452d-b594-4de628ddc11d",
    "effective_time": "2024-11-07",
    "id": "22d94fd9-9488-a812-e063-6394a90a7ffc",
    "indications_and_usage": [
      "Uses temporarily relieves minor aches and pains due to: the common cold headache backache minor pain of arthritis toothache muscular aches premenstrual and m..."
    ],
    "openfda": {
      "application_number": [
        "M013"
      ],
      "brand_name": [
        "TYLENOL Extra Strength"
      ],
      "generic_name": [
        "ACETAMINOPHEN"
      ],
      "manufacturer_name": [
        "Kenvue Brands LLC"
      ],
      "package_ndc": [
        "50580-590-01",
        "50580-590-02"
      ],
      "product_ndc": [
        "50580-590"
      ],
      "product_type": [
        "HUMAN OTC DRUG"
      ],
      "route": [
        "ORAL"
      ],
      "rxcui": [
        "198440",
        "209459"
      ],
      "spl_id": [
        "22d94fd9-9488-a812-e063-6394a90a7ffc"
      ],
      "spl_set_id": [
        "015a6179-bacb-452d-b594-4de628ddc11d"
      ],
      "substance_name": [
        "ACETAMINOPHEN"
      ]
    },
    "set_id": "015a6179-bacb-452d-b594-4de628ddc11d",
    "version": "11",
    "warnings": [
      "Warnings Liver warning This product contains acetaminophen. Severe liver damage may occur if you take more than 4,000 mg of acetaminophen in 24 hours with ot..."
    ]
  },
  "last_updated": "2026-08-22",
  "source_url": "https://open.fda.gov/apis/drug/label/"
}

Get a drug product by NDC

Look up one drug product by its National Drug Code, the number printed on every US drug package. Either the product code or the longer package code works. Returns the brand and generic names, the labeler, the ingredients and strengths, every package it is sold in, and a link to its label. The step fails if the code is not in the directory. No API key required.

Inputs

NDC codendc_codetextRequired
The product code (0002-4462) or the package code (0002-4462-01).

Outputs

datasettext
drug_productobject
last_updatedtext
source_urltext
Example output
{
  "dataset": "drug/ndc",
  "drug_product": {
    "active_ingredients": [
      {
        "name": "IBUPROFEN",
        "strength": "200 mg/1"
      },
      {
        "name": "DIPHENHYDRAMINE CITRATE",
        "strength": "38 mg/1"
      }
    ],
    "application_number": null,
    "brand_name": null,
    "dailymed_url": null,
    "dea_schedule": null,
    "dea_schedule_label": null,
    "dosage_form": "TABLET, COATED",
    "finished": false,
    "generic_name": "ibuprofen, diphenhydramine citrate",
    "labeler_name": "L. Perrigo Company",
    "marketing_category": "DRUG FOR FURTHER PROCESSING",
    "marketing_end_date": null,
    "marketing_start_date": "2009-11-24",
    "openfda": {},
    "packaging": [
      {
        "description": "1 BAG in 1 DRUM (0113-4011-00)  / 155280 TABLET, COATED in 1 BAG",
        "marketing_start_date": "24-NOV-09",
        "package_ndc": "0113-4011-00"
      }
    ],
    "pharm_class": null,
    "product_id": "0113-4011_aa69b1b9-4993-4ea2-ab3d-e29c6a5eed8e",
    "product_ndc": "0113-4011",
    "product_type": "DRUG FOR FURTHER PROCESSING",
    "route": null,
    "spl_id": "aa69b1b9-4993-4ea2-ab3d-e29c6a5eed8e"
  },
  "last_updated": "2026-08-21",
  "source_url": "https://open.fda.gov/apis/drug/ndc/"
}

Get dataset details

Read one openFDA dataset's record count, export date, sortable and countable fields, and the bulk download files it is published as, each with its size, record count and the period it covers. Use it before a large job to decide between querying the API and downloading the whole file. No API key required.

Inputs

DatasetdatasettextRequired
Which of openFDA's thirty datasets to describe.One of: drug/event (Drugs: Drug adverse events), drug/label (Drugs: Drug product labels), drug/ndc (Drugs: National Drug Code directory), drug/enforcement (Drugs: Drug recalls), drug/drugsfda (Drugs: Drug approvals (Drugs@FDA)), drug/shortages (Drugs: Drug shortages), drug/orangebook (Drugs: Orange Book), device/event (Devices: Device adverse events), device/classification (Devices: Device classifications), device/510k (Devices: Device clearances (510(k))), and 20 more.

Outputs

countable_fieldslist
datasettext
docs_urltext
download_partslist
endpointtext
export_datetext
grouptext
labeltext
last_updatedtext
sortable_fieldslist
source_urltext
summarytext
total_recordsnumber
Example output
{
  "countable_fields": [
    {
      "field": "classification.exact",
      "label": "Recall class"
    },
    {
      "field": "status.exact",
      "label": "Recall status"
    }
  ],
  "dataset": "drug/enforcement",
  "docs_url": "https://open.fda.gov/apis/drug/enforcement/",
  "download_parts": [
    {
      "covers": "All",
      "file_url": "https://download.open.fda.gov/drug/enforcement/drug-enforcement-0001-of-0001.json.zip",
      "records": "17876",
      "size": "5MB"
    }
  ],
  "endpoint": "https://api.fda.gov/drug/enforcement.json",
  "export_date": "2026-08-19",
  "group": "Drugs",
  "label": "Drug recalls",
  "last_updated": "2026-08-12",
  "sortable_fields": [
    "report_date",
    "recall_initiation_date",
    "center_classification_date",
    "termination_date"
  ],
  "source_url": "https://open.fda.gov/apis/",
  "summary": "Drug recall enforcement reports, with FDA's hazard classification.",
  "total_records": 17876
}

List openFDA datasets

List every dataset openFDA publishes with how many records it holds, when FDA last exported it, how many bulk download files it comes in, and which of its fields can be sorted and counted. Run it to check a dataset has been refreshed before reading from it, or to see what is available. No API key required.

Inputs

Groupgrouptext
Narrow to one of openFDA's groups: Drugs, Devices, Food and so on. Leave empty for all thirty datasets.

Outputs

countnumber
datasetslist
groupslist
last_updatedtext
source_urltext
Example output
{
  "count": 30,
  "datasets": [
    {
      "countable_fields": [
        "patient.reaction.reactionmeddrapt.exact",
        "patient.drug.medicinalproduct.exact"
      ],
      "dataset": "drug/event",
      "docs_url": "https://open.fda.gov/apis/drug/event/",
      "download_parts": 1767,
      "endpoint": "https://api.fda.gov/drug/event.json",
      "export_date": "2026-08-17",
      "group": "Drugs",
      "label": "Drug adverse events",
      "sortable_fields": [
        "receivedate",
        "receiptdate",
        "transmissiondate"
      ],
      "summary": "Adverse event and medication error reports submitted to FDA's FAERS safety reporting system.",
      "total_records": 20692690
    }
  ],
  "groups": [
    "Animal & veterinary",
    "Cosmetics",
    "Devices",
    "Drugs",
    "Food",
    "Other",
    "Research",
    "Tobacco",
    "Transparency"
  ],
  "last_updated": "2026-08-22",
  "source_url": "https://open.fda.gov/apis/"
}

Run an advanced query

Run a search expression of your own against any openFDA dataset, in openFDA's own query language: 'field:value', AND / OR / NOT, quoted phrases, '[2024-01-01 TO 2024-12-31]' date ranges, and 'exists:field'. The per-dataset actions cover the filters worth naming; this is the way to ask for something they do not. No API key required.

Inputs

DatasetdatasettextRequired
Which of openFDA's thirty datasets to search.One of: drug/event (Drugs: Drug adverse events), drug/label (Drugs: Drug product labels), drug/ndc (Drugs: National Drug Code directory), drug/enforcement (Drugs: Drug recalls), drug/drugsfda (Drugs: Drug approvals (Drugs@FDA)), drug/shortages (Drugs: Drug shortages), drug/orangebook (Drugs: Orange Book), device/event (Devices: Device adverse events), device/classification (Devices: Device classifications), device/510k (Devices: Device clearances (510(k))), and 20 more.
Search expressionquerytext
The query, in openFDA's syntax. Leave empty to return the dataset unfiltered.
Sort bysort_bytext
Which field to order the results by. The list narrows to the chosen dataset: openFDA sorts on date fields only.
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/enforcement",
  "dataset_label": "Drug recalls",
  "has_more": true,
  "last_updated": "2026-08-12",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "classification.exact:\"Class I\"",
  "results": [
    {
      "center_classification_date": "2018-09-07",
      "city": "Olive Branch",
      "classification": "Class I",
      "code_info": "Lot #: 15617VP03, 15617VP01, 15617VP-02, Exp 7/31/2019;  15617VP06, 15617VP05, Exp 11/30/2019; 15617VP04, 15618004, 15618002, Exp 12/31/2019; 15618009, 15618...",
      "country": "United States",
      "distribution_pattern": "Nationwide in the USA and Puerto Rico",
      "event_id": "80719",
      "initial_firm_notification": "Letter",
      "openfda": {},
      "product_description": "Levothyroxine and Liothyronine (Thyroid Tablets, USP), 1 grain (60 mg), 100-count bottles, Rx Only, Manufactured for: Westminster Pharmaceuticals, LLC, 154 D...",
      "product_quantity": "Unknown",
      "product_type": "Drugs",
      "reason_for_recall": "Failed Content Uniformity Specifications: Product was manufactured using an adulterated active pharmaceutical ingredient; additionally, lack of process contr...",
      "recall_initiation_date": "2018-08-03",
      "recall_number": "D-1178-2018",
      "recalling_firm": "Westminster Pharmaceuticals LLC",
      "report_date": "2018-08-29",
      "state": "MS",
      "status": "Terminated",
      "termination_date": "2020-06-03",
      "voluntary_mandated": "Voluntary: Firm initiated"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/enforcement/",
  "total_count": 1736
}

Search animal and veterinary adverse events

Search the adverse events reported for animal drugs and devices: which species, what reaction, what happened to the animal, which product was involved and who reported it. Filter by species, reaction, outcome, product or date. Note that people are sometimes the affected party: 'Human' is one of the species in this dataset, for events involving someone handling a veterinary product. No API key required.

Inputs

Speciesspeciestext
The animal the event was reported for. The list is read from the reports, with how many there are for each species.
Reactionreactionstext
The reactions reported, in VeDDRA's own wording (the veterinary equivalent of MedDRA).
Outcomeoutcomestext
What happened to the animal.
Product brand namebrand_nameslist
The veterinary product's trade name.
Active ingredientactive_ingredientslist
An ingredient the product contains.
Manufacturermanufacturerslist
The company that makes the product.
Reported byreporterstext
Who filed the report (the owner, a vet, or someone else).
Only serious eventsserious_onlytrue/false
Narrow to events that were fatal or life-threatening, needed professional intervention, or caused an abortion, stillbirth, infertility, congenital anomaly, lasting disability or disfigurement.
Received fromreceived_fromdate
Only include reports FDA received on or after this date.
Received toreceived_todate
Only include reports FDA received on or before this date.
Reaction started fromonset_fromdate
Only include reactions that started on or after this date.
Reaction started toonset_todate
Only include reactions that started on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: original_receive_date (Date FDA received the report), onset_date (Date the reaction started).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "animalandveterinary/event",
  "dataset_label": "Animal and veterinary adverse events",
  "has_more": true,
  "last_updated": "2026-07-02",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "animal.species:(\"Dog\" OR \"DOG\" OR \"dog\")",
  "results": [
    {
      "animal": {
        "age": {
          "min": "10.00",
          "qualifier": "Measured",
          "unit": "Month"
        },
        "breed": {
          "breed_component": "Chihuahua",
          "is_crossbred": "false"
        },
        "female_animal_physiological_status": "NOT APPLICABLE",
        "gender": "Female",
        "reproductive_status": "Neutered",
        "species": "Dog",
        "weight": {
          "min": "4.080",
          "qualifier": "Estimated",
          "unit": "Kilogram"
        }
      },
      "drug": [
        {
          "administered_by": "Animal Owner",
          "ae_abated_after_stopping_drug": "false",
          "ae_reappeared_after_resuming_drug": "false",
          "brand_name": "MSK",
          "dose": {
            "denominator": "1",
            "denominator_unit": "Unknown",
            "numerator": "1",
            "numerator_unit": "tablet"
          },
          "first_exposure_date": "2013-08-13",
          "last_exposure_date": "2013-10-13",
          "lot_number": "UNKNOWN",
          "previous_ae_to_drug": "false",
          "previous_exposure_to_drug": "true",
          "route": "Oral",
          "used_according_to_label": "true"
        }
      ],
      "duration": {
        "unit": "Day",
        "value": "2"
      },
      "foreign_or_domestic": "Domestic",
      "health_assessment_prior_to_exposure": {
        "assessed_by": "Veterinarian",
        "condition": "Unknown"
      },
      "number_of_animals_affected": "1",
      "number_of_animals_treated": "1",
      "onset_date": "2013-10-13",
      "original_receive_date": "2013-10-15",
      "outcome": [
        {
          "medical_status": "Recovered/Normal",
          "number_of_animals_affected": "1"
        }
      ],
      "primary_reporter": "Animal Owner",
      "reaction": [
        {
          "veddra_term_code": "999",
          "veddra_term_name": "Inappetence",
          "veddra_version": "11"
        },
        {
          "veddra_term_code": "1018",
          "veddra_term_name": "Lethargy (see also Central nervous system depression in 'Neurological')",
          "veddra_version": "11"
        }
      ],
      "receiver": {
        "city": "Rockville",
        "country": "USA",
        "organization": "Food and Drug Administration Center for Veterinary Medicine",
        "postal_code": "20855",
        "state": "MD",
        "street_address": "7500 Standish Place (HFV-210) Room N403"
      },
      "report_id": "N141084",
      "secondary_reporter": null,
      "serious_ae": "false",
      "time_between_exposure_and_onset": null,
      "treated_for_ae": "false",
      "type_of_information": "Safety Issue",
      "unique_aer_id_number": "USA-USFDACVM-2013-US-051721"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/animalandveterinary/event/",
  "total_count": 985705
}

Search Complete Response Letters

Search the letters FDA sends when it will not approve an application, released in full text with the deficiencies each one cites. Filter by company, application number, letter type, approval status, date, or a phrase in the letter. These are the documents that say, in FDA's own words, why a drug was turned down. No API key required.

Inputs

Companycompanieslist
The company the letter was sent to.
Application numberapplication_numberslist
The application the letter concerns.
Letter typeletter_typestext
Complete response, refusal to file, tentative approval and so on. The list is read from the released letters.
Approval statusapproval_statusestext
Whether the application has since been approved. A letter is not always the end of the story.
Letter text containstext_containstext
A word or phrase from the letter itself, such as a kind of deficiency.
Letter dated fromletter_fromdate
Only include letters dated on or after this date.
Letter dated toletter_todate
Only include letters dated on or before this date.
Return the full textinclude_full_texttrue/false
Bring back the whole letter rather than the first thousand characters. A letter can run to tens of thousands of characters, so leave this off when listing many at once.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: letter_date (Date of the letter).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "transparency/crl",
  "dataset_label": "Complete Response Letters",
  "has_more": true,
  "last_updated": "2026-08-13",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "application_number": [
        "NDA 218679"
      ],
      "approval_status": "Unapproved",
      "approver_center": [],
      "approver_name": "Center for Drug Evaluation and Research",
      "approver_title": null,
      "company_address": "1000 Holcomb Woods Parkway, Suite 270\nRoswell, GA 30076",
      "company_name": "Saol International Development Limited",
      "company_rep": "Allison Lowry",
      "file_name": "CRL_NDA218679_20250827.pdf",
      "letter_date": "2025-08-27",
      "letter_type": "COMPLETE RESPONSE",
      "letter_year": "2025",
      "text": "ADMINISTRATION\n\ni Lk YN U.S. FOOD & DRUG\n\nNDA 218679\nCOMPLETE RESPONSE\n\nSaol International Development Limited\n% Saol Therapeutics Inc\n\nAttention: Allison Lo...",
      "text_length": 11114,
      "text_truncated": true
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/transparency/crl/",
  "total_count": 459
}

Search cosmetic adverse events

Search the adverse events reported to FDA about cosmetics: the reaction, the product blamed for it, whether the product was suspected or merely in use at the time, and how serious the outcome was. Filter by reaction, outcome, product or date. A report is one person's account, not a finding that the product caused the reaction. No API key required.

Inputs

Reactionreactionstext
The reactions reported, in MedDRA's own wording. The list is read from the cosmetic reports themselves.
Outcomeoutcomestext
How serious the outcome was.
Productproduct_nameslist
The name of the product named in the report.
Product roleproduct_roletext
Whether the product was suspected of causing the event or merely being used at the time.One of: Suspect (Suspected of causing the event), Concomitant (Used at the same time, not suspected).
Consumer genderconsumer_gendertext
Only include reports about consumers of this gender.One of: Female, Male, Not Available (Not recorded).
Received fromreceived_fromdate
Only include reports FDA first received on or after this date.
Received toreceived_todate
Only include reports FDA first received on or before this date.
Event happened fromevent_fromdate
Only include events that happened on or after this date.
Event happened toevent_todate
Only include events that happened on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: initial_received_date (Date FDA first received the report), latest_received_date (Date of the most recent version of the report), event_date (Date the event happened).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "cosmetic/event",
  "dataset_label": "Cosmetic adverse events",
  "has_more": true,
  "last_updated": "2025-08-31",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "event_date": "25-Mar-19",
      "initial_received_date": "2021-11-16",
      "latest_received_date": "2021-11-16",
      "legacy_report_id": "2022-CFS-004469",
      "meddra_version": "28",
      "outcomes": [
        "Other Serious or Important Medical Event"
      ],
      "patient": {
        "age": "52",
        "age_unit": "Year(s)",
        "gender": "Female"
      },
      "products": [
        {
          "product_name": "Johnsons Powder No Upc",
          "role": "Suspect"
        }
      ],
      "reactions": [
        "Ovarian Cancer Stage I"
      ],
      "report_number": "24504502",
      "report_type": "Pre-MoCRA",
      "report_version": "1"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/cosmetic/event/",
  "total_count": 85511
}

Search COVID-19 antibody test validations

Search the independent validation the National Cancer Institute ran on COVID-19 antibody tests for FDA: every sample put through every test, what the test said, what the truth panel said, and whether the two agreed. Filter by manufacturer, test, panel or agreement to compare how different tests performed on the same samples. No API key required.

Inputs

Manufacturermanufacturerstext
The company whose test was evaluated. The list is read from the validation data.
Testdevicestext
The specific test that was evaluated.
Panelpanelstext
Which sample panel the result came from.
Lot numberlot_numberslist
The lot of the test kit that was used.
IgG agreementigg_agreementtext
Whether the IgG result matched the truth panel. False negatives are the ones worth looking at.One or more of: TP (True positive), TN (True negative), FP (False positive), FN (False negative), NA (Not applicable).
IgM agreementigm_agreementtext
Whether the IgM result matched the truth panel.One or more of: TP (True positive), TN (True negative), FP (False positive), FN (False negative), NA (Not applicable).
Combined antibody agreementcombined_agreementtext
Whether the test's overall antibody call matched the truth panel.One or more of: TP (True positive), TN (True negative), FP (False positive), FN (False negative), NA (Not applicable).
Performed fromperformed_fromdate
Only include tests run on or after this date.
Performed toperformed_todate
Only include tests run on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: date_performed (Date the test was run).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/covid19serology",
  "dataset_label": "COVID-19 serology test validations",
  "has_more": true,
  "last_updated": "2022-08-22",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "panel:(\"Panel 1\" OR \"PANEL 1\" OR \"panel 1\")",
  "results": [
    {
      "antibody_agree": "TP",
      "antibody_truth": "Positive",
      "control": "Pass",
      "date_performed": "4/21/2020",
      "days_from_symptom": "29",
      "device": "DPP COVID-19 IgM/IgG System",
      "evaluation_id": "maf3265-a001",
      "group": "Positives",
      "iga_agree": "NA",
      "iga_result": "NA",
      "igg_agree": "TP",
      "igg_result": "Positive",
      "igg_titer": "1600",
      "igg_truth": "Positive",
      "igm_agree": "FN",
      "igm_iga_result": "NA",
      "igm_igg_result": "NA",
      "igm_result": "Negative",
      "igm_titer": "400",
      "igm_truth": "Positive",
      "lot_number": "204IG001Z",
      "manufacturer": "ChemBio",
      "pan_agree": "NA",
      "pan_result": "NA",
      "pan_titer": "1600",
      "panel": "Panel 1",
      "sample_id": "C0010",
      "sample_no": "6",
      "type": "Serum"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/covid19serology/",
  "total_count": 2860
}

Search COVID-19 research samples

Search the samples in FDA's COVID-19 miRNA and proteomics research: each donor's severity, sex and age, and, on request, the several thousand protein measurements taken from their sample. The measurements are left out by default because one record carries nearly three thousand of them. No API key required.

Inputs

Severityseveritiestext
How severe the donor's COVID-19 was.One or more of: Mild, Moderate, Severe.
Sexsextext
Only include samples from donors of this sex.One of: F (Female), M (Male).
Sample typesample_typestext
Whether the row is an actual donor sample, a pooled sample or a laboratory control.One or more of: Actual sample, Pooled sample, Internal control.
Sample IDsample_idslist
Specific samples to read, if you already have their IDs.
Return the measurementsinclude_measurementstrue/false
Bring back the per-protein readings as well. Off by default: one sample carries nearly three thousand of them, so ask for one sample at a time when you turn this on. The count is always reported either way.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "research/covidmirnaandproteomics",
  "dataset_label": "COVID-19 miRNA and proteomics",
  "has_more": true,
  "last_updated": "2026-08-19",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "age": 46,
      "proteins": null,
      "proteins_count": 2939,
      "qc_control": "Actual sample",
      "sample_id": "DP7",
      "severity": "Mild",
      "sex": "F"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/research/covidmirnaandproteomics/",
  "total_count": 416
}

Search device adverse events

Search MAUDE, FDA's database of medical device reports: the deaths, injuries and malfunctions reported for a device, with the manufacturer's narrative of what happened, what the patient's outcome was, and what remedial action was taken. Filter by event type, device, manufacturer, specialty and date, or search inside the narratives themselves. A report is not proof the device caused the harm. No API key required.

Inputs

Event typeevent_typestext
What was reported. Choose several to include any of them, or none for every type.One or more of: Death, Injury, Malfunction, Other, No answer provided.
Device brand namebrand_nameslist
The device's trade name, as the report gives it.
Device generic namegeneric_nameslist
What kind of device it is, in FDA's own words.
Manufacturermanufacturerslist
The company that made the device.
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
Device classdevice_classtext
FDA's risk class for the device. Class III is the highest risk and the one that needs premarket approval.One of: 1 (Class I (low to moderate risk)), 2 (Class II (moderate to high risk)), 3 (Class III (high risk)), U (Unclassified), N (Not classified), F (Humanitarian Device Exemption).
Medical specialtymedical_specialtiestext
The specialty FDA files the device under. The list is read from the classification database.
Reported byreport_sourcestext
Who filed the report. Manufacturer reports are the great majority.One or more of: Manufacturer report (Manufacturer), Voluntary report (Voluntary: a clinician or a member of the public), User facility report (User facility), Distributor report (Distributor).
Patient outcomepatient_outcomestext
What happened to the patient. The list is read from MAUDE, with how many reports record each outcome.
Where it happenedevent_locationstext
The kind of place the event took place in.
Narrative containsnarrative_containstext
A word or phrase from the reporter's account of what happened. This is the free text of the report, so it finds things no filter covers.
Received fromreceived_fromdate
Only include reports FDA received on or after this date.
Received toreceived_todate
Only include reports FDA received on or before this date.
Event happened fromevent_fromdate
Only include events that happened on or after this date.
Event happened toevent_todate
Only include events that happened on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: date_received (Date FDA received it), date_of_event (Date the event happened), date_report (Date of the report), date_manufacturer_received (Date the manufacturer was told).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/event",
  "dataset_label": "Device adverse events",
  "has_more": true,
  "last_updated": "2026-08-11",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "event_type.exact:\"Death\"",
  "results": [
    {
      "adverse_event_flag": "Y",
      "date_of_event": "2008-01-17",
      "date_received": "2008-02-14",
      "date_report": "2008-02-11",
      "device": [
        {
          "brand_name": "INVACARE OXYGEN CONCENTRATORS",
          "date_received": "2008-02-14",
          "date_removed_flag": "",
          "device_event_key": "",
          "device_sequence_number": "1",
          "generic_name": "868.5440",
          "implant_flag": "",
          "manufacturer_d_address_1": "*",
          "manufacturer_d_address_2": "",
          "manufacturer_d_city": "SANFORD",
          "manufacturer_d_name": "INVACARE RESPIRATORY PRODUCTS",
          "manufacturer_d_state": "FL"
        }
      ],
      "event_key": "",
      "event_location": "",
      "event_type": "Death",
      "manufacturer_city": "",
      "manufacturer_country": "",
      "manufacturer_name": "",
      "manufacturer_state": "",
      "mdr_report_key": "1000021",
      "mdr_text": [
        {
          "mdr_text_key": "21800035",
          "patient_sequence_number": "1",
          "text": "MFR RECEIVED A MEDWATCH REPORT COPY. FACILITY REPORTS THE CONSUMER HAD BEEN EDUCATED REGARDING THE DANGERS OF SMOKING WHILE ON HOME OXYGEN. PT REPORTEDLY ATT...",
          "text_type_code": "Additional Manufacturer Narrative"
        },
        {
          "mdr_text_key": "21609764",
          "patient_sequence_number": "1",
          "text": "THE MEDWATCH FORM ALLEGES THE CONSUMER WAS BURNED ON HIS HEAD, FACE, AND ARMS AS A RESULT OF SMOKING WHILE USING A HOME OXYGEN CONCENTRATOR. THE CONSUMER ALL...",
          "text_type_code": "Description of Event or Problem"
        }
      ],
      "number_devices_in_event": "",
      "number_patients_in_event": "",
      "patient": [
        {
          "date_received": "2008-02-14",
          "patient_age": "*",
          "patient_ethnicity": "",
          "patient_problems": [
            "Burn(s)",
            "Death"
          ],
          "patient_race": "",
          "patient_sequence_number": "1",
          "patient_sex": "",
          "patient_weight": "",
          "sequence_number_outcome": [
            "Death"
          ],
          "sequence_number_treatment": [
            ""
          ]
        }
      ],
      "product_problem_flag": "N",
      "product_problems": [
        "Explode",
        "Fire"
      ],
      "remedial_action": [
        ""
      ],
      "report_number": "1525712-2008-00010",
      "report_source_code": "Manufacturer report",
      "source_type": [
        "User facility"
      ]
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/event/",
  "total_count": 229717
}

Search device approvals (PMA)

Search premarket approvals: the highest-risk devices, which have to prove safety and effectiveness rather than equivalence, plus every supplement filed against an approval afterwards. Narrow to original approvals to see new devices only, or include supplements to follow how one device has changed since. No API key required.

Inputs

PMA numberpma_numberslist
The approval's own number, if you already have it.
Trade nametrade_nameslist
The device's brand name.
Generic namegeneric_nameslist
What kind of device it is, in FDA's own words.
Applicantapplicantslist
The company that holds the approval.
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
Decisiondecision_codestext
What FDA decided. The list is read from the approval data, with how many decisions of each kind.
Supplement typesupplement_typestext
Which review track a supplement took. Only supplements carry one.
Advisory committeeadvisory_committeestext
The FDA review panel that handled the application.
Device classdevice_classtext
FDA's risk class for the device. Class III is the highest risk and the one that needs premarket approval.One of: 1 (Class I (low to moderate risk)), 2 (Class II (moderate to high risk)), 3 (Class III (high risk)), U (Unclassified), N (Not classified), F (Humanitarian Device Exemption).
Only original approvalsoriginal_applications_onlytrue/false
Leave out the supplements. Supplements outnumber originals roughly forty to one, so this is usually what 'new approvals' means.
Only expedited reviewsexpedited_onlytrue/false
Narrow to applications FDA gave an expedited review.
Decided fromdecided_fromdate
Only include approvals decided on or after this date.
Decided todecided_todate
Only include approvals decided on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: decision_date (Decision date), date_received (Date FDA received it), fed_reg_notice_date (Federal Register notice date).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/pma",
  "dataset_label": "Device approvals (PMA)",
  "has_more": true,
  "last_updated": "2026-08-10",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "decision_date:[2024-01-01 TO *]",
  "results": [
    {
      "advisory_committee": "CV",
      "advisory_committee_description": "Cardiovascular",
      "ao_statement": "approval for minor labeling changes, removal of paper IFU, and minor dimensional changes to sterile pouches",
      "applicant": "Boston Scientific",
      "approval_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P960004",
      "city": "St Paul",
      "date_received": "2026-02-04",
      "decision_code": "APPR",
      "decision_date": "2026-04-10",
      "docket_number": "",
      "expedited_review_flag": "N",
      "fed_reg_notice_date": null,
      "generic_name": "Drug eluting permanent right ventricular (RV) or right atrial (RA) pacemaker electrodes",
      "openfda": {
        "device_class": "3",
        "device_class_label": "Class III (high risk)",
        "device_name": "Drug Eluting Permanent Right Ventricular (Rv) Or Right Atrial (Ra) Pacemaker Electrodes",
        "fei_number": [
          "3008159616",
          "3004369318"
        ],
        "medical_specialty_description": "Unknown",
        "registration_number": [
          "3008159616",
          "9610139"
        ],
        "regulation_number": ""
      },
      "pma_number": "P960004",
      "product_code": "NVN",
      "state": "MN",
      "supplement_number": "S114",
      "supplement_reason": "Labeling Change - Indications/instructions/shelf life/tradename",
      "supplement_type": "Real-Time Process",
      "trade_name": "Straight Lead Stylets Limber Models 6033, 6034; Straight Lead Stylets Firm Models 6036, 6037; J Shaped Lead Stylets Limb",
      "zip": "55112"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/pma/",
  "total_count": 5888
}

Search device classifications

Search FDA's device classification database: what each three-letter product code means, which risk class it is in, which regulation governs it, whether it is implantable or life-sustaining, and what kind of premarket submission it needs. Start here when you have a kind of device and need the product code the other device actions filter by. No API key required.

Inputs

Device namedevice_nameslist
FDA's own name for the kind of device.
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
Device classdevice_classtext
FDA's risk class for the device. Class III is the highest risk and the one that needs premarket approval.One of: 1 (Class I (low to moderate risk)), 2 (Class II (moderate to high risk)), 3 (Class III (high risk)), U (Unclassified), N (Not classified), F (Humanitarian Device Exemption).
Medical specialtymedical_specialtiestext
The specialty the device belongs to. The list is read from the classification database itself.
Regulation numberregulation_numberslist
The CFR regulation that governs the device, such as 876.1500.
Premarket submission neededsubmission_typetext
Which route a new device of this kind has to take to market.One of: 1 (510(k)), 2 (Premarket approval (PMA)), 3 (Contact FDA's Office of Device Evaluation), 4 (510(k) exempt).
Only implantable devicesimplantable_onlytrue/false
Narrow to devices meant to be implanted in the body.
Only life-sustaining deviceslife_sustaining_onlytrue/false
Narrow to devices used to sustain or support life.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/classification",
  "dataset_label": "Device classifications",
  "has_more": true,
  "last_updated": "2026-08-10",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "product_code:\"LRO\"",
  "results": [
    {
      "definition": "This product code has been established in accordance with the may 20, 1997, guidance entitled, convenience kits interim regulatory guidance, found at www.Fda...",
      "device_class": "2",
      "device_class_label": "Class II (moderate to high risk)",
      "device_name": "General Surgery Tray",
      "gmp_exempt_flag": "N",
      "implant_flag": "N",
      "life_sustain_support_flag": "N",
      "medical_specialty": "SU",
      "medical_specialty_description": "General, Plastic Surgery",
      "openfda": {
        "fei_number": [
          "3008496560",
          "3006191977"
        ],
        "k_number": [
          "K212258",
          "K934028"
        ],
        "registration_number": [
          "3008496560",
          "3006191977"
        ]
      },
      "product_code": "LRO",
      "regulation_number": "878.4370",
      "regulation_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?FR=878.4370",
      "review_panel": "SU",
      "submission_type_id": "7",
      "submission_type_id_label": null,
      "summary_malfunction_reporting": "Eligible",
      "third_party_flag": "N"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/classification/",
  "total_count": 1
}

Search device clearances (510(k))

Search 510(k) premarket notifications: the devices FDA has cleared for market because they are substantially equivalent to one already sold. Filter by applicant, device, product code, decision, clearance type, advisory committee or decision date. This is the route most devices reach the market by, so it is the action for tracking a competitor's clearances. No API key required.

Inputs

510(k) numberk_numberslist
The clearance's own number, if you already have it.
Device namedevice_nameslist
The name the applicant gave the device.
Applicantapplicantslist
The company that submitted the 510(k).
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
Decisiondecision_codestext
What FDA decided. The list is read from the clearance data, with how many decisions of each kind.
Clearance typeclearance_typestext
Which 510(k) pathway was used. Traditional is the ordinary one.
Advisory committeeadvisory_committeestext
The FDA review panel that handled the submission.
Applicant statestatestext
The state the applicant is based in.
Applicant countrycountriestext
The country the applicant is based in.
Device classdevice_classtext
FDA's risk class for the device. Class III is the highest risk and the one that needs premarket approval.One of: 1 (Class I (low to moderate risk)), 2 (Class II (moderate to high risk)), 3 (Class III (high risk)), U (Unclassified), N (Not classified), F (Humanitarian Device Exemption).
Only expedited reviewsexpedited_onlytrue/false
Narrow to submissions FDA gave an expedited review.
Decided fromdecided_fromdate
Only include clearances decided on or after this date.
Decided todecided_todate
Only include clearances decided on or before this date.
Received fromreceived_fromdate
Only include submissions FDA received on or after this date.
Received toreceived_todate
Only include submissions FDA received on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: decision_date (Decision date), date_received (Date FDA received it).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/510k",
  "dataset_label": "Device clearances (510(k))",
  "has_more": true,
  "last_updated": "2026-08-10",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "decision_date:[2024-01-01 TO 2024-02-01]",
  "results": [
    {
      "address_1": "120 S. Sierra Ave., Suite 100",
      "advisory_committee": "NE",
      "advisory_committee_description": "Neurology",
      "applicant": "ClearPoint Neuro, Inc.",
      "city": "Solana Beach",
      "clearance_type": "Traditional",
      "clearance_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233144",
      "contact": "Brennan  Sullivan",
      "country_code": "US",
      "date_received": "2023-09-27",
      "decision_code": "SESE",
      "decision_date": "2024-01-12",
      "decision_description": "Substantially Equivalent",
      "device_name": "ClearPoint Bone Screw Fiducials",
      "expedited_review_flag": "",
      "k_number": "K233144",
      "openfda": {
        "device_class": "2",
        "device_class_label": "Class II (moderate to high risk)",
        "device_name": "Neurological Stereotaxic Instrument",
        "fei_number": [
          "3006405073",
          "3017004815"
        ],
        "medical_specialty_description": "Neurology",
        "registration_number": [
          "3006405073",
          "3017004815"
        ],
        "regulation_number": "882.4560"
      },
      "postal_code": "92075",
      "product_code": "HAW",
      "state": "CA",
      "statement_or_summary": "Summary",
      "third_party_flag": "N"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/510k/",
  "total_count": 223
}

Search device establishment registrations

Search every establishment registered with FDA to make, repack, relabel or import a medical device, and the devices each one lists. Filter by name, registration or FEI number, establishment type, country, state or product code. This is how to find who makes a given device, or everything a given site is registered to make. No API key required.

Inputs

Establishment nameestablishment_nameslist
The registered name of the site.
Device nameproprietary_nameslist
A trade name the establishment lists a device under.
Registration numberregistration_numberslist
FDA's registration number for the establishment.
FEI numberfei_numberslist
FDA's Facility Establishment Identifier for the site.
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
510(k) numberk_numberslist
Narrow to listings tied to this clearance.
PMA numberpma_numberslist
Narrow to listings tied to this approval.
Establishment typeestablishment_typestext
What the site is registered to do: manufacture, repack, relabel, import, and so on. The list is read from the registration data.
Countrycountriestext
The two-letter country code the site is in.
Statestatestext
The state the site is in, for US establishments.
Registration statusregistration_statustext
Whether the registration is active.One of: 1 (Active), 5 (Active, awaiting a registration number).
Device classdevice_classtext
FDA's risk class for the device. Class III is the highest risk and the one that needs premarket approval.One of: 1 (Class I (low to moderate risk)), 2 (Class II (moderate to high risk)), 3 (Class III (high risk)), U (Unclassified), N (Not classified), F (Humanitarian Device Exemption).
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: products.created_date (Date the device listing was created).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/registrationlisting",
  "dataset_label": "Device establishment registrations",
  "has_more": true,
  "last_updated": "2026-08-10",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "registration.iso_country_code:\"US\"",
  "results": [
    {
      "establishment_type": [
        "Sterilize Medical Device for Another Party (Contract Sterilizer)"
      ],
      "k_number": "",
      "pma_number": "",
      "products": [
        {
          "created_date": "2023-08-15",
          "exempt": "",
          "openfda": {
            "device_class": "2",
            "device_name": "Bone Cement, Antibiotic",
            "medical_specialty_description": "Orthopedic",
            "regulation_number": "888.3027"
          },
          "owner_operator_number": "1527821",
          "product_code": "MBB"
        },
        {
          "created_date": "2023-08-15",
          "exempt": "",
          "openfda": {
            "device_class": "2",
            "device_name": "Prosthesis, Hip, Hemi-, Femoral, Metal",
            "medical_specialty_description": "Orthopedic",
            "regulation_number": "888.3360"
          },
          "owner_operator_number": "1527821",
          "product_code": "KWL"
        }
      ],
      "proprietary_name": [
        "Zimmer (LN,LS) - StageOne Select Hip Cement Spacer Molds"
      ],
      "registration": {
        "address_line_1": "2500 Commerce Dr",
        "address_line_2": "",
        "city": "Libertyville",
        "fei_number": "3003015552",
        "initial_importer_flag": "N",
        "iso_country_code": "US",
        "name": "Isomedix Operations, Inc.",
        "reg_expiry_date_year": "2026",
        "registration_number": "1424263",
        "state_code": "IL",
        "status_code": "1",
        "status_code_label": "Active"
      }
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/registrationlisting/",
  "total_count": 155904
}

Search device identifiers (UDI)

Search the Global UDI Database: the catalogue entry behind every device identifier, with the brand and model, the company, the sizes it comes in, whether it is sterile, single-use or prescription-only, its MRI safety rating, its storage conditions and the premarket submissions behind it. This is how to turn a barcode on a device into everything FDA knows about it. No API key required.

Inputs

Device identifier (DI)device_identifierslist
The identifier from the device's barcode. Both the primary and any package identifiers are searched.
Brand namebrand_nameslist
The device's trade name.
Companycompanieslist
The labeler that publishes the UDI record.
Catalog numbercatalog_numberslist
The company's own catalogue number for the device.
Version or model numbermodel_numberslist
The version or model the record is for.
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
GMDN termgmdn_termslist
The Global Medical Device Nomenclature term for the kind of device, which is how UDI records are categorised internationally.
Distribution statusdistribution_statustext
Whether the device is still commercially distributed.One of: In Commercial Distribution, Not in Commercial Distribution (No longer in commercial distribution).
MRI safetymri_safetytext
The device's MRI safety rating. Most records say nothing about MRI safety at all.One or more of: MR Safe, MR Conditional, MR Unsafe, Labeling does not contain MRI Safety Information (The labeling says nothing about MRI safety).
Issuing agencyissuing_agenciestext
Which agency issued the identifier: GS1, HIBCC, ICCBBA or NDC.
Only devices that areattributestext
The yes/no properties the device must have. Choosing several narrows to devices that carry all of them.One or more of: sterilization.is_sterile (Sterile), sterilization.is_sterilization_prior_use (Needs sterilizing before use), is_single_use (Single use), is_rx (Prescription only), is_otc (Over the counter), is_kit (Sold as a kit), is_combination_product (A combination product), is_hct_p (A human cell or tissue product), is_direct_marking_exempt (Exempt from direct marking), is_pm_exempt (Exempt from premarket submission), and 3 more.
Published frompublished_fromdate
Only include records published on or after this date.
Published topublished_todate
Only include records published on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: publish_date (Date the record was published), commercial_distribution_end_date (Date distribution ended), public_version_date (Date of this public version).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/udi",
  "dataset_label": "Unique Device Identifiers",
  "has_more": true,
  "last_updated": "2026-08-03",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "brand_name:(\"Bard\" OR \"BARD\" OR \"bard\")",
  "results": [
    {
      "brand_name": "Bard\u00ae Dimension\u00ae Stone Basket",
      "catalog_number": "043313",
      "commercial_distribution_end_date": null,
      "commercial_distribution_status": "In Commercial Distribution",
      "company_name": "C. R. Bard, Inc.",
      "customer_contacts": [
        {
          "email": "medical.services@crbard.com",
          "phone": "+1(800)526-4455"
        }
      ],
      "device_count_in_base_package": "1",
      "device_description": "Bard\u00ae Dimension\u00ae Stone Basket",
      "device_sizes": [
        {
          "type": "Length",
          "unit": "Centimeter",
          "value": "115"
        },
        {
          "type": "Catheter Gauge",
          "unit": "French",
          "value": "3"
        }
      ],
      "gmdn_terms": [
        {
          "code": "46452",
          "code_status": "Active",
          "definition": "A flexible, manual instrument designed to trap/retrieve biliary and/or urinary stones (gallbladder and/or renal/ureteric calculi) from the body during an ope...",
          "implantable": "false",
          "name": "Biliary/urinary stone retrieval basket, single-use"
        }
      ],
      "has_expiration_date": "true",
      "has_lot_or_batch_number": "true",
      "has_serial_number": "false",
      "identifiers": [
        {
          "id": "00801741066849",
          "issuing_agency": "GS1",
          "type": "Primary"
        }
      ],
      "is_combination_product": "false",
      "is_hct_p": "false",
      "is_kit": "false",
      "is_otc": "false",
      "is_rx": "true",
      "is_single_use": "true",
      "labeler_duns_number": "016898496",
      "mri_safety": "Labeling does not contain MRI Safety Information",
      "premarket_submissions": null,
      "product_codes": [
        {
          "code": "FFL",
          "name": "DISLODGER, STONE, BASKET, URETERAL, METAL",
          "openfda": {
            "device_class": "2",
            "device_name": "Dislodger, Stone, Basket, Ureteral, Metal",
            "medical_specialty_description": "Gastroenterology, Urology",
            "regulation_number": "876.4680"
          }
        }
      ],
      "public_device_record_key": "60b60a4f-09c1-4b27-87c7-6343587a1b0f",
      "public_version_date": "2020-11-06",
      "public_version_number": "4",
      "public_version_status": "Update",
      "publish_date": "2016-09-02",
      "record_key": null,
      "record_status": "Published",
      "sterilization": {
        "is_sterile": "true",
        "is_sterilization_prior_use": "false"
      },
      "storage": null,
      "version_or_model_number": "043313"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/udi/",
  "total_count": 1412
}

Search device recall enforcement reports

Search device recalls in the same enforcement format FDA uses for drugs and food, so they carry the Class I / II / III hazard classification and can be filtered the same way. This is the action for 'every Class I recall this month, whatever kind of product'. Use 'Search device recalls' for the root cause the device centre assigned. No API key required.

Inputs

Recall classclassificationstext
FDA's hazard classification. Class I is the serious one: a product that could cause serious injury or death. Choose several to include any of them, or none to include every class.One or more of: Class I (Class I: could cause serious injury or death), Class II (Class II: could cause temporary or reversible harm), Class III (Class III: unlikely to cause harm), Not Yet Classified.
Recall statusstatusestext
Where the recall has got to. Ongoing means product is still being recovered; terminated means FDA considers it finished.One or more of: Ongoing, Completed, Terminated.
Recalling firmrecalling_firmslist
The company that issued the recall. Part of the name is enough, and the capitalisation does not matter.
Who started the recallvoluntary_mandatedtext
Whether the firm recalled the product itself or FDA required it. Nearly all recalls are voluntary.One of: Voluntary: Firm Initiated (Voluntary: the firm started it), FDA Mandated (Mandated by FDA).
Recall numberrecall_numberslist
FDA's own identifier for the recall, if you already have it.
Product description containsproduct_description_containstext
A word or phrase from the description of the recalled product, such as a brand name or a strength.
Reason containsreason_containstext
A word or phrase from FDA's stated reason for the recall, such as 'contamination', 'mislabeling' or 'sterility'.
Reported fromreported_fromdate
Only include recalls FDA reported on or after this date.
Reported toreported_todate
Only include recalls FDA reported on or before this date.
Started frominitiated_fromdate
Only include recalls the firm started on or after this date.
Started toinitiated_todate
Only include recalls the firm started on or before this date.
Statestatestext
The recalling firm's state. The list is read from the recall data.
Countrycountrieslist
The recalling firm's country.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: report_date (Date the recall was reported), recall_initiation_date (Date the recall was started), center_classification_date (Date FDA classified the recall), termination_date (Date the recall was terminated).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/enforcement",
  "dataset_label": "Device recall enforcement reports",
  "has_more": true,
  "last_updated": "2026-08-12",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "classification.exact:\"Class II\"",
  "results": [
    {
      "center_classification_date": "2019-05-23",
      "city": "Winterthur",
      "classification": "Class II",
      "code_info": "All items marked with \"Normed\" are affected",
      "country": "Switzerland",
      "distribution_pattern": "The products were distributed to the following US states:  AL, AR, AZ, CA, CO, FL, GA, HI, IA, IL, IN, KS, KY, LA, MA, MD, ME, MI, MN, MO, MT, NC, ND, NE, NH...",
      "event_id": "82642",
      "initial_firm_notification": "Letter",
      "openfda": {},
      "product_code": null,
      "product_description": "V-TEK\", IVP step drill 2.5-3.9x124mm, 16mm stop, contra-angle, Item Number 502015637",
      "product_quantity": "N/A",
      "product_type": "Devices",
      "reason_for_recall": "An investigation identified that the products were possibly manufactured from a different material than defined in the applicable specifications.",
      "recall_initiation_date": "2019-04-08",
      "recall_number": "Z-1448-2019",
      "recalling_firm": "Zimmer GmbH",
      "report_date": "2019-05-29",
      "state": "N/A",
      "status": "Terminated",
      "termination_date": "2020-05-11",
      "voluntary_mandated": "Voluntary: Firm initiated"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/enforcement/",
  "total_count": 35105
}

Search device recalls

Search device recalls as FDA's device centre files them, with the root cause it assigned (device design, software, process control, packaging) and the correcting action the firm took. Filter by firm, product code, status, root cause or date. Use 'Search device recall enforcement reports' instead when you want the hazard classification. No API key required.

Inputs

Recall numberrecall_numberslist
The device centre's own recall number.
Recalling firmrecalling_firmslist
The company that issued the recall. Part of the name is enough, and the capitalisation does not matter.
Product codeproduct_codeslist
FDA's three-letter code for the kind of device, such as LRO or DXN. Find one with 'Search device classifications'.
510(k) numberk_numberslist
Narrow to recalls of a device cleared under this 510(k).
Recall statusstatusestext
Where the recall has got to. The list is read from the recall data.
Root causeroot_causestext
The cause FDA assigned. This is the field to group by when asking what actually goes wrong with devices.
Device classdevice_classtext
FDA's risk class for the device. Class III is the highest risk and the one that needs premarket approval.One of: 1 (Class I (low to moderate risk)), 2 (Class II (moderate to high risk)), 3 (Class III (high risk)), U (Unclassified), N (Not classified), F (Humanitarian Device Exemption).
Product description containsproduct_description_containstext
A word or phrase from the description of the recalled product, such as a brand name or a strength.
Reason containsreason_containstext
A word or phrase from FDA's stated reason for the recall, such as 'contamination', 'mislabeling' or 'sterility'.
Started frominitiated_fromdate
Only include recalls the firm started on or after this date.
Started toinitiated_todate
Only include recalls the firm started on or before this date.
Posted fromposted_fromdate
Only include recalls FDA posted on or after this date.
Posted toposted_todate
Only include recalls FDA posted on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: event_date_initiated (Date the recall was started), event_date_posted (Date the recall was posted), event_date_created (Date the record was created), event_date_terminated (Date the recall was terminated).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "device/recall",
  "dataset_label": "Device recalls",
  "has_more": true,
  "last_updated": "2026-08-20",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "event_date_initiated:[2024-01-01 TO *]",
  "results": [
    {
      "action": "On 7/31/24, Safety Alert notices were sent to customers, healthcare professionals, distributors who were told the following:\n\n1) Always pay attention to aler...",
      "additional_info_contact": "Medtronic 24-Hr Technical Support\n800-646-4633",
      "cfres_id": "209491",
      "city": "Northridge",
      "code_info": "REF/UDI-DI(GTIN): \n\nMMT-1714/00643169782396, 00763000253059;\n\nMMT-1715/00643169873841, 00763000190446, 00643169752726, 643169873834, 00763000317591, 00763000...",
      "country": null,
      "distribution_pattern": "US: CT, MI, PA, WA, IA, NY, ND, AZ, TX, OH, NC, AL, MN, IN, NJ, KY, UT, CA, FL, VA, MS, NM, NV, TN, GA, MA, NH, OK, VT, IL, ME, SC, LA, WY, RI, SD, KS, WI, M...",
      "event_date_created": null,
      "event_date_initiated": "2024-07-31",
      "event_date_posted": "2024-10-03",
      "event_date_terminated": null,
      "firm_fei_number": "3003166194",
      "k_numbers": null,
      "openfda": {
        "device_class": "3",
        "device_class_label": "Class III (high risk)",
        "device_name": "Automated Insulin Dosing , Threshold Suspend",
        "fei_number": [
          "3016540876",
          "3003007876"
        ],
        "medical_specialty_description": "Unknown",
        "pma_number": [
          "P180008",
          "P120010"
        ],
        "registration_number": [
          "3016540876",
          "3009171251"
        ],
        "regulation_number": ""
      },
      "pma_numbers": [
        "P150001"
      ],
      "postal_code": "91325-1219",
      "product_code": "OZO",
      "product_description": "MiniMed 630G Insulin Pump, REF: MMT-1515, MMT-1714, MMT-1715, MMT-1754, MMT-1755;\nMiniMed 700G Insulin Pump, REF: MMT-1800, MMT-1801, MMT-1805, MMT-1850, MMT...",
      "product_quantity": "24,595",
      "product_res_number": "Z-0001-2025",
      "reason_for_recall": "Insulin pumps that have been dropped, bumped, or experienced physical impact may have damage to internal electrical components, which may cause reduced pump ...",
      "recall_status": "Open, Classified",
      "recalling_firm": "Medtronic MiniMed, Inc.",
      "res_event_number": "95121",
      "root_cause_description": "Device Design",
      "state": "CA"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/device/recall/",
  "total_count": 7677
}

Search drug adverse events

Search the 20 million adverse event and medication error reports in FDA's FAERS database: what reaction was reported, which drug was suspected, the patient's age and sex, whether the outcome was serious, and who reported it. Filter by reaction, drug, country, patient group and date, and every code the report carries comes back with its meaning beside it. A report is one person's account, not proof the drug caused the reaction. No API key required.

Inputs

Reactionreactionstext
The reactions reported, in MedDRA's own wording. Choose several to find reports mentioning any of them. The list is read from FAERS, with how many reports use each term.
Drugdrug_nameslist
The drugs to look for, by brand name, generic name or active substance. All three are searched, so either kind of name works, and capitalisation does not matter.
Drug classpharmacologic_classeslist
FDA's established pharmacologic class, for asking about a whole family of drugs at once rather than one product.
Patient sexpatient_sextext
Only include reports about patients of this sex.One of: 1 (Male), 2 (Female), 0 (Unknown).
Patient age grouppatient_age_grouptext
Only include reports about patients in this age band. Many reports leave it blank, so this narrows harder than it looks.One of: 1 (Neonate (under 1 month)), 2 (Infant (1 month to 2 years)), 3 (Child (2 to 12 years)), 4 (Adolescent (12 to 18 years)), 5 (Adult (18 to 65 years)), 6 (Elderly (over 65 years)).
Seriousnessseriousnesstext
FAERS' own overall flag: a serious report is one where the event caused death, a life-threatening condition, hospitalization, disability, a congenital anomaly or another serious outcome.One of: any (Any (no filter)), serious (Serious outcomes only), non_serious (Non-serious outcomes only).
Specific serious outcomeserious_outcomestext
Narrow to reports recording one of these outcomes in particular. Choosing any of them already means the report was serious.One or more of: seriousnessdeath (Death), seriousnesslifethreatening (Life threatening), seriousnesshospitalization (Hospitalization), seriousnessdisabling (Disability), seriousnesscongenitalanomali (Congenital anomaly), seriousnessother (Other serious outcome).
Country the event happened incountrytext
Only include reports of events that occurred in this country. The list is read from FAERS, with how many reports come from each.
Reported byreporter_typetext
Who sent the report to the manufacturer or to FDA.One of: 1 (Physician), 2 (Pharmacist), 3 (Other health professional), 4 (Lawyer), 5 (Consumer or non-health professional).
Report typereport_typetext
Spontaneous reports are the ordinary case: someone reported the event of their own accord rather than as part of a study.One of: 1 (Spontaneous), 2 (Report from a study), 3 (Other), 4 (Not available to the sender).
Received fromreceived_fromdate
Only include reports FDA received on or after this date.
Received toreceived_todate
Only include reports FDA received on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: receivedate (Date FDA first received the report), receiptdate (Date of the most recent version of the report), transmissiondate (Date FDA published the report).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/event",
  "dataset_label": "Drug adverse events",
  "has_more": true,
  "last_updated": "2026-07-30",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "patient.reaction.reactionmeddrapt.exact:\"Nausea\"",
  "results": [
    {
      "companynumb": "US-GILEAD-2012-0061187",
      "occurcountry": "US",
      "patient": {
        "drug": [
          {
            "drugauthorizationnumb": "022081",
            "drugcharacterization": "1",
            "drugcharacterization_label": "Suspect",
            "medicinalproduct": "LETAIRIS"
          }
        ],
        "patientagegroup": "5",
        "patientagegroup_label": "Adult (18 to 65 years)",
        "patientonsetage": "49",
        "patientonsetageunit": "801",
        "patientsex": "1",
        "patientsex_label": "Male",
        "reaction": [
          {
            "reactionmeddrapt": "Nausea",
            "reactionmeddraversionpt": "18.1",
            "reactionoutcome": "6",
            "reactionoutcome_label": "Unknown"
          }
        ]
      },
      "primarysource": {
        "qualification": "5",
        "qualification_label": "Consumer or non-health professional",
        "reportercountry": "US"
      },
      "primarysourcecountry": "US",
      "receiptdate": "2015-08-12",
      "receivedate": "2014-03-12",
      "receiver": {
        "receiverorganization": "FDA",
        "receivertype": "6"
      },
      "reporttype": "1",
      "reporttype_label": "Spontaneous",
      "safetyreportid": "10003372",
      "safetyreportversion": "2",
      "sender": {
        "senderorganization": "FDA-Public Use",
        "sendertype": "2"
      },
      "serious": "2",
      "serious_label": "Not serious",
      "seriousnessdeath": null,
      "seriousnesshospitalization": null,
      "transmissiondate": "2015-11-25"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/event/",
  "total_count": 778542
}

Search drug approvals

Search Drugs@FDA: every drug application FDA has acted on, brand-name (NDA), generic (ANDA) and biologic (BLA), with the products approved under it and the full history of submissions and supplements. This is where to look up who sponsors a drug, when it was approved, and what has been filed against the application since. No API key required.

Inputs

Application numberapplication_numberslist
FDA application numbers, including the prefix, if you already have them.
Application typeapplication_typetext
Narrow to one kind of application. FDA writes the kind into the number itself, so this matches on the number's prefix.One of: NDA (NDA: a brand-name drug), ANDA (ANDA: a generic drug), BLA (BLA: a biologic).
Sponsorsponsorslist
The company that holds the application.
Brand namebrand_nameslist
The trade name of a product under the application.
Generic namegeneric_nameslist
The non-proprietary name of the drug.
Active ingredientactive_ingredientslist
An ingredient a product under the application contains.
Marketing statusmarketing_statusestext
Whether the products are prescription, over-the-counter or discontinued. The list is read from Drugs@FDA.
Route of administrationroutestext
How the approved products are taken.
Dosage formdosage_formstext
The form the approved products take.
Submission typesubmission_typetext
ORIG is the original application; SUPPL is a supplement filed against it afterwards.
Submission statussubmission_statustext
AP is approved; TA is tentatively approved.
Review priorityreview_prioritytext
Whether FDA gave the submission a priority review rather than a standard one.
Decided fromdecided_fromdate
Only include applications with a submission decided on or after this date.
Decided todecided_todate
Only include applications with a submission decided on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: submissions.submission_status_date (Date of the submission decision).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/drugsfda",
  "dataset_label": "Drug approvals (Drugs@FDA)",
  "has_more": true,
  "last_updated": "2026-08-21",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "application_number:\"NDA021436\"",
  "results": [
    {
      "application_number": "NDA021436",
      "drugs_at_fda_url": "https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=021436",
      "openfda": {
        "application_number": [
          "NDA021436"
        ],
        "brand_name": [
          "ABILIFY"
        ],
        "generic_name": [
          "ARIPIPRAZOLE"
        ],
        "manufacturer_name": [
          "Otsuka America Pharmaceutical, Inc."
        ],
        "package_ndc": [
          "59148-006-13",
          "59148-006-92"
        ],
        "product_ndc": [
          "59148-006",
          "59148-007"
        ],
        "product_type": [
          "HUMAN PRESCRIPTION DRUG"
        ],
        "route": [
          "ORAL"
        ],
        "rxcui": [
          "349490",
          "349545"
        ],
        "spl_id": [
          "1b189d15-798d-4bed-a93d-a543ed7abd81"
        ],
        "spl_set_id": [
          "c040bd1d-45b7-49f2-93ea-aed7220b30ac"
        ],
        "substance_name": [
          "ARIPIPRAZOLE"
        ]
      },
      "products": [
        {
          "active_ingredients": [
            {
              "name": "ARIPIPRAZOLE",
              "strength": "2MG"
            }
          ],
          "brand_name": "ABILIFY",
          "dosage_form": "TABLET",
          "marketing_status": "Prescription",
          "product_number": "006",
          "reference_drug": "Yes",
          "reference_standard": "No",
          "route": "ORAL",
          "te_code": "AB"
        },
        {
          "active_ingredients": [
            {
              "name": "ARIPIPRAZOLE",
              "strength": "30MG"
            }
          ],
          "brand_name": "ABILIFY",
          "dosage_form": "TABLET",
          "marketing_status": "Prescription",
          "product_number": "004",
          "reference_drug": "Yes",
          "reference_standard": "No",
          "route": "ORAL",
          "te_code": "AB"
        }
      ],
      "sponsor_name": "OTSUKA",
      "submissions": [
        {
          "application_docs": [
            {
              "date": "2006-09-20",
              "id": "36917",
              "type": "Label",
              "url": "http://www.accessdata.fda.gov/drugsatfda_docs/label/2006/021436s014,021713s009lbl.pdf"
            },
            {
              "date": "2006-09-20",
              "id": "5362",
              "type": "Letter",
              "url": "http://www.accessdata.fda.gov/drugsatfda_docs/appletter/2006/021436s014, 021713s009ltr.pdf"
            }
          ],
          "review_priority": "STANDARD",
          "submission_class_code": "LABELING",
          "submission_class_code_description": "Labeling",
          "submission_number": "14",
          "submission_status": "AP",
          "submission_status_date": "2006-09-18",
          "submission_type": "SUPPL"
        },
        {
          "application_docs": [
            {
              "date": "2004-10-04",
              "id": "15455",
              "type": "Label",
              "url": "http://www.accessdata.fda.gov/drugsatfda_docs/label/2004/21436s002lbl.pdf"
            },
            {
              "date": "2013-05-10",
              "id": "21653",
              "type": "Review",
              "url": "http://www.accessdata.fda.gov/drugsatfda_docs/nda/2004/021436Orig1s002.pdf"
            }
          ],
          "review_priority": "STANDARD",
          "submission_class_code": "EFFICACY",
          "submission_class_code_description": "Efficacy",
          "submission_number": "2",
          "submission_status": "AP",
          "submission_status_date": "2004-09-29",
          "submission_type": "SUPPL"
        }
      ]
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/drugsfda/",
  "total_count": 1
}

Search drug labels

Search the prescribing information published for every marketed drug: the boxed warning, indications, dosage, contraindications, adverse reactions, interactions and the rest of the package insert. Choose which sections to return so a step brings back the boxed warning rather than the whole insert, and search inside one section to find, say, every label whose warnings mention a particular risk. No API key required.

Inputs

Brand namebrand_nameslist
The drug's trade name, as printed on the box.
Generic namegeneric_nameslist
The drug's non-proprietary name.
Labelermanufacturerslist
The company that publishes the label.
Active substancesubstanceslist
The active ingredient, by its FDA substance name.
Route of administrationroutestext
How the drug is taken. The list is read from the label data, with how many labels use each route.
Product typeproduct_typetext
Prescription, over-the-counter, or one of the biologic types.
Search inside this sectionsectiontext
Restrict the text search below to one section of the label, so 'lactose' finds labels whose ingredients list it rather than every mention anywhere.One of: boxed_warning (Boxed warning), indications_and_usage (Indications and usage), dosage_and_administration (Dosage and administration), dosage_forms_and_strengths (Dosage forms and strengths), contraindications, warnings, warnings_and_cautions (Warnings and cautions), adverse_reactions (Adverse reactions), drug_interactions (Drug interactions), use_in_specific_populations (Use in specific populations), and 23 more.
That section containssection_containstext
A word or phrase to find inside the section chosen above. Needs a section to be chosen.
Only labels with a boxed warninghas_boxed_warningtrue/false
A boxed warning is FDA's strongest, so this narrows to the drugs carrying one.
Effective fromeffective_fromdate
Only include labels effective on or after this date.
Effective toeffective_todate
Only include labels effective on or before this date.
Sections to returnsectionstext
Which parts of the label to bring back. A full label carries up to 84 sections and can run to a megabyte, so nothing but the identifying fields is returned until you choose. Every result also lists which sections it has.One or more of: boxed_warning (Boxed warning), indications_and_usage (Indications and usage), dosage_and_administration (Dosage and administration), dosage_forms_and_strengths (Dosage forms and strengths), contraindications, warnings, warnings_and_cautions (Warnings and cautions), adverse_reactions (Adverse reactions), drug_interactions (Drug interactions), use_in_specific_populations (Use in specific populations), and 23 more.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: effective_time (Label effective date).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/label",
  "dataset_label": "Drug product labels",
  "has_more": true,
  "last_updated": "2026-08-22",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "openfda.brand_name:(\"Tylenol\" OR \"TYLENOL\" OR \"tylenol\")",
  "results": [
    {
      "available_sections": [
        "active_ingredient",
        "ask_doctor"
      ],
      "dailymed_url": "https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=015a6179-bacb-452d-b594-4de628ddc11d",
      "effective_time": "2024-11-07",
      "id": "22d94fd9-9488-a812-e063-6394a90a7ffc",
      "indications_and_usage": [
        "Uses temporarily relieves minor aches and pains due to: the common cold headache backache minor pain of arthritis toothache muscular aches premenstrual and m..."
      ],
      "openfda": {
        "application_number": [
          "M013"
        ],
        "brand_name": [
          "TYLENOL Extra Strength"
        ],
        "generic_name": [
          "ACETAMINOPHEN"
        ],
        "manufacturer_name": [
          "Kenvue Brands LLC"
        ],
        "package_ndc": [
          "50580-590-01",
          "50580-590-02"
        ],
        "product_ndc": [
          "50580-590"
        ],
        "product_type": [
          "HUMAN OTC DRUG"
        ],
        "route": [
          "ORAL"
        ],
        "rxcui": [
          "198440",
          "209459"
        ],
        "spl_id": [
          "22d94fd9-9488-a812-e063-6394a90a7ffc"
        ],
        "spl_set_id": [
          "015a6179-bacb-452d-b594-4de628ddc11d"
        ],
        "substance_name": [
          "ACETAMINOPHEN"
        ]
      },
      "set_id": "015a6179-bacb-452d-b594-4de628ddc11d",
      "version": "11",
      "warnings": [
        "Warnings Liver warning This product contains acetaminophen. Severe liver damage may occur if you take more than 4,000 mg of acetaminophen in 24 hours with ot..."
      ]
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/label/",
  "total_count": 118
}

Search drug products (NDC directory)

Search the National Drug Code directory: every drug product listed with FDA, with its NDC, brand and generic names, labeler, dosage form, route, active ingredients and strengths, package sizes, DEA schedule and marketing dates. This is the action for turning an NDC into a product, or a product into every package it is sold in. No API key required.

Inputs

NDC codendc_codeslist
National Drug Codes to look up. Either the product code (0002-4462) or a package code (0002-4462-01) works. Both are searched.
Brand namebrand_nameslist
The product's trade name.
Generic namegeneric_nameslist
The product's non-proprietary name.
Labelerlabelerslist
The company whose name is on the package.
Active ingredientactive_ingredientslist
An ingredient the product must contain.
Dosage formdosage_formstext
Tablet, capsule, injection and so on. The list is read from the directory, with how many products use each form.
Route of administrationroutestext
How the product is taken.
Marketing categorymarketing_categorytext
Which regulatory route put the product on the market: NDA for a brand-name drug, ANDA for a generic, an OTC monograph for a shelf medicine.
Product typeproduct_typetext
Prescription, over-the-counter, or a bulk ingredient.
DEA scheduledea_scheduletext
Only include controlled substances in this schedule. Most products are not controlled and carry no schedule at all.One of: CI (Schedule I), CII (Schedule II), CIII (Schedule III), CIV (Schedule IV), CV (Schedule V).
Only products still marketedcurrently_marketedtrue/false
Leave out products whose marketing has ended. The directory keeps a product after it stops being sold, with an end date set.
Marketing started frommarketing_start_fromdate
Only include products first marketed on or after this date.
Marketing started tomarketing_start_todate
Only include products first marketed on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: marketing_start_date (Marketing start date), marketing_end_date (Marketing end date), listing_expiration_date (Listing expiration date).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/ndc",
  "dataset_label": "National Drug Code directory",
  "has_more": true,
  "last_updated": "2026-08-21",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "generic_name:(\"ibuprofen\" OR \"IBUPROFEN\" OR \"Ibuprofen\")",
  "results": [
    {
      "active_ingredients": [
        {
          "name": "IBUPROFEN",
          "strength": "200 mg/1"
        },
        {
          "name": "DIPHENHYDRAMINE CITRATE",
          "strength": "38 mg/1"
        }
      ],
      "application_number": null,
      "brand_name": null,
      "dailymed_url": null,
      "dea_schedule": null,
      "dea_schedule_label": null,
      "dosage_form": "TABLET, COATED",
      "finished": false,
      "generic_name": "ibuprofen, diphenhydramine citrate",
      "labeler_name": "L. Perrigo Company",
      "marketing_category": "DRUG FOR FURTHER PROCESSING",
      "marketing_end_date": null,
      "marketing_start_date": "2009-11-24",
      "openfda": {},
      "packaging": [
        {
          "description": "1 BAG in 1 DRUM (0113-4011-00)  / 155280 TABLET, COATED in 1 BAG",
          "marketing_start_date": "24-NOV-09",
          "package_ndc": "0113-4011-00"
        }
      ],
      "pharm_class": null,
      "product_id": "0113-4011_aa69b1b9-4993-4ea2-ab3d-e29c6a5eed8e",
      "product_ndc": "0113-4011",
      "product_type": "DRUG FOR FURTHER PROCESSING",
      "route": null,
      "spl_id": "aa69b1b9-4993-4ea2-ab3d-e29c6a5eed8e"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/ndc/",
  "total_count": 1487
}

Search drug recalls

Search FDA's drug recall enforcement reports: what was recalled, by whom, why, how much of it, where it was distributed, and how dangerous FDA judged it. Filter by hazard class, status, firm, state and date. Run it on a schedule with a date filter to be told about new Class I recalls as they are posted. No API key required.

Inputs

Recall classclassificationstext
FDA's hazard classification. Class I is the serious one: a product that could cause serious injury or death. Choose several to include any of them, or none to include every class.One or more of: Class I (Class I: could cause serious injury or death), Class II (Class II: could cause temporary or reversible harm), Class III (Class III: unlikely to cause harm), Not Yet Classified.
Recall statusstatusestext
Where the recall has got to. Ongoing means product is still being recovered; terminated means FDA considers it finished.One or more of: Ongoing, Completed, Terminated.
Recalling firmrecalling_firmslist
The company that issued the recall. Part of the name is enough, and the capitalisation does not matter.
Who started the recallvoluntary_mandatedtext
Whether the firm recalled the product itself or FDA required it. Nearly all recalls are voluntary.One of: Voluntary: Firm Initiated (Voluntary: the firm started it), FDA Mandated (Mandated by FDA).
Recall numberrecall_numberslist
FDA's own identifier for the recall, if you already have it.
Product description containsproduct_description_containstext
A word or phrase from the description of the recalled product, such as a brand name or a strength.
Reason containsreason_containstext
A word or phrase from FDA's stated reason for the recall, such as 'contamination', 'mislabeling' or 'sterility'.
Reported fromreported_fromdate
Only include recalls FDA reported on or after this date.
Reported toreported_todate
Only include recalls FDA reported on or before this date.
Started frominitiated_fromdate
Only include recalls the firm started on or after this date.
Started toinitiated_todate
Only include recalls the firm started on or before this date.
Brand namebrand_nameslist
Narrow to recalls of a particular brand, where FDA matched the recalled product to a drug listing.
Generic namegeneric_nameslist
Narrow to recalls of a particular generic drug.
Statestatestext
The recalling firm's state. The list is read from the recall data, with how many recalls come from each.
Countrycountriestext
The recalling firm's country.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: report_date (Date the recall was reported), recall_initiation_date (Date the recall was started), center_classification_date (Date FDA classified the recall), termination_date (Date the recall was terminated).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/enforcement",
  "dataset_label": "Drug recalls",
  "has_more": true,
  "last_updated": "2026-08-12",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "classification.exact:\"Class I\"",
  "results": [
    {
      "center_classification_date": "2018-09-07",
      "city": "Olive Branch",
      "classification": "Class I",
      "code_info": "Lot #: 15617VP03, 15617VP01, 15617VP-02, Exp 7/31/2019;  15617VP06, 15617VP05, Exp 11/30/2019; 15617VP04, 15618004, 15618002, Exp 12/31/2019; 15618009, 15618...",
      "country": "United States",
      "distribution_pattern": "Nationwide in the USA and Puerto Rico",
      "event_id": "80719",
      "initial_firm_notification": "Letter",
      "openfda": {},
      "product_description": "Levothyroxine and Liothyronine (Thyroid Tablets, USP), 1 grain (60 mg), 100-count bottles, Rx Only, Manufactured for: Westminster Pharmaceuticals, LLC, 154 D...",
      "product_quantity": "Unknown",
      "product_type": "Drugs",
      "reason_for_recall": "Failed Content Uniformity Specifications: Product was manufactured using an adulterated active pharmaceutical ingredient; additionally, lack of process contr...",
      "recall_initiation_date": "2018-08-03",
      "recall_number": "D-1178-2018",
      "recalling_firm": "Westminster Pharmaceuticals LLC",
      "report_date": "2018-08-29",
      "state": "MS",
      "status": "Terminated",
      "termination_date": "2020-06-03",
      "voluntary_mandated": "Voluntary: Firm initiated"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/enforcement/",
  "total_count": 1736
}

Search drug shortages

Search FDA's drug shortage database: which drugs are in short supply, in which presentations, why, what the company says about availability, and whether the shortage is current or resolved. Run it on a schedule filtered to your therapeutic categories to be told when something you depend on goes short. No API key required.

Inputs

Generic namegeneric_nameslist
The drug's non-proprietary name.
Brand nameproprietary_nameslist
The drug's trade name, where the entry records one.
Companycompanieslist
The company reporting the shortage.
Package NDCpackage_ndcslist
The exact package the shortage entry is about.
Shortage statusstatusestext
Current, resolved, or heading for discontinuation. The list is read from the shortage data, with how many entries are in each state.
Availabilityavailabilitytext
What the company says can currently be supplied.
Therapeutic categorytherapeutic_categoriestext
The clinical area the drug belongs to, such as Anesthesia or Oncology.
Dosage formdosage_formstext
The form the short product takes.
Reason containsreason_containstext
A word or phrase from FDA's stated reason, such as 'demand increase' or 'manufacturing'.
First posted fromposted_fromdate
Only include shortages first posted on or after this date.
First posted toposted_todate
Only include shortages first posted on or before this date.
Updated fromupdated_fromdate
Only include entries updated on or after this date.
Updated toupdated_todate
Only include entries updated on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: initial_posting_date (Date the shortage was first posted), update_date (Date the shortage entry was updated), change_date (Date the shortage status changed), discontinued_date (Date the product was discontinued).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/shortages",
  "dataset_label": "Drug shortages",
  "has_more": true,
  "last_updated": "2026-08-22",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "status:(\"Current\" OR \"CURRENT\" OR \"current\")",
  "results": [
    {
      "availability": "Available",
      "change_date": null,
      "company_name": "Teva Pharmaceuticals USA, Inc.",
      "contact_info": "800-545-8800",
      "discontinued_date": null,
      "dosage_form": "Capsule",
      "generic_name": "Lisdexamfetamine Dimesylate Capsule",
      "initial_posting_date": "2023-07-14",
      "openfda": null,
      "package_ndc": "0480-3564-01",
      "presentation": "Lisdexamfetamine Dimesylate, Capsule, 70 mg (NDC 0480-3564-01)",
      "proprietary_name": null,
      "related_info": null,
      "shortage_reason": null,
      "status": "Current",
      "strength": null,
      "therapeutic_category": [
        "Psychiatry"
      ],
      "update_date": "2026-08-17",
      "update_type": "Reverified"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/shortages/",
  "total_count": 1177
}

Search food adverse events

Search CAERS, the reports FDA collects about foods, dietary supplements and cosmetics: the reaction, the product blamed for it, how serious the outcome was, and the consumer's age and sex. Filter by reaction, outcome, brand or food industry. A report is one person's account, not a finding that the product caused the reaction. No API key required.

Inputs

Reactionreactionstext
The reactions reported, in MedDRA's own wording. The list is read from CAERS, with how many reports use each term.
Outcomeoutcomestext
How serious the outcome was.
Product brandproduct_brandslist
The brand name of the product named in the report.
Product industryindustriestext
FDA's own category for the product, such as 'Vit/Min/Prot/Unconv Diet' or 'Cosmetics'.
Product roleproduct_roletext
Whether the product was suspected of causing the event or merely being used at the time.One of: Suspect (Suspected of causing the event), Concomitant (Used at the same time, not suspected).
Consumer genderconsumer_gendertext
Only include reports about consumers of this gender.One of: Female, Male, Not Available (Not recorded).
Report created fromcreated_fromdate
Only include reports created on or after this date.
Report created tocreated_todate
Only include reports created on or before this date.
Reaction started fromstarted_fromdate
Only include reactions that started on or after this date.
Reaction started tostarted_todate
Only include reactions that started on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: date_created (Date the report was created), date_started (Date the reaction started).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "food/event",
  "dataset_label": "Food adverse events",
  "has_more": true,
  "last_updated": "2026-07-07",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "outcomes.exact:\"Hospitalization\"",
  "results": [
    {
      "consumer": {
        "age": "76",
        "age_unit": "year(s)",
        "gender": "Male"
      },
      "date_created": "2008-03-21",
      "date_started": "2008-01-05",
      "outcomes": [
        "Hospitalization",
        "Other Serious or Important Medical Event"
      ],
      "products": [
        {
          "industry_code": "54",
          "industry_name": "Vit/Min/Prot/Unconv Diet(Human/Animal)",
          "name_brand": "PURITAN'S PRIDE ADULT CHEWABLE PINEAPPLE FLAVORED MULTI-VITAMIN AND MINERAL SUPPLEMENT",
          "role": "SUSPECT"
        }
      ],
      "reactions": [
        "BLOOD PRESSURE INCREASED",
        "CONSTIPATION"
      ],
      "report_number": "101465"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/food/event/",
  "total_count": 23699
}

Search food recalls

Search FDA's food recall enforcement reports: what was recalled, by whom, why (undeclared allergens and contamination are the usual reasons), how much of it, where it was distributed, and how dangerous FDA judged it. Run it on a schedule filtered to Class I and your state to be told about serious local recalls as they are posted. No API key required.

Inputs

Recall classclassificationstext
FDA's hazard classification. Class I is the serious one: a product that could cause serious injury or death. Choose several to include any of them, or none to include every class.One or more of: Class I (Class I: could cause serious injury or death), Class II (Class II: could cause temporary or reversible harm), Class III (Class III: unlikely to cause harm), Not Yet Classified.
Recall statusstatusestext
Where the recall has got to. Ongoing means product is still being recovered; terminated means FDA considers it finished.One or more of: Ongoing, Completed, Terminated.
Recalling firmrecalling_firmslist
The company that issued the recall. Part of the name is enough, and the capitalisation does not matter.
Who started the recallvoluntary_mandatedtext
Whether the firm recalled the product itself or FDA required it. Nearly all recalls are voluntary.One of: Voluntary: Firm Initiated (Voluntary: the firm started it), FDA Mandated (Mandated by FDA).
Recall numberrecall_numberslist
FDA's own identifier for the recall, if you already have it.
Product description containsproduct_description_containstext
A word or phrase from the description of the recalled product, such as a brand name or a strength.
Reason containsreason_containstext
A word or phrase from FDA's stated reason for the recall, such as 'contamination', 'mislabeling' or 'sterility'.
Reported fromreported_fromdate
Only include recalls FDA reported on or after this date.
Reported toreported_todate
Only include recalls FDA reported on or before this date.
Started frominitiated_fromdate
Only include recalls the firm started on or after this date.
Started toinitiated_todate
Only include recalls the firm started on or before this date.
Statestatestext
The recalling firm's state. The list is read from the recall data, with how many recalls come from each.
Countrycountrieslist
The recalling firm's country.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: report_date (Date the recall was reported), recall_initiation_date (Date the recall was started), center_classification_date (Date FDA classified the recall), termination_date (Date the recall was terminated).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "food/enforcement",
  "dataset_label": "Food recalls",
  "has_more": true,
  "last_updated": "2026-08-12",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "classification.exact:\"Class I\"",
  "results": [
    {
      "center_classification_date": "2014-12-02",
      "city": "Miami",
      "classification": "Class I",
      "code_info": "UPC 635349 000390  Best By dates: 07/01/14 thru 12/31/14",
      "country": "United States",
      "distribution_pattern": "FL, GA. NC, and TN",
      "event_id": "69516",
      "initial_firm_notification": "Two or more of the following: Email, Fax, Letter, Press Release, Telephone, Visit",
      "openfda": {},
      "product_description": "Crema GuateLinda (Guatemalan Style Cream) in individually soft poly/plastic bags labeled in part: Lacteos Santa Martha Crema GuateLinda Guatemalan Style Crea...",
      "product_quantity": "144 pieces",
      "product_type": "Food",
      "reason_for_recall": "Virginia State (VDACS) found Listeria monocytogenes in Lacteos Santa Martha Quesito Casero Fresh Curd (Best by 9/27/14), FDA made an inspection, were the env...",
      "recall_initiation_date": "2014-10-10",
      "recall_number": "F-0609-2015",
      "recalling_firm": "Oasis Brands, Inc",
      "report_date": "2014-12-10",
      "state": "FL",
      "status": "Terminated",
      "termination_date": "2017-03-28",
      "voluntary_mandated": "Voluntary: Firm initiated"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/food/enforcement/",
  "total_count": 12863
}

Search historical FDA documents

Search FDA's digitised press releases and talk papers, in full text, back through the agency's history. Filter by year, document type or a phrase in the text. Each result carries an excerpt by default and the whole document on request. No API key required.

Inputs

Document typedocument_typestext
Which kind of document: 'pr' for a press release, 'talk' for a talk paper. The list is read from the data.
From yearyear_fromnumber
Only include documents from this year onwards.From 1900 to 2100.
To yearyear_tonumber
Only include documents up to and including this year.From 1900 to 2100.
Text containstext_containstext
A word or phrase to find in the document's text.
Return the full textinclude_full_texttrue/false
Bring back the whole document rather than the first thousand characters. Every result reports its full length either way.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "other/historicaldocument",
  "dataset_label": "Historical FDA documents",
  "has_more": true,
  "last_updated": "2024-03-20",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "year:[2006 TO 2006]",
  "results": [
    {
      "doc_type": "pr",
      "num_of_pages": 2,
      "text": "FDA NEWS RELEASE\nFOR IMMEDIATE RELEASE\n\nFebruary 9, 2006\n\nReport Demonstrates Benefits of Earlier Meetings with FDA to Make Drug Review Process More\nEfficien...",
      "text_length": 5140,
      "text_truncated": true,
      "year": 2006
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/other/historicaldocument/",
  "total_count": 248
}

Search NSDE package records

Search the NSDE file: one row per drug package, with its eleven-digit and hyphenated NDCs, its billing unit, and the dates it started and stopped being marketed. This is the dataset billing systems reconcile against, and it covers packages the NDC directory has already dropped. No API key required.

Inputs

Package NDCpackage_ndcslist
The package code, in either the hyphenated or the eleven-digit form. Both are searched.
Product nameproprietary_nameslist
The name printed on the package.
Application number or citationapplication_numberslist
The application the package is marketed under, or the OTC monograph citation.
Marketing categorymarketing_categoriestext
Which regulatory route put the package on the market. The list is read from the NSDE file.
Dosage formdosage_formstext
The form the product takes.
Product typeproduct_typestext
Prescription, over-the-counter, or one of the animal drug types.
Marketing started frommarketing_start_fromdate
Only include packages first marketed on or after this date.
Marketing started tomarketing_start_todate
Only include packages first marketed on or before this date.
Only packages still marketedcurrently_marketedtrue/false
Leave out packages whose marketing has already ended.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: marketing_start_date (Marketing start date), marketing_end_date (Marketing end date), inactivation_date (Date the listing was inactivated), reactivation_date (Date the listing was reactivated).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "other/nsde",
  "dataset_label": "NSDE package records",
  "has_more": true,
  "last_updated": "2026-08-21",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "marketing_category:(\"ANDA\" OR \"anda\" OR \"Anda\")",
  "results": [
    {
      "application_number_or_citation": "ANDA208682",
      "billing_unit": null,
      "dosage_form": "TABLET, FILM COATED",
      "inactivation_date": null,
      "marketing_category": "ANDA",
      "marketing_end_date": "2025-11-19",
      "marketing_start_date": "2019-04-16",
      "package_ndc": "69539-006-31",
      "package_ndc11": "69539000631",
      "product_type": "HUMAN PRESCRIPTION DRUG",
      "proprietary_name": "Moxifloxacin Hydrochloride Tablets, 400 Mg",
      "reactivation_date": null
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/other/nsde/",
  "total_count": 259887
}

Search smokefree.gov traffic research

Search the traffic measurements FDA publishes for its smokefree.gov quit-smoking resources: page views, completions, session durations and downloads for each tool, split by whether visitors arrived from The Real Cost campaign, from a search engine, or directly. No API key required.

Inputs

Metricmetricstext
What was measured: page views, completions, mean session duration and so on.
Measured resourcevariablestext
Which page or tool the measurement is for.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "tobacco/researchsmokefree",
  "dataset_label": "Smokefree.gov traffic research",
  "has_more": true,
  "last_updated": "2026-08-17",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "metric": "Number of Page Views",
      "traffic_referral_group": {
        "direct_traffic": "348941",
        "direct_traffic_denominator": "1864650",
        "organic_traffic": "731066",
        "organic_traffic_denominator": "1864650",
        "the_real_cost_campaign": "253555",
        "the_real_cost_campaign_denominator": "1864650"
      },
      "variable": "Teen.smokefree.gov Landing Page",
      "variable_definition": "This number represents the total number of unique, single-session visits to teen.smokefree.gov, a section of the smokefree.gov website. Repeat visitors are e..."
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/tobacco/researchsmokefree/",
  "total_count": 22
}

Search substance registrations

Search FDA's Global Substance Registration System, the scientific record behind every substance it regulates: its UNII code, every name it goes by, its class, and, for chemicals, its formula, molecular weight and structure. Records are summarised by default because a full one runs to hundreds of kilobytes of structural data. No API key required.

Inputs

Substance namenameslist
A name the substance goes by. Every recorded name is searched, including systematic and brand names.
UNII codeunii_codeslist
FDA's ten-character identifier for the substance.
Substance classsubstance_classestext
What kind of substance it is: a chemical, a protein, a mixture, a structurally diverse natural product, and so on.
Molecular formulaformulatext
The exact molecular formula, for chemical substances.
Only substances with a structurehas_structuretrue/false
Narrow to substances with a recorded chemical structure, which leaves out mixtures and concepts.
Return the full recordinclude_full_recordtrue/false
Bring back everything the registration system holds, including the structure files, references and relationships. Off by default: a full record can be hundreds of kilobytes, so a page of them is far more than a workflow can carry.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "other/substance",
  "dataset_label": "Substance registrations",
  "has_more": true,
  "last_updated": "2025-09-19",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "names.name:(\"ASPIRIN\" OR \"aspirin\" OR \"Aspirin\")",
  "results": [
    {
      "definition_level": "COMPLETE",
      "definition_type": "PRIMARY",
      "formula": "C9H8O4",
      "molecular_weight": "180.1578",
      "names": [
        "2-(ACETYLOXY)BENZOIC ACID",
        "2-ACETYLOXYBENZOIC ACID"
      ],
      "preferred_name": "ACETYLSALICYLIC ACID",
      "smiles": "CC(=O)Oc1ccccc1C(=O)O",
      "status": null,
      "substance_class": "chemical",
      "tags": null,
      "unii": "R16CO5Y76E",
      "uuid": "a05ec20c-8fe2-4e02-ba7f-df69e5e30248",
      "version": "108"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/other/substance/",
  "total_count": 1
}

Search the Orange Book

Search the Orange Book: FDA's list of approved drug products with their therapeutic equivalence codes, the patents that cover them and the exclusivity periods that keep generics off the market. This is the action for 'which generics are equivalent to this brand', and for when a drug's protection expires. No API key required.

Inputs

Application numberapplication_numberslist
The Orange Book's own six-digit application number, without a prefix.
Application typeapplication_typetext
Brand-name (NDA) or generic (ANDA).One of: N (NDA: a brand-name drug), A (ANDA: a generic drug).
Applicantapplicantslist
The company that holds the approval.
Brand namebrand_nameslist
The product's trade name.
Active ingredientactive_ingredientslist
An ingredient the product contains.
Marketing statusmarketing_statusestext
Whether the product is prescription, over-the-counter or discontinued.
Dosage formdosage_formstext
The form the product takes.
Route of administrationroutestext
How the product is taken.
Only reference listed drugsreference_listed_onlytrue/false
A reference listed drug is the brand a generic must prove itself equivalent to.
Approved fromapproved_fromdate
Only include products approved on or after this date.
Approved toapproved_todate
Only include products approved on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: approval_date (Approval date).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "drug/orangebook",
  "dataset_label": "Orange Book",
  "has_more": true,
  "last_updated": "2026-08-22",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "approval_date:[2024-01-01 TO *]",
  "results": [
    {
      "approval_date": "2026-03-26",
      "approved_prior_to_1982": null,
      "exclusivity": null,
      "patents": null,
      "product_number": "004",
      "products": [
        {
          "active_ingredients": [
            {
              "name": "LABETALOL HYDROCHLORIDE",
              "strength": "400MG"
            }
          ],
          "application_full_name": "HERITAGE PHARMA LABS INC",
          "application_name": "HERITAGE PHARMA",
          "application_number": "074787",
          "application_type": "A",
          "brand_name": "LABETALOL HYDROCHLORIDE",
          "dosage_form": "TABLET",
          "marketing_status": "HUMAN PRESCRIPTION DRUG",
          "reference_listed_drug": false,
          "reference_standard": false,
          "route": "ORAL",
          "therapeutic_equivalence_codes": [
            "AB"
          ]
        }
      ]
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/drug/orangebook/",
  "total_count": 4208
}

Search tobacco digital ad performance

Search how FDA's digital tobacco-prevention adverts performed on each channel: views, view-through rate, how long people actually watched, how much of that time they were paying attention, and whether they recognised the advert and the brand afterwards. No API key required.

Inputs

Channel or formatchannelstext
Where the advert ran and in what format. The list is read from the data.
Advertad_numberslist
Which advert, such as 'Ad 4'.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "tobacco/researchdigitalads",
  "dataset_label": "Tobacco digital ad performance",
  "has_more": true,
  "last_updated": "2026-08-17",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "ad_number": "Ad 4",
      "ad_recognition": "52.15%",
      "attention_average": "59.24%",
      "attentive_seconds": "8.89s",
      "attentive_seconds_standard_deviation": "5.8",
      "attentive_vtr": "53.76%",
      "brand_recognition": "48.92%",
      "channel_or_format": "Youtube non-skippable preroll ad",
      "playback_seconds": "14.29s",
      "playback_seconds_standard_deviation": "2.6",
      "view_through_rate": "91.40%",
      "views": "186"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/tobacco/researchdigitalads/",
  "total_count": 12
}

Search tobacco prevention ad studies

Search FDA's Tobacco Rapid Response ad-testing studies: how each prevention advert moved young people's beliefs about addiction, health consequences and harmful constituents, and how much, broken down by risk status, gender, age group and race or ethnicity. Filter by study or advert. No API key required.

Inputs

Studystudiestext
Which ad-testing study the results come from. The list is read from the data.
Advertad_numberslist
Which advert within the study, such as 'Ad 4'.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "tobacco/researchpreventionads",
  "dataset_label": "Tobacco prevention ad studies",
  "has_more": true,
  "last_updated": "2026-08-17",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "ad_number": "Ad 5",
      "age_group": [
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.334",
            "mean": "3.1483",
            "number": "118",
            "standard_deviation": "1.20062"
          },
          "cigarette_attitudes": {
            "effect_size": "0.304",
            "mean": "2.5847",
            "number": "118",
            "standard_deviation": "0.68346"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "-0.12",
            "mean": "3.85",
            "number": "118.00",
            "standard_deviation": "1.02"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "0.088",
            "mean": "3.7458",
            "number": "118",
            "standard_deviation": "1.03310"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        },
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.191",
            "mean": "3.3632",
            "number": "106",
            "standard_deviation": "1.06130"
          },
          "cigarette_attitudes": {
            "effect_size": "0.298",
            "mean": "2.6321",
            "number": "106",
            "standard_deviation": "0.77245"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "0.02",
            "mean": "3.63",
            "number": "106.00",
            "standard_deviation": "1.12"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "-0.056",
            "mean": "3.8019",
            "number": "106",
            "standard_deviation": "0.94536"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        }
      ],
      "full_sample": [
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.271",
            "mean": "3.2500",
            "number": "224",
            "standard_deviation": "1.13900"
          },
          "cigarette_attitudes": {
            "effect_size": "0.301",
            "mean": "2.6070",
            "number": "224",
            "standard_deviation": "0.72600"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "-0.06",
            "mean": "3.75",
            "number": "224.00",
            "standard_deviation": "1.07"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "0.021",
            "mean": "3.7720",
            "number": "224",
            "standard_deviation": "0.99100"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        }
      ],
      "gender": [
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.34",
            "mean": "3.19",
            "number": "113.00",
            "standard_deviation": "1.17"
          },
          "cigarette_attitudes": {
            "effect_size": "0.21",
            "mean": "2.63",
            "number": "113.00",
            "standard_deviation": "0.75"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "0.07",
            "mean": "3.69",
            "number": "113.00",
            "standard_deviation": "1.17"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "0.11",
            "mean": "3.77",
            "number": "113.00",
            "standard_deviation": "1.05"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        },
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.20",
            "mean": "3.32",
            "number": "111.00",
            "standard_deviation": "1.11"
          },
          "cigarette_attitudes": {
            "effect_size": "0.40",
            "mean": "2.59",
            "number": "111.00",
            "standard_deviation": "0.71"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "-0.20",
            "mean": "3.80",
            "number": "111.00",
            "standard_deviation": "0.96"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "-0.08",
            "mean": "3.77",
            "number": "111.00",
            "standard_deviation": "0.93"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        }
      ],
      "race_or_ethnicity": [
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.47",
            "mean": "3.12",
            "number": "51.00",
            "standard_deviation": "1.13"
          },
          "cigarette_attitudes": {
            "effect_size": "0.50",
            "mean": "2.67",
            "number": "51.00",
            "standard_deviation": "0.74"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "-0.01",
            "mean": "3.78",
            "number": "51.00",
            "standard_deviation": "0.99"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "0.15",
            "mean": "3.88",
            "number": "51.00",
            "standard_deviation": "0.90"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        },
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.34",
            "mean": "3.17",
            "number": "92.00",
            "standard_deviation": "1.18"
          },
          "cigarette_attitudes": {
            "effect_size": "0.43",
            "mean": "2.62",
            "number": "92.00",
            "standard_deviation": "0.74"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "0.10",
            "mean": "3.72",
            "number": "92.00",
            "standard_deviation": "1.03"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "0.14",
            "mean": "3.64",
            "number": "92.00",
            "standard_deviation": "1.05"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        }
      ],
      "risk_status": [
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.20",
            "mean": "3.41",
            "number": "74.00",
            "standard_deviation": "1.11"
          },
          "cigarette_attitudes": {
            "effect_size": "0.48",
            "mean": "2.69",
            "number": "74.00",
            "standard_deviation": "0.81"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "-0.04",
            "mean": "3.72",
            "number": "74.00",
            "standard_deviation": "0.96"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "0.16",
            "mean": "3.70",
            "number": "74.00",
            "standard_deviation": "0.99"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        },
        {
          "cigarette_addiction_beliefs": {
            "effect_size": "0.30",
            "mean": "3.17",
            "number": "150.00",
            "standard_deviation": "1.14"
          },
          "cigarette_attitudes": {
            "effect_size": "0.20",
            "mean": "2.57",
            "number": "150.00",
            "standard_deviation": "0.68"
          },
          "cigarette_harmful_and_potentially_harmful_constituents": {
            "effect_size": "-0.06",
            "mean": "3.76",
            "number": "150.00",
            "standard_deviation": "1.13"
          },
          "cigarette_health_consequences_beliefs": {
            "effect_size": "-0.04",
            "mean": "3.81",
            "number": "150.00",
            "standard_deviation": "0.99"
          },
          "smokeless_tobacco_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "smokeless_tobacco_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_addiction_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_attitudes": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_harmful_and_potentially_harmful_constituents": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          },
          "vape_health_consequences_beliefs": {
            "effect_size": "Missing",
            "mean": "Missing",
            "number": "Missing",
            "standard_deviation": "Missing"
          }
        }
      ],
      "study_name": "TRC Cigarettes Study 1"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/tobacco/researchpreventionads/",
  "total_count": 42
}

Search tobacco problem reports

Search the problems the public reports to FDA about tobacco products: the health effects (seizures and breathing problems are common with vaping products) and the product defects, such as batteries overheating or foreign material in the product. Filter by product, health problem, product problem or date. No API key required.

Inputs

Tobacco producttobacco_productstext
The kind of product the report is about. The list is read from the reports themselves, which is worth knowing: FDA has reworded the vaping-product option several times, so several similar entries exist.
Health problemhealth_problemstext
The health effects the reporter described.
Product problemproduct_problemstext
What was wrong with the product itself.
A non-user was affectednon_user_affectedtext
Whether someone who does not use the product was the one harmed, such as a child or a bystander.One of: Yes (Yes: someone who does not use the product was affected), No, Neither, Unknown, No information provided.
Submitted fromsubmitted_fromdate
Only include reports submitted on or after this date.
Submitted tosubmitted_todate
Only include reports submitted on or before this date.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Sort bysort_bytext
Which date to order the results by. Leave empty for openFDA's own order.One of: date_submitted (Date the report was submitted).
Ordersort_directiontext
Which end of the sort to start from. Defaults to newest first.One of: desc (Newest first), asc (Oldest first).
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "tobacco/problem",
  "dataset_label": "Tobacco problem reports",
  "has_more": true,
  "last_updated": "2026-07-31",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "",
  "results": [
    {
      "date_submitted": "2019-08-14",
      "nonuser_affected": "No",
      "number_health_problems": 6,
      "number_product_problems": 0,
      "number_tobacco_products": 1,
      "report_id": 965,
      "reported_health_problems": [
        "Seizure",
        "Blackout spell"
      ],
      "reported_product_problems": [
        "No information provided"
      ],
      "tobacco_products": [
        "Electronic cigarette, electronic nicotine or vaping product (E-cigarette, e-cigars, e-hookahs, e-pipes, vape pens, hookah pens, and personal vaporizers; E-li..."
      ]
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/tobacco/problem/",
  "total_count": 1383
}

Search UNII codes

Search FDA's Unique Ingredient Identifier list: the ten-character code FDA assigns to every substance, paired with its preferred name and nothing else. Use it to turn a substance name into the UNII the drug and label datasets index by, or a UNII back into a name. No API key required.

Inputs

Substance namesubstance_nameslist
The substance's name, or part of it.
UNII codeunii_codeslist
The ten-character identifier itself.
Words to look forsearch_texttext
A word or phrase to look for anywhere in the record, on top of the filters above. Leave empty to rely on the filters alone.
Number of recordslimitnumber
How many records to return (1-1000). Defaults to 25. openFDA will not return more than 1,000 in one request.From 1 to 1000.
Skip the firstskipnumber
How many matching records to skip before returning any, for paging through a large result set. Defaults to 0. openFDA cannot skip past 25,000; use 'Continue from' to go further.From 0 to 25000.
Continue fromcursortext
Paste the 'next_cursor' a previous run returned to carry on from where it stopped. This is the only way past 25,000 records, and it replaces 'Skip the first' when both are given.

Outputs

countnumber
datasettext
dataset_labeltext
has_moretrue/false
last_updatedtext
limitnumber
next_cursortext
querytext
resultslist
skipnumber
source_urltext
total_countnumber
Example output
{
  "count": 1,
  "dataset": "other/unii",
  "dataset_label": "UNII codes",
  "has_more": true,
  "last_updated": "2026-08-22",
  "limit": 25,
  "next_cursor": "0=1786492800000;1=691e71b4d99d1932d4848d",
  "query": "substance_name:(\"ASPIRIN\" OR \"aspirin\" OR \"Aspirin\")",
  "results": [
    {
      "substance_name": "DIHYDROXYALUMINUM ASPIRIN",
      "unii": "20D04M9OLN"
    }
  ],
  "skip": 0,
  "source_url": "https://open.fda.gov/apis/other/unii/",
  "total_count": 18
}

On this page