OpenFDA fields

Different datasets use different drug identifiers—brand name, generic name, NDA, NDC, etc. It can be difficult to find the same drug in different datasets. And some identifiers, like pharmacologic class, are useful search filters but not available in all datasets.

OpenFDA features harmonization on drug identifiers, to make it easier to both search for and understand the drug products returned by API queries. These additional fields are attached to records in all categories, if applicable.

When you query an endpoint, you can search by:

  • Fields native to records served by that endpoint.

  • Harmonized openFDA fields, if they exist.

OpenFDA does not rewrite original records. These additional fields are annotations, in special openfda dictionary of values.

Limits of openFDA harmonization

Not all records have harmonized fields. Because the harmonization process requires an exact match, some drug products cannot be harmonized in this fashion—for instance, if the drug name is misspelled. Some drug products will have openfda sections, while others will never, if there was no match during the harmonization process. Conversely, searching in these fields will only return a subset of records from a given endpoint.

The documentation below describes fields that you may find in an openfda section of an API result. They are organized by the dataset from which they originate.


NDC stands for National Drug Code. The Drug Listing Act of 1972 requires registered drug establishments to provide the FDA with a current list of all drugs manufactured, prepared, propagated, compounded, or processed by it for commercial distribution. (See Section 510 of the Federal Food, Drug, and Cosmetic Act (Act) (21 U.S.C. § 360)).

Drug products are identified and reported using a unique, three-segment number, called the National Drug Code (NDC), which serves as a universal product identifier for drugs.

Several NDC dataset fields are used to annotate records in openFDA.

  • application_number
    array of strings

    This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null.

  • brand_name
    array of strings

    The brand or trade name of the product.

  • dosage_form
    array of strings

    The dosage form of the drug product.

  • generic_name
    array of strings

    The dosage form of the drug product.

  • manufacturer_name
    array of strings

    Name of company corresponding to the labeler code segment of the NDC.

  • product_ndc
    array of strings

    The labeler manufacturer code and product code segments of the NDC number, separated by a hyphen.

  • product_type
    array of strings

    The route of administration of the drug product.

  • route
    array of strings

    The type of drug product.

  • substance_name
    array of strings

    The list of active ingredients of a drug product.


SPL stands for the Structured Product Labeling standard approved by Health Level Seven (HL7) and adopted by FDA as a mechanism for exchanging product and facility information. Drug products have associated labels that confirm to the SPL format.

Several SPL dataset fields are used to annotate records in openFDA.

  • spl_id
    array of strings

    A unique identifier for a particular version of a Structured Product Label for a product. Also referred to as the document ID.

  • spl_set_id
    array of strings

    A unique identifier for the Structured Product Label for a product, which is stable across versions of the label.

  • pharm_class_moa
    array of strings

    Mechanism of action. Molecular, subcellular, or cellular level functional activity of a drug product’s pharmacologic class.

  • pharm_class_cs
    array of strings

    Chemical structure. Chemical structure classification of a pharmacologic class.

  • pharm_class_pe
    array of strings

    Physiologic effect. Tissue, organ, or organ system level functional activity of a pharmacologic class.

  • pharm_class_epc
    array of strings

    Established pharmacologic class. A pharmacologic class associated with an approved indication of an active moiety that the FDA has determined to be scientifically valid and clinically meaningful.

  • upc
    array of strings

    Documentation forthcoming.


UNII stands for Unique Ingredient Identifier. The overall purpose of the joint FDA/USP Substance Registration System (SRS) is to support health information technology initiatives by generating unique ingredient identifiers (UNIIs) for substances in drugs, biologics, foods, and devices. The UNII is a non- proprietary, free, unique, unambiguous, non semantic, alphanumeric identifier based on a substance’s molecular structure and/or descriptive information.

  • unii
    array of strings

    The Unique Ingredient Identifier of the drug or substance.


RxNorm is a normalized naming system for generic and branded drugs; and a tool for supporting semantic interoperation between drug terminologies and pharmacy knowledge base systems. The National Library of Medicine (NLM) produces RxNorm.

  • rxcui
    array of strings

    The RxNorm Concept Unique Identifier. RxCUI is a unique number that describes a semantic concept about the drug product, including its ingredients, strength, and dosage forms.