SummaryDenmark publishes its medicine prices every second Monday, by law, in a format that has not changed in decades and contains a trap that costs a factor of one hundred. The data is behind a small annual fee, the fee is a cost recovery charge rather than a licence, and the terms of the subscription do not exist at all. That last point is not a figure of speech: there is no contract clause, no consent box, nothing.
The Danish medicines agency operates the price publication. The public front end answers single queries, the business portal sits behind a login, and the bulk files come over classic FTP with credentials.
| Property | Value |
|---|---|
| Price level | Pharmacy purchase price, in the original terminology the apotekets indkøbspris |
| Currency | Danish kroner, with all values expressed in øre |
| Rhythm | Every second Monday, prescribed by regulation |
| Format | ASCII, fixed record length, positional, delivered as a ZIP |
| Pack code | The Nordic article number |
| Pack size | Structured |
| Access | Annual fee, bulk over FTP |
Coverage in the sample we parsed: 7,595 records at product level and 11,589 at pack level. It includes human and veterinary medicines subject to pharmacy dispensing, and cannabis products under their own identifier prefix.
The specification states it plainly in the header of the price record: all prices are in øre with leading zeros. Anyone who reads the column as kroner is out by a factor of one hundred on every row.
This does not appear in most secondary descriptions of the Danish source, which is exactly what makes it dangerous. A pipeline built from a summary rather than from the specification will produce prices that look plausible in aggregate reporting and are wrong by two orders of magnitude.
Two further encoding details belong with it. The files are not Latin-1, they are in an older DOS code page, which we confirmed by inspecting the byte values of Danish characters in the sample. And the marker for discontinued products is a date field rather than a text flag, set in 573 of the 11,589 pack records. A parser that looks for a text marker will treat all 573 as active.
The publication rhythm is set in regulation: prices appear every second Monday. Notifications must arrive by 20:00 on the Monday fourteen days before a new two week price period takes effect.
In practice the agency issues change lists on Friday evening, and updated prices are visible by Monday morning at the latest. For a pipeline this is close to ideal, because the schedule is both fixed and legally anchored, so a fetch can be scheduled rather than triggered by polling.
The annual subscription is 2,894.40 Danish kroner excluding tax, roughly 380 euro, and the amount is confirmed in the regulation itself. The previous year it was 2,766.40, so it rises annually. It covers a full calendar year with no refund if a subscription is cancelled part way through.
Three things follow, and they are commercially more interesting than the amount.
It is a cost recovery charge, not a licence fee. The authority earns nothing from it and operates no competing product. That is a very different negotiating position from a private publisher that sells its own database.
There are no subscription terms. No clause, no consent box, nothing. The right to redistribute is therefore neither granted nor prohibited. It is simply unregulated.
The correct move is a written question, not a negotiation. Where terms are silent, the useful step is a precise letter that forces an answer on one point: may the data be redistributed as part of a commercial product after processing. A negotiation assumes there is a position to move. Here there is only a gap to be filled.
The published level is the pharmacy purchase price. Reaching the manufacturer level means removing a distribution margin of 6.5 percent.
That figure does not come from Danish law. It comes from an Austrian price commission regulation used as a substitute assumption, in the version in force from 1 February 2025. The same document sets 3.0 percent for Finland and 2.8 percent for Sweden, and it is explicit that the percentages relate to the pharmacy purchase price.
Two limitations belong with any use of it. The Austrian regulation itself allows companies to demonstrate individual margins that differ, so even in its own procedure the rate is a substitute rather than an exact value. And the figures change: in the 2018 version the Swedish rate was still 2.7 percent.
The practical rules that follow are the same for all three Nordic countries in that regulation. Store the factor with a version and an effective date rather than hard coding it. And label every manufacturer level figure derived this way as an estimate.
Bulk delivery runs over classic FTP with credentials, on port 21, with no secure variant discernible. The file name is constant, the content is ASCII with fixed record lengths, and there is no interface and no open dataset.
Anonymous access is refused, which we confirmed on both the current and the historical host name. There is also a host name trap worth knowing: the address without the www prefix returns HTTP 200 but serves a web server error page rather than the site.
History is buildable from the change lists and the two week full files, but only from the start of your own subscription. No archive of older price periods is publicly documented, so a gap in your own collection is permanent.
| Country | Published level | Access | Manufacturer level |
|---|---|---|---|
| Denmark | Pharmacy purchase price | Annual fee, FTP | Estimate, 6.5 percent |
| Sweden | Pharmacy purchase and retail price | Free bulk download | Estimate, 2.8 percent |
| Finland | Wholesale and consumer price | Free, open interface | Estimate, 3.0 percent |
| Norway | Maximum purchase and selling price | Free bulk file | No factor exists |
Denmark is the only one of the four that charges, and it is also the only one where the charge buys a legally fixed publication rhythm. Sweden and Finland are free but rest on routes that are undocumented or, in Finland's case, unusually good and recent. Norway publishes ceilings rather than prices and has no derivation factor at all.
Read as a group, the Nordics share one property that matters more than their differences: none of them publishes a manufacturer price. Every manufacturer level figure from this region is a derived estimate, and that label belongs in the data model rather than in a footnote.
A reliable, legally fixed rhythm. Few European sources let you schedule a fetch with this confidence.
Clean pack structure. The pack size is present in its own fields, which removes the parsing work that dominates the French and Spanish implementations.
A cheap entry. Roughly 380 euro a year is not a commercial licence, and the absence of a private gatekeeper makes Denmark one of the least politically complicated countries in Europe for a data platform.
What it is not good for is a manufacturer level comparison without caveats, or an assortment view beyond the pharmacy dispensed range.
Denmark is a technically old, legally quiet and operationally reliable source. The rhythm is prescribed by regulation, the fee is small and non commercial, and the pack structure is clean. Against that stand three traps that a summary will not warn you about: prices in øre, a DOS era encoding, and a date field pretending to be a flag. Get those right, ask the redistribution question in writing, and Denmark becomes one of the easier countries in a European price product.
Related reading: European Drug Pricing Database: how cross-border prices work and Pharma pricing Germany: how the system works, plus pharmacy purchase price and wholesale and pharmacy margins.
pharmazie.com is the consolidated pharmaceutical data platform by DACON Datenbank Consulting GmbH that bundles 25+ specialist databases into a single search, exclusively for healthcare professionals. Price coverage focuses on the DACH region and a number of further EU countries, with more countries following in the coming months.
The Danish medicines agency's price publication. It carries the pharmacy purchase price per pack and is republished every second Monday under a regulation that prescribes that rhythm.
2,894.40 Danish kroner excluding tax per year, roughly 380 euro, rising annually. It covers a calendar year with no refund for a part year cancellation.
The pharmacy purchase price, in the original terminology the apotekets indkøbspris. The manufacturer level is not published and can only be estimated.
That is unregulated. There are no subscription terms at all, so the right is neither granted nor prohibited, and the correct step is a precise written question to the authority.
Because all values are stated in øre with leading zeros, as the specification says in the header of the price record. Reading the column as kroner multiplies every figure by one hundred.
By removing a distribution margin of 6.5 percent. That factor comes from an Austrian price commission regulation used as a substitute assumption, so the result is an estimate and should be labelled as one.