HealthCodesAPI

Sources & methodology

Where this data comes from

Everything this API serves is derived from publicly published Belgian healthcare nomenclature reference data. Nothing is invented, and nothing is computed.

Provider
RIZIV/INAMI
Source application date
2026-09-01
Last successful synchronisation
2026-09-22 10:33:00
Codes currently served
31,231
Source file
TXT.zip
Archive checksum
303f1ed75818d8a5…

The pipeline

  1. 1Official publication
    RIZIV/INAMI publishes the NomenSoft reference tables as ZIP archives — 46 pipe-delimited tables, roughly 912 MB unpacked.
  2. 2Retrieval and checksum
    We fetch the archive and hash it. The site's own last-modified header is a constant 2018 timestamp on every file, so the content hash is the only reliable way to tell whether a publication is new. Every archive we download is retained, byte for byte, keyed by hash.
  3. 3Parsing
    windows-1252 into UTF-8; European decimals into exact decimal values; the 31-12-2999 open-ended marker into null; and records that span two physical lines rejoined, because the format has no quoting and some text fields contain a newline.
  4. 4Validation
    Row counts are checked against floors before anything is published. An archive that unzips but is truncated is rejected rather than allowed to replace a good dataset.
  5. 5Normalisation and versioning
    Each fact is stored with the period it applies to. Nothing is overwritten: a tariff moving from €32.84 to €33.74 is a period that ended and a period that began.
  6. 6Change detection
    Transitions are read out of the validity windows the source itself publishes, and imports are diffed against each other to catch corrections made without moving a window.
  7. 7Indexing and serving
    Dutch and French are indexed separately with their own language rules, and the result is served over /v1 with the source publication named on every response.

How fresh the data is

We check the source every day and publish a new import whenever the archive's checksum changes and the result validates. The source publishes on no fixed schedule: between February and September 2026 it published 16 update archives, with gaps ranging from two days to seven weeks.

We therefore make a promise about our polling, not about theirs. /v1/source-status reports the application date of the publication you are reading and when we last synchronised, so you never have to take freshness on trust.

Historical depth

The source keeps its update archive for five months, then removes older files. Anything not captured within that window is gone. We mirror every archived update as it appears, which is why the history available here can outlast what the source still offers.

What we do not do

  • We do not compute amounts. The nomenclature uses a key-letter system where a tariff is nominally a coefficient times a letter value. That reproduces the published figure for 9,609 codes and fails for 1,352 of them. So we serve published amounts only, and expose the key letters as metadata.
  • We do not interpret zero as free. 28% of published amounts are exactly €0.00, and what that means depends on the fee code it belongs to.
  • We do not translate. Dutch and French descriptions are reproduced as published.
  • We do not decide entitlement. This service creates no medical rules, determines no reimbursement rights, and replaces no official publication.

Official sources

Independence

HealthCodes API is an independent developer service and is not affiliated with or endorsed by RIZIV/INAMI. Official publications remain authoritative.

HealthCodes API is a developer convenience layer over public reference data. Where this service and an official publication disagree, the official publication is correct, and we would like to hear about it.