{
  "openapi": "3.1.0",
  "info": {
    "title": "Drugs API",
    "version": "1.0.0",
    "description": "135,000 FDA drug products by NDC, joined with 17,900 recall reports.\n\nThe FDA's drug universe, self-hosted and joined: 135,164 products from the National Drug Code Directory plus 17,898 recall and enforcement reports, so a single product lookup tells you what a drug is AND whether it has been recalled. Every product carries brand and generic names, active ingredients with strengths, routes of administration, dosage form, DEA controlled-substance schedule (CII-CV), marketing category and FDA application number, full packaging with package NDCs, pharmacologic classes where openFDA provides them, and — with no UMLS licence required — RxNorm rxcui and UNII identifiers for interoperability with clinical systems. NDCs are accepted in every form callers actually hold: hyphenated product NDCs, hyphenless digits, package NDCs and 11-digit billing formats. Search by name, ingredient, labeler, route, dosage form, DEA schedule or pharmacologic class; browse recalls by Class I/II/III, status, state, firm or date; roll up dosage forms and controlled-substance schedules. Recall data refreshes daily from the FDA enforcement feed, and every response can be traced to the exact openFDA export date via the sources endpoint. Built for pharmacy tooling, formulary systems, e-commerce compliance and health-tech verification — registry data, not medical advice. Self-hosted dataset — no third-party calls at request time.",
    "contact": {
      "name": "Data and APIs",
      "url": "https://dataandapis.com/contact"
    },
    "termsOfService": "https://dataandapis.com/terms-of-service",
    "license": {
      "name": "Data and APIs Terms of Service",
      "url": "https://dataandapis.com/terms-of-service"
    },
    "x-logo": {
      "url": "https://dataandapis.com/images/drugs.webp"
    }
  },
  "externalDocs": {
    "description": "Documentation, live tester and pricing",
    "url": "https://dataandapis.com/apis/drugs"
  },
  "servers": [
    {
      "url": "https://api-drugs.dataandapis.com"
    }
  ],
  "tags": [
    {
      "name": "Health",
      "description": "Drugs API belongs to the Health category of the Data and APIs catalog."
    }
  ],
  "paths": {
    "/v1/drugs/schedules": {
      "get": {
        "operationId": "deaSchedules",
        "summary": "DEA Schedules",
        "description": "DEA Schedules endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/dea-schedules"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "count": 5,
                  "schedules": [
                    {
                      "dea_schedule": "CI",
                      "count": 12
                    },
                    {
                      "dea_schedule": "CII",
                      "count": 2240
                    },
                    {
                      "dea_schedule": "CIII",
                      "count": 947
                    },
                    {
                      "dea_schedule": "CIV",
                      "count": 2113
                    },
                    {
                      "dea_schedule": "CV",
                      "count": 936
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/v1/sources": {
      "get": {
        "operationId": "dataSources",
        "summary": "Data Sources",
        "description": "Data Sources endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/data-sources"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "count": 2,
                  "sources": [
                    {
                      "slug": "openfda-enforcement",
                      "name": "FDA Drug Recall Enforcement Reports (openFDA bulk export)",
                      "publisher": "US Food and Drug Administration",
                      "licence": "US Government work - no copyright",
                      "source_url": "https://open.fda.gov/apis/drug/enforcement/",
                      "file_url": "https://download.open.fda.gov/drug/enforcement/drug-enforcement-0001-of-0001.json.zip",
                      "cadence": "refreshed daily by scrapers/main-scraper (queue DRUGS-RECALLS)",
                      "record_count": 17898,
                      "export_date": "2026-08-27",
                      "retrieved_at": "2026-08-29",
                      "updated_at": "2026-08-29 06:06:16"
                    },
                    {
                      "slug": "openfda-ndc",
                      "name": "FDA National Drug Code Directory (openFDA bulk export)",
                      "publisher": "US Food and Drug Administration",
                      "licence": "US Government work - no copyright",
                      "source_url": "https://open.fda.gov/apis/drug/ndc/",
                      "file_url": "https://download.open.fda.gov/drug/ndc/drug-ndc-0001-of-0001.json.zip",
                      "cadence": "openFDA re-exports daily; monthly re-seed recommended",
                      "record_count": 135164,
                      "export_date": "2026-08-28",
                      "retrieved_at": "2026-08-29",
                      "updated_at": "2026-08-29 06:04:53"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/v1/drugs/forms": {
      "get": {
        "operationId": "dosageForms",
        "summary": "Dosage Forms",
        "description": "Dosage Forms endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/dosage-forms"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "count": 8,
                  "forms": [
                    {
                      "dosage_form": "TABLET",
                      "count": 18606
                    },
                    {
                      "dosage_form": "POWDER",
                      "count": 15180
                    },
                    {
                      "dosage_form": "TABLET, FILM COATED",
                      "count": 11802
                    },
                    {
                      "dosage_form": "LIQUID",
                      "count": 10101
                    },
                    {
                      "dosage_form": "PELLET",
                      "count": 7439
                    },
                    {
                      "dosage_form": "CAPSULE",
                      "count": 6781
                    },
                    {
                      "dosage_form": "CREAM",
                      "count": 6747
                    },
                    {
                      "dosage_form": "SOLUTION",
                      "count": 5532
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/v1/drugs/{ndc}": {
      "get": {
        "operationId": "getDrugByNdc",
        "summary": "Get Drug By NDC",
        "description": "Get Drug By NDC endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/get-drug-by-ndc"
        },
        "parameters": [
          {
            "name": "ndc",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "58151-155"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "product_ndc": "58151-155",
                  "brand_name": "Lipitor",
                  "generic_name": "atorvastatin calcium",
                  "labeler": "Viatris Specialty LLC",
                  "product_type": "HUMAN PRESCRIPTION DRUG",
                  "dosage_form": "TABLET, FILM COATED",
                  "routes": [
                    "ORAL"
                  ],
                  "dea_schedule": null,
                  "active_ingredients": [
                    {
                      "name": "ATORVASTATIN CALCIUM TRIHYDRATE",
                      "strength": "10 mg/1"
                    }
                  ],
                  "brand_name_base": "Lipitor",
                  "marketing_category": "NDA",
                  "application_number": "NDA020702",
                  "pharm_classes": {},
                  "packaging": [
                    {
                      "package_ndc": "58151-155-77",
                      "description": "90 TABLET, FILM COATED in 1 BOTTLE (58151-155-77)",
                      "marketing_start_date": "20240501",
                      "sample": false
                    }
                  ],
                  "rxnorm_rxcui": [
                    "259255",
                    "262095",
                    "617310",
                    "617311",
                    "617312",
                    "617314",
                    "617318",
                    "617320"
                  ],
                  "unii": [
                    "48A5M73Z4Q"
                  ],
                  "spl_set_id": "a60cc18b-0631-4cf0-b021-9f52224ece65",
                  "marketing": {
                    "start": "20240501",
                    "end": null,
                    "listing_expiration": "20271231"
                  },
                  "finished": true,
                  "recalls": {
                    "count": 0,
                    "active": false,
                    "reports": []
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/v1/drugs/random": {
      "get": {
        "operationId": "randomDrugs",
        "summary": "Random Drugs",
        "description": "Random Drugs endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/random-drugs"
        },
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "3"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "count": 3,
                  "results": [
                    {
                      "product_ndc": "58228-2010",
                      "brand_name": "Burn Ease",
                      "generic_name": "Burn Ease",
                      "labeler": "ProStat First Aid LLC",
                      "product_type": "HUMAN OTC DRUG",
                      "dosage_form": "GEL",
                      "routes": [
                        "TOPICAL"
                      ],
                      "dea_schedule": null,
                      "active_ingredients": [
                        {
                          "name": "LIDOCAINE HYDROCHLORIDE",
                          "strength": "2 g/100g"
                        }
                      ]
                    },
                    {
                      "product_ndc": "58228-2510",
                      "brand_name": "Alcohol Wipes",
                      "generic_name": "Alcohol Wipes",
                      "labeler": "ProStat First Aid LLC",
                      "product_type": "HUMAN OTC DRUG",
                      "dosage_form": "SWAB",
                      "routes": [
                        "TOPICAL"
                      ],
                      "dea_schedule": null,
                      "active_ingredients": [
                        {
                          "name": "ISOPROPYL ALCOHOL",
                          "strength": ".7 mL/mL"
                        }
                      ]
                    },
                    {
                      "product_ndc": "58228-6283",
                      "brand_name": "Burn Ease 3.5g",
                      "generic_name": "Burn Ease 3.5G",
                      "labeler": "Front Line Safety",
                      "product_type": "HUMAN OTC DRUG",
                      "dosage_form": "GEL",
                      "routes": [
                        "TOPICAL"
                      ],
                      "dea_schedule": null,
                      "active_ingredients": [
                        {
                          "name": "LIDOCAINE HYDROCHLORIDE",
                          "strength": "2 g/100g"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/v1/drugs": {
      "get": {
        "operationId": "searchDrugs",
        "summary": "Search Drugs",
        "description": "Search Drugs endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/search-drugs"
        },
        "parameters": [
          {
            "name": "brand",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "Lipitor"
          },
          {
            "name": "class",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "form",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "generic",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "atorvastatin"
          },
          {
            "name": "ingredient",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "atorvastatin"
          },
          {
            "name": "labeler",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "20"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "route",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "ORAL"
          },
          {
            "name": "schedule",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "PRESCRIPTION"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "total": 4,
                  "page": 1,
                  "limit": 20,
                  "count": 2,
                  "results": [
                    {
                      "product_ndc": "58151-155",
                      "brand_name": "Lipitor",
                      "generic_name": "atorvastatin calcium",
                      "labeler": "Viatris Specialty LLC",
                      "product_type": "HUMAN PRESCRIPTION DRUG",
                      "dosage_form": "TABLET, FILM COATED",
                      "routes": [
                        "ORAL"
                      ],
                      "dea_schedule": null,
                      "active_ingredients": [
                        {
                          "name": "ATORVASTATIN CALCIUM TRIHYDRATE",
                          "strength": "10 mg/1"
                        }
                      ]
                    },
                    {
                      "product_ndc": "58151-156",
                      "brand_name": "Lipitor",
                      "generic_name": "atorvastatin calcium",
                      "labeler": "Viatris Specialty LLC",
                      "product_type": "HUMAN PRESCRIPTION DRUG",
                      "dosage_form": "TABLET, FILM COATED",
                      "routes": [
                        "ORAL"
                      ],
                      "dea_schedule": null,
                      "active_ingredients": [
                        {
                          "name": "ATORVASTATIN CALCIUM TRIHYDRATE",
                          "strength": "20 mg/1"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/v1/recalls": {
      "get": {
        "operationId": "searchRecalls",
        "summary": "Search Recalls",
        "description": "Search Recalls endpoint of the Drugs API. Costs 1 token per call.",
        "externalDocs": {
          "url": "https://dataandapis.com/apis/drugs/search-recalls"
        },
        "parameters": [
          {
            "name": "classification",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "I"
          },
          {
            "name": "firm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "20"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "sterility"
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "total": 157,
                  "page": 1,
                  "limit": 20,
                  "count": 2,
                  "results": [
                    {
                      "recall_number": "D-0624-2026",
                      "status": "Ongoing",
                      "classification": "Class I",
                      "product_description": "BD ChloraPrep Clear (2% w/v chlorhexidine gluconate (CHG) and 70% v/v isopropyl alcohol (IPA)), 1 mL Applicator, 60 Applicators per inner Carton, Sterile Solution, Care Fusion 213, LLC, El Paso, TX 79912, subsidiary of Beckton, Dickinson and Co., NDC 54365-400-31.",
                      "reason": "Non-Sterility: Due to presence of Aspergillus penicillioides.",
                      "recalling_firm": "CareFusion 213, LLC",
                      "location": {
                        "city": "El Paso",
                        "state": "TX",
                        "country": "United States"
                      },
                      "distribution": "Nationwide inthe USA, as well as other foreign distribution.",
                      "product_quantity": "193,440 applicators",
                      "code_info": "Lot # 4032183, Exp 01/31/2027",
                      "voluntary_mandated": "Voluntary: Firm initiated",
                      "dates": {
                        "initiated": "20260528",
                        "reported": "20260701",
                        "terminated": null
                      },
                      "product_ndcs": [
                        "54365-400"
                      ]
                    },
                    {
                      "recall_number": "D-0625-2026",
                      "status": "Ongoing",
                      "classification": "Class I",
                      "product_description": "BD ChloraPrep FREPP Clear,(2% w/v chlorhexidine gluconate (CHG) and 70% v/v isopropyl alcohol (IPA)) 1.5 mL Applicator, 20 Applicators, Sterile Solution, Care Fusion 213, LLC, El Paso, TX 79912, subsidiary of Beckton, Dickinson and Co., NDC 54365-400-30.",
                      "reason": "Non-Sterility: Due to presence of Aspergillus penicillioides. And Lack of Assurance of Sterility: Due to wrinkles in the paper lidding which may breach the seal   area.",
                      "recalling_firm": "CareFusion 213, LLC",
                      "location": {
                        "city": "El Paso",
                        "state": "TX",
                        "country": "United States"
                      },
                      "distribution": "Nationwide inthe USA, as well as other foreign distribution.",
                      "product_quantity": "178,000 applicators",
                      "code_info": "Lot # 4073005, Exp 03/31/2027",
                      "voluntary_mandated": "Voluntary: Firm initiated",
                      "dates": {
                        "initiated": "20260528",
                        "reported": "20260701",
                        "terminated": null
                      },
                      "product_ndcs": [
                        "54365-400"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "402": {
            "description": "Subscription past due; the response carries a payment_url"
          },
          "429": {
            "description": "Monthly token allowance exhausted"
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key",
        "description": "Create a free key at https://dataandapis.com/sign-up. 500 tokens a month on the Free plan; this API costs 1 token per call."
      }
    }
  },
  "security": [
    {
      "ApiKey": []
    }
  ]
}