HealthCodesAPI

Belgian healthcare data API

Belgian healthcare codes and tariffs.
Built for developers.

Codes, tariffs, reimbursements and everything they used to be. One REST API, Dutch and French, updated daily.

GET https://api.healthcodesapi.be/v1/codes/101076
200 OKapplication/json
{
  "code": "101076",
  "description": {
    "nl": "Raadpleging in de spreekkamer door een geaccrediteerde huisarts",
    "fr": "Consultation au cabinet par un médecin généraliste accrédité"
  },
  "valid_from": "1995-09-01",
  "active": true,
  "chapter": "CH02"
}

Every endpoint, on one page

Five groups. A bearer token, JSON out, and the same shapes in every response.

Codes

  • GET/v1/codes

    List and filter codes.

  • GET/v1/codes/{code}

    One code: both descriptions, classification, validity, provenance.

  • GET/v1/search?q=

    Search by number, or by Dutch or French text.

Amounts

  • GET/v1/codes/{code}/tariffs

    Every published amount for a code, by fee category.

  • GET/v1/fee-codes

    The fee-code vocabulary the amounts are keyed by.

Point in time

  • GET/v1/codes/{code}?at=

    The code exactly as it stood on that date.

  • GET/v1/codes/{code}/history

    Every description and amount the code has ever carried.

Changes

  • GET/v1/changes

    What changed, and the date it took effect.

  • GET/v1/changes/summary?from=

    Counts by kind across a period.

Classification

  • GET/v1/chapters

    Chapters, articles, sub-articles and sectors.

  • GET/v1/chapters/{id}/codes

    The codes under one node of the tree.

Reference

  • GET/v1/source-status

    Which publication is being served, and how fresh it is.

  • GET/openapi.json

    The machine-readable description. Point a client generator at it.

Code lookup

Search by number, or by Dutch or French text. Official Dutch and French descriptions, never machine-translated.

Code lookup
GET /v1/search
raadpleging
  • 383095Raadpleging na tandtrauma (klinische beelden)text_prefix
  • 383106Raadpleging na tandtrauma (klinische beelden)text_prefix
  • 101032Raadpleging in de spreekkamer door een huisartstext_prefix
Full API reference

Not just codes

A tariff, what the insurer pays, and what the patient pays.

Belgian nomenclature publishes several amounts against one code, and the difference between them is the whole point. Every amount this API returns says what kind of amount it is and which reimbursement regime it applies to, so you never have to guess whether a number is a fee or a co-payment.

See all amounts for code 101076

101076 · Raadpleging in de spreekkamer door een geaccrediteerde huisarts

Tariff€33.74
Reimbursed by the insurer
€27.74
Paid by the patient
€6.00

Standard regime, in force from 2026-01-01

What the API gives you

Historical lookup

Query what a code or tariff looked like on a specific date.

GET /v1/codes/{code}/tariffs
€33.7400002026-01-01
€33.7400002026-01-01
€33.7400002026-01-01
€33.7400002026-01-01
?at=2026-01-01

Bilingual by default

Official Dutch and French descriptions, never machine-translated.

GET /v1/codes/101076
nl

Raadpleging in de spreekkamer door een geaccrediteerde huisarts

fr

Consultation au cabinet par un médecin généraliste accrédité

Both as published. Neither is a translation of the other.

Change tracking

See which codes, descriptions and tariffs changed, and when they took effect.

GET /v1/changes
  • 2026-11-01597262creatednew
  • 2026-11-01597240creatednew
  • 2026-11-01597262creatednew
  • 2026-11-01597262creatednew

Clean API

Stable, structured responses for Belgian healthcare codes and tariffs.

Automatic updates

Reference datasets are synchronised, validated and normalised for you.

Source provenance

Every response names the publication it came from, down to the file checksum.

Built to depend on

The contract you are integrating against, stated plainly.

Stable schema

Field names, error codes and pagination do not change under you. The full OpenAPI description is published, so you can generate a client rather than write one.

Exact amounts

Money comes back as exact decimal strings, never floating point. A published €0.00 is returned as 0.00, never as null.

Traceable answers

Every response names the publication it came from, its application date and the checksum of the archive. Nothing is computed that was not published.

Daily synchronisation

The source is checked every day and a new import goes live only once it validates. Nothing is overwritten, so history stays queryable.

Who uses this

Healthcare SaaS

Add Belgian reference data without maintaining your own ingestion pipeline.

Practice management

Look up codes, descriptions and applicable tariffs from inside your software.

Billing and tarification

Validate codes and amounts against the date the care was actually delivered.

Hospitals

Structured current and historical reference data for internal systems.

Insurance software

Standardised nomenclature reference information for workflows and analytics.

AI applications

Give assistants structured Belgian nomenclature instead of scraped documents.

Start building today

A key in under a minute. Plans from €29 a month, cancel whenever you like.