openFDA Drug NDC Directory Scraper
Pricing
from $12.00 / 1,000 result items
openFDA Drug NDC Directory Scraper
Export the National Drug Code (NDC) Directory from openFDA. Search 135k+ marketed products by NDC, brand name, generic name, or manufacturer. Pull product NDC, labeler, dosage form, route, active ingredients, packaging, and pharm class.
Pricing
from $12.00 / 1,000 result items
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share

๐ท๏ธ openFDA Drug NDC Directory Scraper
๐ Export the official FDA National Drug Code directory in seconds. Pull 140,000+ marketed drug products filtered by NDC, brand, generic name, manufacturer, or product type. No login, no daily quota juggling, no schema guesswork.
๐ Last updated: 2026-05-22 ยท ๐ 28 fields per record ยท ๐ 140,000+ products ยท ๐ท๏ธ NDC, RxCUI, UNII ยท ๐ญ thousands of labelers
The openFDA Drug NDC Directory Scraper exports the National Drug Code (NDC) Directory and returns 28 fields per record, including product NDC, brand and generic names, labeler, dosage form, route, active ingredients with strength, packaging, pharmacologic class, and cross-reference identifiers such as RxCUI, UNII, and SPL. The NDC directory is the canonical reference for every drug marketed in the United States.
The catalog covers prescription drugs, over-the-counter drugs, vaccines, bulk ingredients, plasma derivatives, and allergenics. This Actor turns the live directory into a downloadable dataset as CSV, Excel, JSON, or XML in under five minutes. Filtering happens at source, so you skip the paging and field-name spelunking entirely.
| ๐ฏ Target Audience | ๐ก Primary Use Cases |
|---|---|
| Pharmacy IT, healthcare apps, EHR vendors, formulary teams, drug-data engineers, claims-processing teams, telehealth platforms | Drug autocomplete, NDC-to-RxCUI mappings, label lookups, formulary builds, OTC vs Rx classification, dosage and route reference data, claims edits |
๐ What the openFDA Drug NDC Directory Scraper does
Five filtering workflows in a single run:
- ๐ท๏ธ NDC filter. Pull one product by exact NDC code, e.g.
80489-001. - ๐ท๏ธ Brand filter. Restrict to a brand (proprietary) name, e.g. Tylenol, Lipitor.
- ๐ Generic filter. Restrict to a generic (non-proprietary) name, e.g. acetaminophen, atorvastatin.
- ๐ญ Manufacturer filter. Substring match on the labeler or manufacturer company name.
- ๐๏ธ Product-type filter. Prescription drug, OTC drug, vaccine, bulk ingredient, plasma derivative, cellular therapy, or allergenic.
Each record includes the product NDC and ID, brand name (and brand-name base), generic name, labeler and manufacturer, dosage form, route, marketing category, application number, active ingredients with strength, packaging breakdown, pharmacologic class (broad + EPC + PE), and RxCUI / UNII / NUI cross-reference codes.
๐ก Why it matters: clean NDC reference data is the foundation of every safe prescribing workflow. Building your own parser means handling the directory format, ingredient strength parsing, and packaging hierarchies. This Actor skips that work and keeps the dataset fresh on every run.
๐ฌ Full Demo
๐ง Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded NDC directory feed.
โ๏ธ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
maxItems | integer | 10 | Records to return. Free plan caps at 10, paid plan at 1,000,000. |
productNdc | string | "" | Exact product NDC, e.g. 80489-001. |
brandName | string | "" | Brand (proprietary) name, e.g. Tylenol. |
genericName | string | "" | Generic (non-proprietary) name, e.g. acetaminophen. |
manufacturer | string | "" | Manufacturer or labeler company (substring). |
productType | string | "" | One of 8 FDA product types. Empty = any. |
Example: 200 OTC products from Johnson & Johnson.
{"maxItems": 200,"manufacturer": "Johnson","productType": "HUMAN OTC DRUG"}
Example: every Lipitor formulation.
{"maxItems": 100,"brandName": "Lipitor"}
โ ๏ธ Good to Know: the NDC directory is the listing source, not a real-time inventory. A product appearing here means the labeler reported it to the FDA, but it may or may not be in active distribution.
๐ Output
Each NDC record contains 28 fields. Download the dataset as CSV, Excel, JSON, or XML.
๐งพ Schema
| Field | Type | Example |
|---|---|---|
๐ productNdc | string | "50580-449" |
๐ productId | string | "50580-449_a1b2c3d4-..." |
๐ท๏ธ brandName | string | "TYLENOL EXTRA STRENGTH" |
๐ท๏ธ brandNameBase | string | "TYLENOL" |
๐ genericName | string | "ACETAMINOPHEN" |
๐ญ labelerName | string | "Johnson & Johnson Consumer Inc." |
๐ญ manufacturerName | array | null | ["Johnson & Johnson Consumer Inc."] |
๐๏ธ productType | string | "HUMAN OTC DRUG" |
๐ dosageForm | string | "TABLET" |
๐ช route | array | ["ORAL"] |
๐๏ธ marketingCategory | string | "OTC monograph not final" |
๐ข applicationNumber | string | null | "part343" |
๐งช activeIngredients | array | [{"name": "ACETAMINOPHEN", "strength": "500 mg/1"}] |
๐ pharmClass | array | null | ["Anti-inflammatory Agents, Non-Steroidal [Chemical/Ingredient]"] |
๐ pharmClassEpc | array | null | [] |
๐ pharmClassPe | array | null | [] |
๐ฆ packaging | array | [{"package_ndc": "50580-449-30", "description": "30 in 1 BOTTLE"}] |
๐
marketingStartDate | string | "20100401" |
๐
listingExpirationDate | string | null | "20261231" |
๐ splId | string | "a1b2c3d4-..." |
๐ splSetId | string | "e5f6g7h8-..." |
๐ rxcui | array | null | ["198440"] |
๐ unii | array | null | ["362O9ITL9D"] |
๐ nui | array | null | ["N0000175722"] |
โ
finished | boolean | true |
๐ scrapedAt | ISO 8601 | "2026-05-22T00:00:00.000Z" |
โ ๏ธ error | string | null | null |
๐ฆ Sample records
โจ Why choose this Actor
| Capability | |
|---|---|
| ๐ท๏ธ | Full NDC catalog. 140,000+ marketed drug products with brand, generic, and labeler metadata. |
| ๐ฏ | Multi-dimensional filtering. NDC, brand, generic, manufacturer, and product type compose freely in one run. |
| ๐ | Cross-reference codes. RxCUI, UNII, NUI, SPL on every record for joins with formularies and clinical knowledge bases. |
| ๐งช | Active ingredients with strength. Ready for dosage-checking and DDI workflows. |
| โก | Fast. 10 products in under 5 seconds, 10,000 in under five minutes. |
| ๐ | Always fresh. Every run pulls the live directory published by the FDA. |
| ๐ซ | No authentication. Works with the public openFDA dataset. No token or quota required from you. |
๐ NDC reference data is the foundation of every modern e-prescribing, claims, and formulary system.
๐ How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| โญ openFDA Drug NDC Directory Scraper (this Actor) | $5 free credit, then pay-per-use | 140,000+ products | Live per run | NDC, brand, generic, manufacturer, type | โก 2 min |
| Commercial drug-data subscriptions | $50k+/year per seat | Curated, scored | Daily | Many | โณ Weeks |
| Manual quarterly NDC downloads | Free | Bulk only | Quarterly | Local parsing | ๐ข Days |
| Building your own ingestion | Engineering cost | Brittle | Breaks on schema drift | Custom | ๐ Weeks |
Pick this Actor when you want clean structured NDC records, server-side filters, and zero pipeline maintenance.
๐ How to use
- ๐ Sign up. Create a free account with $5 credit (takes 2 minutes).
- ๐ Open the Actor. Go to the openFDA Drug NDC Directory Scraper page on the Apify Store.
- ๐ฏ Set input. Pick an NDC, brand, generic, manufacturer, or product type, and set
maxItems. - ๐ Run it. Click Start and let the Actor collect your data.
- ๐ฅ Download. Grab your results in the Dataset tab as CSV, Excel, JSON, or XML.
โฑ๏ธ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.
๐ผ Business use cases
๐ Automating openFDA Drug NDC Directory Scraper
Control the scraper programmatically for scheduled runs and pipeline integrations:
- ๐ข Node.js. Install the
apify-clientNPM package. - ๐ Python. Use the
apify-clientPyPI package. - ๐ See the Apify API documentation for full details.
The Apify Schedules feature lets you trigger this Actor on any cron interval. Weekly or monthly refreshes keep downstream formularies in sync automatically.
๐ Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
๐ค Ask an AI assistant about this scraper
Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:
- ๐ฌ ChatGPT
- ๐ง Claude
- ๐ Perplexity
- ๐ Copilot
โ Frequently Asked Questions
๐งฉ How does it work?
Set an NDC, brand, generic, manufacturer, or product type in the input form, click Start, and the Actor queries the official FDA drug catalog and emits a clean structured record per product. No browser automation, no captchas, no setup.
๐ How accurate is the data?
The dataset is sourced directly from the FDA NDC Directory and reflects what labelers have submitted. Listings can drift if a product is discontinued without an immediate update, so use the listingExpirationDate field as a freshness check.
๐ How often is the dataset refreshed?
The FDA refreshes the directory on an ongoing basis. Every run of this Actor fetches the latest data, so your output reflects current records as of run time.
๐ What cross-reference identifiers are included?
RxCUI (RxNorm), UNII (substance), NUI (NDF-RT pharmacologic class), SPL set ID, and the FDA application number when available.
๐ Are vaccines and biologics included?
Yes. Set productType to VACCINE, PLASMA DERIVATIVE, or CELLULAR THERAPY to scope the result set.
โฐ Can I schedule regular runs?
Yes. Use Apify Schedules to run this Actor on any cron interval (weekly, monthly) and keep a downstream formulary in sync.
โ๏ธ Is this data legal to use?
Yes. The NDC Directory is published by the U.S. FDA under a permissive open-data policy. Review downstream regulatory requirements for your specific use case.
๐ผ Can I use this data commercially?
Yes. Open FDA records are publicly available for commercial reuse. You are responsible for any downstream regulatory or labeling obligations.
๐ณ Do I need a paid Apify plan to use this Actor?
No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.
๐ What happens if a run fails or gets interrupted?
Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.
๐ What if I need help?
Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.
๐ Integrate with any app
openFDA Drug NDC Directory Scraper connects to any cloud service via Apify integrations:
- Make - Automate multi-step workflows
- Zapier - Connect with 5,000+ apps
- Slack - Get run notifications in your channels
- Airbyte - Pipe NDC data into your warehouse
- GitHub - Trigger runs from commits and releases
- Google Drive - Export datasets straight to Sheets
You can also use webhooks to trigger downstream actions when a run finishes. Push fresh NDC data into your e-prescribing system, or alert your team in Slack on new launches.
๐ Recommended Actors
- ๐ openFDA Drug Adverse Events Scraper - FAERS post-market safety reports
- ๐ Drugs@FDA Approvals Scraper - NDA, ANDA, and BLA approval records
- ๐ฅ openFDA Medical Device Events Scraper - MAUDE post-market device adverse events
- ๐งช ClinicalTrials.gov Scraper - Clinical trial registrations and results
- ๐ฉบ Florida MQA License Scraper - U.S. healthcare practitioner license records
๐ก Pro Tip: browse the complete ParseForge collection for more healthcare and life-sciences scrapers.
๐ Need Help? Open our contact form to request a new scraper, propose a custom data project, or report an issue.
โ ๏ธ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Food and Drug Administration. All trademarks mentioned are the property of their respective owners. Only publicly available openFDA records are collected.