Capability · Pricing & competitive landscape

Pricing and competitors, by country.

Per-country prices plus the full set of products that share an ATC class or substance — the feed behind commercialization-feasibility and market-access work.

GET /api/v1/drugs?atc={code}&country={cc}

What you get

Built for production drug data

Filter the catalogue by ATC class (or active substance) and country to get the marketed competitor set for an indication area, each row carrying its manufacturer, authorisation status and — where a public payer or list price exists — its price.

Public pricing is real where the upstream register publishes it: US (CMS NADAC acquisition cost), Switzerland (BAG-SL public + ex-factory), France (BDPM), Italy (AIFA), and Japan (MHLW NHI). Other jurisdictions return authorisation and market-status fields without a price. Group by atc_code or substance to size a competitive field; join the change feed to track new entrants and de-listings over time.

Competitors

Class & substance roll-up

Every product sharing an ATC code (or active substance) in a market, with manufacturer — the marketed competitor set for an indication area in one query.
Pricing

Per-country prices

US NADAC per-unit acquisition cost, CH BAG-SL public + ex-factory, FR/IT public prices, JP NHI list price — each tagged with currency, unit and effective date.
Market status

On-market vs withdrawn

Marketing start / end dates, authorisation status and reimbursement flags let you separate what is actually on the market from what is only registered.
Over time

New entrants & de-listings

Join the change feed to watch a competitive field move — launches, price changes and withdrawals arrive as diffs you can replay.

Try it

A real call, end to end

Scope by ATC class and country; get the marketed products with manufacturer and, where published, price.

GET /api/v1/drugs?atc=…&country=…
curl 'https://drug-database.com/api/v1/drugs\
?atc=C10AA05&country=US&limit=2' \
  -H 'Authorization: Bearer dd_live_…'
response
{
  "drugs": [
    {
      "id": "9a1f…",
      "product_name": "Atorvastatin Calcium",
      "atc_code": "C10AA05",
      "country_code": "US",
      "manufacturer": "…",
      "price": {
        "basis": "NADAC",
        "value": 0.0423,
        "currency": "USD",
        "unit": "EA",
        "effective_date": "2026-06-24"
      },
      "market_status": "marketed"
    }
  ],
  "_meta": { "atc": "C10AA05", "competitors": 41, "has_more": true }
}

Pricing coverage

  • US — CMS NADAC per-unit acquisition cost, ~204k price points across ~32k NDCs, refreshed weekly.
  • Switzerland — BAG-SL public + ex-factory prices on the Spezialitätenliste.
  • France (BDPM) and Italy (AIFA) — published public prices; Japan (MHLW) — NHI list price.
  • Other jurisdictions return authorisation and market-status fields; ATC/substance grouping works everywhere a code is present.
Good to know
  • · Pricing and competitor data ride the same drugs:read scope — no separate entitlement.
  • · Indication is approximated by ATC class / therapeutic area; exact label indications are not a queryable field.

FAQ

Common questions

US (CMS NADAC acquisition cost), Switzerland (BAG-SL public + ex-factory), France (BDPM), Italy (AIFA) and Japan (MHLW NHI). Other jurisdictions publish authorisation and market-status data but no public price, so those rows carry status fields without a price object.
Filter by the ATC class (or active substance) for that indication area and country: GET /api/v1/drugs?atc={code}&country={cc}. The result is the set of marketed products in that class, each with manufacturer and — where published — price. Group by atc_code or substance to size the field.
It is whatever the public register publishes. US NADAC is a retail acquisition-cost proxy, not a net negotiated price; CH BAG-SL is the public + ex-factory list; FR/IT are public prices; JP is the NHI list price. Each price object names its basis so you never confuse them.
Yes. Rows carry marketing start/end dates, authorisation status and reimbursement flags, so you can filter to products currently marketed rather than merely registered.
Pair this with the change feed: GET /api/v1/changes?since={ts} returns launches, price changes and withdrawals as diffs, so you can keep a competitive landscape current without re-querying the whole class.

Ready when you are

Put pricing & competitors in production this afternoon.

Spin up a key in minutes. The free tier covers prototyping and low-volume production.

Free tier · 100 requests/day · No card required