SummaryA pharmaceutical data API is a machine-readable interface that delivers structured medicinal product data, prices, package identifiers, product information texts and supply status, on demand and per query, directly into another system. Unlike a flat-file or database dump, it returns only the records you ask for, at the moment you ask, so the answer reflects the current state of the source rather than the state at the last import.
The distinction matters more in pharmacy and pharmaceutical trade than in almost any other data domain, because the underlying facts change on different clocks. A price can change twice a month. A shortage notification can appear this morning. A summary of product characteristics may be revised once in three years. A single nightly dump treats all of these as one refresh cycle, and every consumer of that dump inherits the slowest clock in it.
Note the ambiguity in the term itself: in pharmaceutical contexts, API also means active pharmaceutical ingredient. This article is about application programming interfaces for drug data.
An API changes three things: latency, granularity and the ownership of the data pipeline. A flat file, whether CSV, fixed-width or a full relational dump, requires you to receive it, validate it, stage it, transform it and load it before anyone can query it, and to repeat that on every delivery. Everything in that chain is your operational risk.
| Dimension | Flat file or database dump | API |
|---|---|---|
| Freshness | As of the last successful import | As of the request |
| Volume moved | Full or delta set, regardless of use | Only the records queried |
| Storage on your side | Full mirror required | Optional cache only |
| Failure mode | Silent staleness after a failed load | Visible error on the call |
| Typical licence form | Raw data licence | Interface access, sometimes seat or query based |
| Best suited to | Analytics, reporting, bulk reconciliation | Transactional lookups, live checks, user-facing search |
Neither model is superior in the abstract. Bulk analytics over the whole German market is a poor fit for record-by-record calls, and a live availability check at the point of dispensing is a poor fit for last night's export. Most serious integrations end up using both: a periodic bulk load for the stable master data, and API calls for the fields that move.
The integration targets are narrower and more predictable than the general "healthcare API" literature suggests. In the DACH market, the recurring ones are:
Each of these has a different tolerance for latency and a different definition of "complete". A warehouse system that misses a discontinued pack causes a picking error. A shop system that misses one causes a customer complaint. A hospital pharmacy system that misses one causes a therapy substitution problem. The evaluation criteria should follow from which of these you are building.
"We do not want large volumes of data sitting in our portal. We would rather call an API against a service that is current." Managing director at an IT service provider for the pharmaceutical sector (translated from German)
That sentiment recurs across integration conversations, and it is worth reading carefully. The objection is not to the data volume as such. It is to owning a copy that silently ages.
Coverage is the first filter, and it has three axes that are usually conflated. Territorial coverage is which markets are represented. Layer coverage is how many data layers exist per product: article master, pricing, reimbursement status, product information texts, patient leaflets, ingredients, ATC classification, shortage status, interactions. Depth coverage is how far back and how far down each layer goes.
A provider can be excellent on one axis and thin on another. Several widely used open sources are strong on one national market and one layer: openFDA and RxNorm from the US National Library of Medicine and FDA ecosystem are authoritative for US products and identifiers, and offer nothing for German PZN-based dispensing. Conversely, a national article master covers dispensing perfectly and stops at the border, which is exactly the wrong shape for parallel import, cross-border sourcing or an EU-wide shortage response.
For pharmazie.com, the scope is 25+ databases in one interface, covering 50,000+ German products and 120,000+ international products across 50+ countries, which is the most complete single answer available for cross-border and cross-layer questions in DACH. For a purely domestic, single-layer use case, that breadth may be more than you need, and you should say so during evaluation rather than pay for reach you will not call.
"Daily updates" is close to meaningless as a single claim, because different layers have different natural frequencies and different providers refresh them independently. The correct question is a matrix, not a number.
| Data layer | Natural change frequency | Cadence at pharmazie.com |
|---|---|---|
| German prices | Fixed change dates per month | Twice monthly, with history back to market launch |
| Supply shortage notifications (Germany) | Continuous | Daily, integrated from the BfArM register |
| Austrian and Swiss data | Monthly regulatory cycles | Monthly |
| Wider EU product data | Rolling national publications | Weekly |
| Product information texts | On variation approval, irregular | On publication by the authority |
Two practical tests. First, ask the provider for the timestamp semantics: does the record carry the time it was fetched from the authority, or the time it was loaded into the provider's store, or the effective date of the change? These are three different fields and integrators regularly conflate them. Second, pick a change you can independently verify, a recent shortage notification in the BfArM shortage register is ideal, and check how long it took to appear in the API. That single measurement tells you more than any SLA document.
Most failed pharmaceutical data integrations fail at the join, not at the transport. Your system already has a master data record for a product. The API returns a record for a product. Whether those are the same product is an identifier question.
Before signing anything, run a matching test: take 500 real records from your own master data, call the API, and count exact matches, ambiguous matches and misses. A provider that will not support this test during evaluation is telling you something.
Every commercial pharmaceutical data API draws a line between interface access, which is the right to query the service for operational use, and a raw data licence, which is the right to hold and redistribute a substantive copy of the data set. The line is usually drawn as a volume threshold, and where exactly it sits is a commercial fact you should establish early rather than discover in month four.
At pharmazie.com the threshold is explicit: exports up to 5,000 PZN per call fall under normal interface access, and beyond that a raw data licence applies. The value of an explicit number is not that it is generous or strict, it is that you can design against it. An undefined "reasonable use" clause cannot be designed against.
Related questions worth resolving in writing:
Pharmaceutical data is moving from document-shaped to structure-shaped, and integration decisions taken now should assume that direction. Three currents matter.
FHIR as the transport and model. HL7 FHIR defines MedicinalProductDefinition and related resources specifically for regulated medicinal product data, and German telematics infrastructure builds on FHIR profiles for both the electronic patient record and E-Rezept, as specified by gematik. An API that can answer in FHIR-shaped resources reduces the mapping layer you would otherwise maintain.
ISO IDMP. The EMA implementation programme is progressively making PhPID and the associated substance, product and organisation identifiers the regulatory backbone across the EU. Systems that carry only national package identifiers will need a bridge to that layer.
Electronic product information. The move from PDF summaries of product characteristics toward structured, machine-readable product information is what turns product texts from an attachment into a queryable field. Any evaluation should ask what a provider returns today for product information: a link, a blob of text, or structured sections.
Six recur often enough to plan for:
Answer those eight and the technical integration becomes an engineering task with a known shape. Skip them and the integration becomes a discovery process at production scale, which is considerably more expensive.
This content is intended for healthcare professionals and does not constitute medical advice. Last reviewed: July 2026.
A pharmaceutical data API is a machine-readable interface that returns structured medicinal product data on demand, including article master data, prices, package identifiers, product information texts, classification and supply status. It differs from a data dump in that it answers individual queries against the current state of the source rather than delivering a full copy on a fixed schedule. It is typically consumed by pharmacy software, hospital systems, wholesale ERP and e-commerce platforms.
Update cadence should be assessed per data type, because layers change on different clocks. German prices follow fixed monthly change dates and are updated twice monthly at pharmazie.com with history back to market launch. Shortage notifications change continuously and are integrated daily from the BfArM register. Austrian and Swiss data follow monthly regulatory cycles, wider EU data is refreshed weekly, and product information texts update when an authority publishes a variation.
Interface access is the right to query a service for operational use, while a raw data licence is the right to hold and redistribute a substantive copy of the data set. Providers usually draw the line at a volume threshold. At pharmazie.com, exports up to 5,000 PZN per call fall under interface access, and larger extractions require a raw data licence. Establish the exact threshold before you design your integration, because an undefined reasonable-use clause cannot be designed against.
The integration work usually sits on the ERP side rather than the API side. Map your existing master data to the API's identifiers first, run a join test on several hundred real records, then decide which fields you cache and which you call live. Prices and shortage status generally need live or near-live calls with a validity window, while stable master data can be loaded in bulk. Monitor data age as well as HTTP errors, because a failed refresh keeps answering, just wrongly.
At minimum a drug data API should support the national package identifier, the trade item identifier and a cross-border product identifier. In the DACH market that means PZN for German packages, EAN or GTIN for trade items already held in warehouse and shop systems, and PhPID under ISO IDMP for identifying the pharmaceutical product independently of packaging and country. ATC codes are useful for finding therapeutic alternatives but should never be used as a join key.
Free drug database APIs such as openFDA and RxNorm are authoritative for United States products and identifiers but do not cover European dispensing, pricing or reimbursement data. They contain no PZN, no German price logic and no national shortage registers, so they cannot support pharmacy, wholesale or hospital workflows in the DACH market. They remain useful for research, ingredient-level reference work and any application whose scope is genuinely US-centric.