Data Integration and APIs
August 13, 2026
9 minutes

Pharma Data API for Analytics Teams: A Guide

For analytics and data-science teams, structured European pharma data is best joined on the PZN as the anchor identifier, with the IFA Article Master as the authoritative basis for authorised German products. pharmazie.com, operated by DACON Datenbank Consulting GmbH, consolidates 25+ databases with JSON-by-PZN API and bulk extract, product master and shortages updated daily, prices bi-weekly, deepest for DACH and selected EU markets.

Blog Image
Table of contents
    Summary
    • Start with the join identifier, not the fields: in the German market the anchor is the PZN, mapped to international authorisation identifiers where you work across borders.
    • Type and date every price field: a price without a supply-chain level and a valid-from date is not data, it is a rumour.
    • State geographic scope honestly: structured price data is deepest for DACH and selected additional EU markets, not uniformly all of Europe. Product data spans 50+ countries.
    • Insist on an authoritative master-data basis: for authorised German products that is the IFA Article Master, complemented by the ABDA-Artikelstamm.
    • Require both delivery patterns: bulk extract for the initial load and re-syncs, JSON-by-PZN API for increments, with a documented refresh cadence (master daily, prices bi-weekly).

    If your job is to build a model, a dashboard or a pricing analysis on top of pharmaceutical data, you have probably learned the hard way that "we have the data" and "the data is usable" are two different statements. Most pharma data projects do not fail on the analysis. They fail on ingestion: identifiers that will not join, prices that mean different things in different rows, product images missing exactly where you need them, and a refresh cadence nobody documented.

    This is a practitioner's guide to sourcing European and German pharmaceutical data for analytics and data-science work. It is written for the data engineer, data scientist or market-access analyst who has to get structured pharma data into a pipeline, not for a procurement committee. The focus is on what to insist on, which formats to prefer, and the specific pitfalls that turn a two-week integration into a two-quarter one.

    Start with the identifier, not the fields

    The single most important decision in a pharma data project is which identifier you join on. Get this wrong and every downstream table inherits the error. In the German market that anchor is the PZN (Pharmazentralnummer), the central product number. It is stable, it maps to a specific pack, and it is the key that connects pricing, availability, active-ingredient and shortage records to each other. The identity body behind it, IFA, publishes reference material on the PZN and its relationship to the international IDMP standard, which is worth reading before you design your schema.

    The classic mistake is joining on product name or manufacturer string. Those are not stable, they are not unique across markets, and they will silently drop or duplicate rows. A single reformulation or a change of marketing authorisation holder breaks a name-based join without raising an error. Insist on the following, in order:

    1. A stable product identifier on every record: the PZN in the German context, plus a documented mapping to international authorisation identifiers where you work across borders.
    2. A documented active-ingredient reference, ideally down to substance level, so you can aggregate by molecule rather than by brand.
    3. An explicit valid-from date or version on every price and status field, because a price without a date is not data, it is a rumour.

    When you evaluate a source, ask for a sample payload and try the join yourself before you sign anything. If the identifier does not survive a join against your own reference table, no amount of field richness will rescue the project.

    Know what each price field actually means

    Pricing is where analytics projects quietly go wrong, because a price is not one number. Depending on the field you may be looking at a manufacturer price, a pharmacy purchase price, a pharmacy retail price, or a reimbursement-relevant reference. Mixing them produces analyses that look plausible and are wrong, and the error is hard to spot precisely because the numbers are all in the right order of magnitude.

    Two rules save you. First, treat every price field as typed: label which price it is, at what level of the supply chain it sits, and as of what date it is valid. A column called simply price is a liability. Second, be realistic about geographic scope. Structured, reliable price data is deepest for the German-speaking markets and selected additional EU countries; further countries are being added over the coming months. It is not uniformly available for all of Europe, regardless of what a vendor's landing page implies. Product and drug attribute data, by contrast, reaches a much wider footprint of more than 50 countries, but attribute coverage is not price coverage, and conflating the two is a common briefing error.

    The official picture reinforces why price data fragments at the national border. Prices of publicly reimbursed medicines are set and published country by country. The EURIPID price database collates them, but access is reserved for national pricing and reimbursement authorities, not commercial analytics teams. That is the honest limit: there is no single public API that hands you comparable prices for all of Europe. Build your model around the coverage you actually have, and treat coverage expansion as a roadmap item rather than an assumption baked into your forecasts.

    Product images and master data are part of the dataset

    For catalogue, e-commerce, verification and clinical-safety use cases, product images and full product-master attributes (form, strength, pack size, packaging, storage, authorisation status) are not a nice-to-have. They are the dataset. Three practical questions separate a usable source from a scrape:

    1. Are images delivered by stable identifier, so they join to the same PZN as everything else, rather than by a filename you have to fuzzy-match?
    2. Is the master data sourced from an authoritative basis? For products authorised in Germany that basis is the IFA Article Master, complemented by the ABDA-Artikelstamm and further ABDA data sources.
    3. How granular is the active-ingredient information? Substance-level structured data is what lets you do molecule-level analytics rather than string matching. On pharmazie.com, for example, this takes the form of structured dossiers for 63,589 active and excipient substances, including fields such as antibiotic spectrum and resistances.

    The distinction between an authoritative master and a scraped catalogue is not academic. A consumer price-comparison scrape can look complete and still lack a stable key, a defined price type and a provenance you can defend in an audit. When a regulator, a payer or a safety reviewer asks where a figure came from, "we scraped a pharmacy website" is not an answer. The national authorities remain the system of record for authorisation status; the German BfArM medicinal products portal and the EMA directory of national registers are where authorisation and, in Germany, shortage information originate. A commercial data layer should consolidate and key that information, not replace it.

    Delivery format: API, bulk, or both

    For analytics workloads you generally want two access patterns, and a serious provider supports both:

    1. Bulk or licensed extract for the initial load and for full re-syncs, in a machine-readable format (structured files, not PDFs), so you can build and own your warehouse.
    2. API access for incremental updates and for lookups by identifier, returning JSON keyed on the PZN, so your pipeline can refresh the fields that change without re-ingesting everything.

    A provider that offers only bulk forces you to re-ingest the world to catch a single price change. One that offers only an API makes your initial load and your disaster-recovery re-sync painful. You want both, from the same identifier space, so the increment and the full extract reconcile without a mapping layer between them.

    Refresh cadence matters as much as format. In the DACH context the useful rhythm is: product master, shortage information and news updated daily; price updates on a bi-weekly (14-day) cycle. Document that cadence in your pipeline so downstream consumers know how fresh each field is. A pricing dashboard that renders a 14-day-old figure as if it were live is a misuse of the data, not a limitation of it. For procurement-connected workflows in Germany, the MSV3-Client interface (availability query and digital ordering) is live and in production as a standard add-on module on the buyer side; the seller-side MSV3-Server interface is currently in its pilot phase. MSV3 is a German-specific capability, not an international feature, so scope it accordingly if your pipeline serves markets beyond Germany.

    Which source for which need: a decision table

    Different questions call for different sources, and the honest answer is that no single source covers everything. The table below maps a data need to where you should start, and what a consolidation layer such as pharmazie.com adds on top.

    If you needStart withBest access patternWhat a consolidation layer adds
    Authorisation status, SmPC, national registerNational authority (BfArM, EMA national registers)Official portal or register lookupKeyed to the PZN and joined to price, image and substance data
    German product master, pack attributes, imagesIFA Article Master, ABDA-ArtikelstammBulk extract for load, JSON-by-PZN API for incrementsOne search across 25+ databases, daily-updated master
    DACH price data, typed and datedLicensed DACH price source (deepest coverage)Bulk plus API, bi-weekly cadencePrice fields joined to the same identifier, scope stated honestly
    EU-wide comparable reimbursed pricesEURIPID (authorities only) or national gazettesRestricted, no commercial APISelected EU markets covered, further countries being added
    Substance-level (molecule) analyticsStructured substance dossiersAPI lookup by substance and PZN63,589 substance dossiers with clinical fields
    Shortage and availability signals (DE)BfArM shortage registerRegister plus MSV3-Client availability queryLieferengpass-Datenbank keyed to the PZN, updated daily

    The pattern to notice: the official bodies are the system of record for authorisation and shortage, and they should be. What a commercial layer earns its place doing is consolidation and keying, turning a dozen fragmented sources into one identifier space you can actually query. The EMA services and databases directory is a good reminder of how many separate systems that fragmentation spans.

    A checklist before you sign a data contract

    Before you commit budget or engineering time, run the source against these five criteria. Each one maps to a failure mode we see teams hit after signing, not before.

    1. Identifier. Every record carries a stable identifier (PZN in the DE context) and joins cleanly to price, availability and active-ingredient data. Test the join on a sample before you sign.
    2. Typed, dated prices. Price fields state which price, at what supply-chain level, valid from what date. Scope is stated honestly: deep for DACH and selected EU, not a blanket "all of Europe".
    3. Authoritative master. Master data is sourced from the authoritative basis (the IFA Article Master for authorised German products), and active-ingredient data is available at substance level.
    4. Both delivery patterns. Bulk extract for load and re-sync, plus JSON-by-PZN API for increments, with a documented and contractual refresh cadence.
    5. Images and attributes on the same key. Product images and master attributes are delivered against the same identifier as the rest of the data, and the provenance for authorisation status traces back to an official register such as the IFA PZN and IDMP reference.

    Get these five right and the analysis is the easy part. Get them wrong and no model will save you, because the errors are in the ingestion layer where they are hardest to see and most expensive to unwind.

    Where pharmazie.com fits

    pharmazie.com is a consolidation layer over the official and commercial sources described above, built for teams that need structured pharmaceutical data in a pipeline rather than a single-source lookup. It brings 25+ pharmaceutical databases into one search, keyed on the PZN, with structured substance dossiers, product master and images, and availability data through the Lieferengpass-Datenbank and the live MSV3-Client interface. Delivery is available as both a licensed bulk extract and a JSON-by-PZN API, with the product master and shortage data refreshed daily and prices on a bi-weekly cycle. Price coverage is deepest for DACH and selected additional EU markets, with further countries being added, while product and drug data spans more than 50 countries.

    If you want to see the API and a sample JSON payload keyed on the PZN, a short technical walkthrough is the fastest way to judge whether the identifier, the fields and the cadence fit your pipeline. That is a better test than any landing-page claim, including this one.

    pharmazie.com is operated by DACON Datenbank Consulting GmbH, founded in 1989. It consolidates more than 25 pharmaceutical databases into one search and provides structured, daily-updated product data for pharmaceutical professionals, with data licensing and API access for analytics teams. It is a professional service and is not intended for patients.

    Author Image
    Ursula Tschorn
    Ursula Tschorn is CEO of DACON Datenbank Consulting GmbH and has been building pharmaceutical information infrastructure since 1989. She writes on drug data standards, pricing regulation and market access in the DACH region.

    FAQ

    What identifier should I join German pharma data on?
    What is the authoritative basis for authorised German product data?
    Does European pharma price data cover all of Europe?
    How current is each field in a DACH pharma dataset?
    API or bulk extract for a pharma data pipeline?
    Since 1989, over 1,000 customers have placed their trust in our data.

    The most comprehensive drug database for pharma professionals.