SummaryNorway is the only country in our European review that delivers the price, the national article number and a GTIN in a single openly licensed file. That combination removes the two most expensive problems in cross-border pharmaceutical data at once. What Norway does not give you is a manufacturer price, and unlike its neighbours it does not even offer a substitute factor to derive one.
The national directorate for medical products maintains two routes, and they behave very differently.
| Property | Price spreadsheet | The structured full dataset |
|---|---|---|
| Content | Pack prices | Complete prescribing and dispensing data |
| Price levels | Maximum purchase price, maximum retail price | Stepped price and reimbursement price as well |
| Format | Spreadsheet | XML inside a ZIP |
| Rhythm | Frequent, exact cadence not documented | Updated before the 1st and the 15th of each month |
| Link | Carries the date, must be parsed from the page | Constant URL |
| Volume | 9,811 pack rows | 10,802 pack records |
| Licence | Open licence of the Norwegian state | Same |
We downloaded the structured dataset on 5 September 2026 at HTTP 200 and 14,448,042 bytes, containing a single XML file of 117,503,607 bytes.
Norway sets maximum prices. The published figures are the maximum pharmacy purchase price and the maximum pharmacy retail price, alongside a stepped price for generics and a reimbursement price.
Anyone delivering those as the Norwegian price is delivering an upper bound. That belongs on the label, not in a methodology appendix, because the difference between a ceiling and a transaction is exactly what a procurement or sourcing decision turns on.
The stepped price deserves its own note. It is a mechanism that reduces the permitted price of a generic in defined steps after competition enters, so a stepped price and a maximum price for the same product describe two different regulatory states. Keep them as separate fields.
In most European price sources the identifier problem dominates the implementation: the price file carries a national code, the authorisation register carries something else, and the join runs on fuzzy matching with a documented error rate. Ireland is the extreme case, France solves it because its national code happens to be a valid GTIN, and Belgium solves it with a structured quantity field.
Norway simply publishes both. The national article number, the GTIN and a structured pack size come from the same open source, with the prices. That makes Norway the cheapest country in Europe to integrate at pack level, and it is worth using early in a build for exactly that reason: it gives the pipeline a reference case where identification is not in doubt.
A Norwegian record can carry four figures, and each answers something distinct.
A dataset that stores only one of them loses the ability to answer the other three questions, and the choice of which one to keep quietly decides what the data can be used for later. Keeping all four costs three extra columns and preserves every use case.
For a cross-country comparison, the maximum pharmacy purchase price is usually the right member of that set, because it is the level closest to the wholesale figures that other countries publish. Even then it is a ceiling being compared against, in some countries, an actual regulated price.
The price spreadsheet is addressed through a URL that carries an asset folder identifier and the date of the day. We tested the same address with four earlier dates and each returned HTTP 404, served with a large error page rather than a clean status. The link therefore has to be read from the page each time.
The structured dataset is the opposite: a constant URL, no parameters, no session, no parsing. Five extracts are offered, of which several are openly retrievable.
The practical design follows from that asymmetry. Build the pipeline on the constant URL and treat the spreadsheet as a supplementary source, fetched by parsing the page when a specific price view is needed.
Since 30 August 2023, two of the extracts are no longer available for open download. The recipient must hold a certificate for identification, because those extracts contain confidential content.
That is a useful reminder for anyone assuming that an open data regime covers everything a national authority produces. It usually covers a defined set, and adjacent datasets can carry different conditions. Where a project depends on one of the restricted extracts, the certificate requirement is a lead time item, not a technical detail.
Every other Nordic country in our review has a substitute factor for the step from the pharmacy purchase price down to the manufacturer level: 6.5 percent for Denmark, 3.0 percent for Finland, 2.8 percent for Sweden. Those come from an Austrian price commission regulation that applies expressly to EU member states.
Norway is not an EU member and does not appear in it. There is therefore no factor at all, not even a questionable one.
Two honest options follow. Publish Norway at the level it actually provides, the maximum pharmacy purchase price, and say so. Or establish a Norwegian specific factor from a Norwegian legal basis, which is open work rather than a lookup.
The wrong option, which is easy to fall into, is to borrow a neighbouring country's factor because the markets look similar. That produces a figure with no legal basis in any jurisdiction, and it will be indistinguishable from a real derivation once it is in a database.
The structured dataset unpacks to an XML file of roughly 117 megabytes for about 10,800 pack records. That is not large by database standards, but it is large enough that a naive parser which loads the whole document into memory will behave badly on a small server, and that a full reload every fourteen days is wasteful when little has changed.
The two practical measures are streaming rather than loading, and keeping the previous extract so that a comparison can identify what actually moved. The second one also produces the change history that the source itself does not provide at that granularity.
The directorate links a price history overview covering pack prices since 2020, updated twice a year by its own account, alongside a document with prices reaching back to 2004.
Among the countries we examined, that is one of the stronger historical offerings, though it is a periodic overview rather than a reloadable monthly series. Finland remains the only country where a full monthly archive can be reconstructed at will.
A reference case for identification. Price, national code, GTIN and pack size from one open file.
Reference pricing analysis. Norway is a member of the Dutch maximum price basket, so its published levels feed directly into a statutory calculation in another market.
Cross-border sourcing views, where a maximum purchase price is a usable ceiling even when the transaction price is unknown.
What it is not good for is any comparison that requires a manufacturer level figure, unless that limitation is stated in the same line as the number.
Norway solves the hardest part of European pharmaceutical data almost by accident: identification. Price, article number, GTIN and pack size arrive together under an open licence through a constant URL. The limitation is at the other end of the chain. The published figures are legal ceilings rather than transactions, and there is no accepted route from them to a manufacturer price. Publish what Norway publishes, name the level, and resist the temptation to import a factor from across the border.
Related reading: European Drug Pricing Database: how cross-border prices work and Pharma pricing Germany: how the system works, plus pharmacy purchase price and external reference pricing in Europe.
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.
With the national directorate for medical products, in a dated price spreadsheet and in a structured full dataset delivered as XML inside a ZIP under an open Norwegian state licence.
Yes. The national article number, the GTIN and a structured pack size come from the same open source as the prices, which makes Norway the cheapest European country to integrate at pack level.
The maximum pharmacy purchase price, the highest price a Norwegian pharmacy may pay. It is a ceiling set by the authority rather than a transaction price.
There is no accepted route. The regulation that supplies the Danish, Finnish and Swedish factors applies expressly to EU member states and does not cover Norway, so publish the maximum pharmacy purchase price and label it.
A reduced ceiling that applies to generics once competition has entered a market, stepping down over defined periods. It describes a different regulatory state from the ordinary maximum price.
The structured dataset is updated before the 1st and the 15th of each month. The price spreadsheet appears more frequently, and its exact cadence is not documented.