Dutch Housing Statistics

Get Dutch housing statistics by municipality from CBS: average sale prices, homes sold, owner-occupied and rental stock, and trends over time.

nl-housing-stats

Example

Input
{
  "city": "Amsterdam"
}
Answer
{
  "currency": "EUR",
  "data_level": "municipality",
  "sale_prices": {
    "history": [],
    "homes_sold": 12500,
    "latest_year": 2023,
    "average_sale_price_eur": 520000
  },
  "municipality": "amsterdam",
  "housing_stock": {
    "year": 2023,
    "rental": 330000,
    "owner_occupied": 140000,
    "total_dwellings": 470000
  },
  "municipality_code": "GM0363"
}

Inputs

FieldTypeRequiredWhat it is
citystringNoDutch municipality name (e.g. 'Amsterdam')
gm_codestringNoCBS municipality code (e.g. 'GM0363')

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
currencystringAlways (present in every successful answer)
sale_pricesobjectAlways (present in every successful answer)
municipalitystringAlways (present in every successful answer)
housing_stockobjectUsually (present for most inputs)
municipality_codestringAlways (present in every successful answer)
data_level—Always (present in every successful answer)
note—Always (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "nl-housing-stats",
    "inputs": {
      "city": "Amsterdam"
    },
    "max_price_cents": 3
  }'

Limitations

  • Municipality-level aggregates

    Statistics are aggregated at municipality level, not individual property or neighbourhood.

  • Annual publication cycle

    Sale price data is published annually by CBS. Most recent data may be 6-12 months old.

  • Limited municipality lookup

    City name lookup covers ~30 major Dutch municipalities. Use gm_code for smaller ones.

Bundled checks that include it