Authentication

The NADAC API uses API keys to authenticate requests. Pass your key in the Authorization header of every request. API access requires a Business tier subscription.

API KEYS

Generated from your account settings. Valid until revoked — regenerate any time.

KEY SECURITY

Never expose your key in client-side code or public repos. Regenerate immediately if compromised.

Example

BASH
curl "https://nadacpricing.com/api/v1/drugs?q=aspirin" \ -H "Authorization: Bearer <api_key>"

Manage your API key in Account Settings →

Rate Limits

The API allows 60 requests per minute per API key. Exceeding this returns a 429 response.

200OKRequest succeeded.
400Bad RequestMissing or invalid parameters.
401UnauthorizedMissing or invalid API key.
403ForbiddenValid key but insufficient subscription tier.
404Not FoundResource does not exist.
429Too Many RequestsRate limit exceeded. Wait before retrying.
500Internal Server ErrorSomething went wrong on our end.
GET/api/v1/drugs/:ndc

Get drug

Retrieve full details for a specific drug by its 11-digit NDC code, including FDA registration data and current NADAC price.

Response Fields

data.ndcstring

11-digit National Drug Code.

data.descriptionstring

NADAC drug description.

data.proprietaryNamestring

Brand name (from FDA).

data.nonproprietaryNamestring

Generic name (from FDA).

data.pricenumber | null

Current NADAC price per unit (USD).

data.pricingUnitstring

Unit of measure.

data.classificationstring

B (brand) or G (generic).

data.manufacturerstring

Normalized manufacturer name.

data.dosageFormstring

Dosage form (e.g. TABLET, CAPSULE).

data.routestring

Route of administration.

data.strengthstring

Active ingredient strength.

data.otcboolean

True if over-the-counter.

data.deaSchedulestring | null

DEA controlled substance schedule, if applicable.

data.effectiveDatestring

Date of current NADAC price (ISO 8601).

Request

BASH
curl "https://nadacpricing.com/api/v1/drugs/00363025701" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": { "ndc": "00363025701", "description": "ASPIRIN 325 MG TABLET", "proprietaryName": "Aspirin", "nonproprietaryName": "aspirin", "price": 0.0241, "pricingUnit": "EACH", "classification": "G", "manufacturer": "Walgreens", "dosageForm": "TABLET", "route": "ORAL", "strength": "325", "otc": true, "deaSchedule": null, "effectiveDate": "2024-01-03T00:00:00.000Z" } }
GET/api/v1/drugs/:ndc/price-history

Price history

Returns the full NADAC price history for a drug. Up to 5 years of weekly pricing data. Optionally filter by date range.

Query Parameters

startDate
string

Start of date range (YYYY-MM-DD).

endDate
string

End of date range (YYYY-MM-DD).

Response Fields

data[].datestring

NADAC effective date (ISO 8601).

data[].pricenumber

NADAC price per unit on this date (USD).

data[].pricingUnitstring

Unit of measure.

meta.countinteger

Number of data points returned.

meta.ndcstring

NDC queried.

Request

BASH
curl "https://nadacpricing.com/api/v1/drugs/00363025701/price-history?startDate=2023-01-01" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": [ { "date": "2023-01-04T00:00:00.000Z", "price": 0.0228, "pricingUnit": "EACH" }, { "date": "2023-07-05T00:00:00.000Z", "price": 0.0235, "pricingUnit": "EACH" }, { "date": "2024-01-03T00:00:00.000Z", "price": 0.0241, "pricingUnit": "EACH" } ], "meta": { "count": 3, "ndc": "00363025701" } }
GET/api/v1/drugs/:ndc/alternatives

Alternatives

Returns generic and brand alternatives for a given drug, ranked by match quality and price.

Response Fields

data[].ndcstring

Alternative drug NDC.

data[].descriptionstring

Alternative drug description.

data[].pricenumber

Current NADAC price per unit (USD).

data[].manufacturerstring

Manufacturer name.

data[].dosageFormstring

Dosage form.

data[].classificationstring

B (brand) or G (generic).

data[].matchStrategystring

How the alternative was matched.

