CPDAPN API
Funded and leased business pricing for PBMs and commercial payers. Returns the CPDAPN price list for integrators operating under a funded network arrangement with Cost Plus Drugs.
Overview
CPDAPN (Cost Plus Drugs Access Pharmacy Network) is the funded / leased business channel for PBMs and commercial payers. Unlike CPD (mail order) and TCC (unfunded retail), CPDAPN pricing is structured for funded benefit plan arrangements.
CPDAPN channel data lives in the cpdapn_channel field on each PriceListEntry. This field is null for items not available on the CPDAPN channel.
GET /pricelist/cpdapn
Returns the full CPDAPN price list. Only cpdapn_channel is populated on each entry; cpd_channel and tcc_channel are omitted.
Supports the exclude_fields and treatment_category parameters. See Exclude Fields and Treatment Category Filter.
curl -s https://api.costplusdrugs.com/pricelist/cpdapn
GET /pricelist/cpdapn/search
Search the CPDAPN price list by NDC, GPI, or term. Returns only entries with a cpdapn_channel. Supports the same parameters as /pricelist/search, including address for nearby funded-network pharmacy lookup.
curl -sG https://api.costplusdrugs.com/pricelist/cpdapn/search \ -d ndc=67877-0511-10 \ --data-urlencode "address=233 S Wacker Dr, Chicago, IL 60606"
cpdapn_channel.pharmacies is populated with nearby funded-network pharmacies (distinct from TCC unfunded pharmacies): the nearest 20 per drug entry within the search radius (default 30 miles, max 100). The funded network includes chains that are not part of TCC, such as Walgreens.
Schema: CPDAPN Channel
The cpdapn_channel object returned on each PriceListEntry. Structurally identical to the TCC channel except there is no admin_fee and sample_pack_price_w_dispensing is calculated without it. All monetary values are in USD.
| Field | Type | Description |
|---|---|---|
| price_per_unit | string | USD per unit inclusive of CPD markup, formatted to 5 decimal places (e.g., "0.06667"). Use as the ingredient cost basis for PBM adjudication. |
| pharmacy_dispensing_fee | number | Standard CPDAPN dispensing fee (USD). May vary by chain — see pharmacies[].pharmacy_dispensing_fee for chain-specific values. |
| currency | "USD" | Always "USD". |
| sample_pack_price | number | price_per_unit × pack_size × ndc_count |
| sample_pack_price_w_dispensing | number | sample_pack_price + pharmacy_dispensing_fee — no admin fee, unlike the TCC channel. |
| pharmacies | Pharmacy[] | omitted | Nearby funded-network pharmacies. Present only when address is provided to a search endpoint. The nearest 20 within the search radius, sorted by ascending distance. See Pharmacy schema. |
Base Schema: PriceListEntry
The CPDAPN channel is returned alongside the standard PriceListEntry base fields. See the full PriceListEntry schema on the Overview page for all base fields including equivalent_ndcs, medication_name, strength, and more.
Key fields relevant to CPDAPN integrators:
| Field | Type | Description |
|---|---|---|
| external_sku | string | Stable external product identifier for cross-referencing. |
| equivalent_ndcs | string[] | All NDCs for which a generic equivalent can be provided. Used for claim matching without DAW=1. |
| pack_size | number | NDC package size. Basis for quantity dispensed calculations. |
| splittable | boolean | Whether the pharmacy can dispense partial pack sizes. |
| cpdapn_channel | object | null | CPDAPN pricing. null if this drug is not available on the funded network. |
Example: CPDAPN Response
Sample PriceListEntry as returned from /pricelist/cpdapn/search?ndc=67877-0511-10 (Atorvastatin 10mg). equivalent_ndcs is shortened here.
{
"external_sku": "d0b9ba0ae3ab9143200cfbce6ecb7a6a",
"medication_name": "Atorvastatin",
"brand_generic": "Generic",
"form": "Tablet",
"strength": "10mg",
"treatment_categories": ["Heart Health", "High Cholesterol"],
"brand_name": "Lipitor",
"pack_size": 1000,
"quantity": 1,
"splittable": true,
"unit": "ea",
"equivalent_ndcs": ["67877-0511-10", "00904-6290-61", "68084-0097-01"],
"rxnorm_id": "617312",
"special_handling": null,
"sample_pack_size": 30,
"sample_volume": "30 count",
"cpdapn_channel": {
"price_per_unit": "0.01090",
"pharmacy_dispensing_fee": 12,
"currency": "USD",
"sample_pack_price": 0.33,
"sample_pack_price_w_dispensing": 12.33
}
}
Example: With Nearby Pharmacies
Same drug when an address is provided to /pricelist/cpdapn/search. Funded-network results include chains that are not part of TCC, such as Walgreens, which carries its own dispensing fee. The first 2 of 20 pharmacies are shown.
curl -sG https://api.costplusdrugs.com/pricelist/cpdapn/search \ -d ndc=67877-0511-10 \ --data-urlencode "address=233 S Wacker Dr, Chicago, IL 60606"
"cpdapn_channel": { "price_per_unit": "0.01090", "pharmacy_dispensing_fee": 12, "currency": "USD", "sample_pack_price": 0.33, "sample_pack_price_w_dispensing": 12.33, "pharmacies": [ { "name": "WALGREENS #2432", "address": "200 W ADAMS ST, CHICAGO, IL, 60606-5208", "address_obj": { "line": "200 W ADAMS ST", "line2": "", "city": "CHICAGO", "state": "IL", "postal_code": "60606-5208" }, "distance": "0.12", "pharmacy_dispensing_fee": 13.05, "chain": "WAG", "chain_code": "226", "phone_number": null, "npi": "1457366775", "effective_date": "2025-02-02 00:00:00", "sample_pack_price_w_dispensing": 14.38 }, { "name": "Printer's Row Pharmacy", "address": "701 South Clark Street, Chicago, IL, 60605", "address_obj": { "line": "701 South Clark Street", "line2": "", "city": "Chicago", "state": "IL", "postal_code": "60605" }, "distance": "0.45", "pharmacy_dispensing_fee": 12, "chain": "Independent", "chain_code": null, "phone_number": "773-200-2616", "npi": "1992551188", "effective_date": "2024-12-02 00:00:00", "sample_pack_price_w_dispensing": 13.33 } ] }
pharmacies[].sample_pack_price_w_dispensing — not cpdapn_channel.sample_pack_price_w_dispensing — for pharmacy-specific pricing. In this example the Walgreens total is $14.38 versus the $12.33 standard.
Quick Reference
curl -s https://api.costplusdrugs.com/pricelist/cpdapn
curl -s "https://api.costplusdrugs.com/pricelist/cpdapn/search?ndc=67877-0511-10"
curl -s "https://api.costplusdrugs.com/pricelist/cpdapn/search?ndc=67877-0511-10&no_substitutions=true"
curl -s "https://api.costplusdrugs.com/pricelist/cpdapn/search?term=atorvastatin"
curl -s "https://api.costplusdrugs.com/pharmacies/cpdapn?address=60606&distance=25"