Find an API

Search public APIs with auth details & Postman guides

← All APIs

FDA National Drug Code Directory

FDA · Health

Health No Auth Free & Open Healthcare Life Sciences NDC Drug Codes Pharmacy

National Drug Code (NDC) directory identifying all drugs manufactured, prepared, propagated, compounded, or processed for sale in the US. Each NDC identifies the labeler, product, and trade package. Accessible via the openFDA /drug/ndc endpoint.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Lookup NDC product

Search NDC directory by generic drug name

https://api.fda.gov/drug/ndc.json?limit=5&search=generic_name:lisinopril

Hover any highlighted part to learn what it does

curl -X GET "https://api.fda.gov/drug/ndc.json?limit=5&search=generic_name%3Alisinopril"
import requests
params = {
    "limit": "5",
    "search": "generic_name:lisinopril"
}
response = requests.get(
    "https://api.fda.gov/drug/ndc.json",
    params=params,
)
print(response.json())
const url = new URL('https://api.fda.gov/drug/ndc.json');
url.searchParams.set('limit', '5');
url.searchParams.set('search', 'generic_name:lisinopril');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.fda.gov/drug/ndc.json")
	q := baseURL.Query()
	q.Set("limit", "5")
	q.Set("search", "generic_name:lisinopril")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.fda.gov/drug/ndc.json")
uri.query = URI.encode_www_form({
  "limit" => "5",
  "search" => "generic_name:lisinopril"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.fda.gov/drug/ndc.json?" . http_build_query([
    "limit" => "5",
    "search" => "generic_name:lisinopril"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. No API key required for basic use
  2. In Postman, GET https://api.fda.gov/drug/ndc.json
  3. Search by generic name: ?search=generic_name:lisinopril
  4. Search by NDC code: ?search=product_ndc:0781-5059
  5. Response includes labeler_name, generic_name, dosage_form, and package NDC numbers

What can you build with FDA National Drug Code Directory?

FDA National Drug Code Directory is a Health API. Developers commonly use health APIs for:

  • accessing medical reference data and drug information
  • building patient-facing health tracking apps
  • integrating with EHR and telemedicine platforms
  • looking up ICD codes and clinical terminology
  • powering wellness and fitness applications

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. FDA National Drug Code Directory is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