data[].matchQualityinteger

Match quality score — lower is better.

meta.countinteger

Number of alternatives returned.

meta.sourceNdcstring

NDC of the source drug.

Request

BASH
curl "https://nadacpricing.com/api/v1/drugs/00363025701/alternatives" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": [ { "ndc": "00904201661", "description": "ASPIRIN 325 MG TABLET", "price": 0.0198, "manufacturer": "Major Pharmaceuticals", "dosageForm": "TABLET", "classification": "G", "matchStrategy": "ingredient", "matchQuality": 1 } ], "meta": { "count": 1, "sourceNdc": "00363025701" } }
GET/api/v1/manufacturers

List manufacturers

Returns a paginated list of drug manufacturers with normalized names.

Query Parameters

limit
integer

Results per page. Default 50, max 500.

offset
integer

Pagination offset. Default 0.

Response Fields

data[].namestring

Canonical manufacturer name.

meta.countinteger

Number of results returned.

meta.limitinteger

Limit applied.

meta.offsetinteger

Offset applied.

Request

BASH
curl "https://nadacpricing.com/api/v1/manufacturers?limit=10" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": [ { "name": "Pfizer" }, { "name": "Teva Pharmaceuticals" } ], "meta": { "count": 2, "limit": 10, "offset": 0 } }
GET/api/v1/manufacturers/:name

Get manufacturer

Returns details for a specific manufacturer, including their drugs and current NADAC prices.

Response Fields

data.namestring

Canonical manufacturer name.

data.drugsarray

Drugs produced by this manufacturer with current prices.

Request

BASH
curl "https://nadacpricing.com/api/v1/manufacturers/Pfizer" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": { "name": "Pfizer", "drugs": [ { "ndc": "00069315001", "description": "LIPITOR 10 MG TABLET", "price": 0.158 } ] } }
GET/api/v1/therapeutic-classes

List therapeutic classes

Returns a paginated list of therapeutic drug classes.

Query Parameters

limit
integer

Results per page. Default 50, max 500.

offset
integer

Pagination offset. Default 0.

Response Fields

data[].namestring

Therapeutic class name.

meta.countinteger

Number of results returned.

Request

BASH
curl "https://nadacpricing.com/api/v1/therapeutic-classes?limit=10" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": [ { "name": "ANTIHYPERTENSIVES" }, { "name": "HMG COA REDUCTASE INHIBITORS" } ], "meta": { "count": 2, "limit": 10, "offset": 0 } }
GET/api/v1/therapeutic-classes/:name

Get therapeutic class

Returns details for a specific therapeutic class, including member drugs and pricing.

Response Fields

data.namestring

Therapeutic class name.

data.drugsarray

Drugs in this therapeutic class with prices.

Request

BASH
curl "https://nadacpricing.com/api/v1/therapeutic-classes/STATINS" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": { "name": "STATINS", "drugs": [ { "ndc": "00069315001", "description": "LIPITOR 10 MG TABLET", "price": 0.158 } ] } }
GET/api/v1/drug-markets

List drug markets

Returns a paginated list of drug market segments.

Query Parameters

limit
integer

Results per page. Default 50, max 500.

offset
integer

Pagination offset. Default 0.

Response Fields

data[].namestring

Drug market name.

meta.countinteger

Number of results returned.

Request

BASH
curl "https://nadacpricing.com/api/v1/drug-markets?limit=10" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": [{ "name": "CARDIOVASCULAR" }], "meta": { "count": 1, "limit": 10, "offset": 0 } }
GET/api/v1/drug-markets/:name

Get drug market

Returns details for a specific drug market segment, including member drugs.

Response Fields

data.namestring

Drug market name.

data.drugsarray

Drugs in this market with prices.

Request

BASH
curl "https://nadacpricing.com/api/v1/drug-markets/CARDIOVASCULAR" \ -H "Authorization: Bearer <api_key>"

Response

JSON
{ "data": { "name": "CARDIOVASCULAR", "drugs": [ { "ndc": "00069315001", "description": "LIPITOR 10 MG TABLET", "price": 0.158 } ] } }

Questions? support@analyticproductions.com