Input explanation for version 01-01-2025

This page is about the input features for the endpoints that are for the version 01-07-2024. A full explanation of the features is covered, and also the structure of the input and the blocks in it.

WWS Points API — 01-01-2025 Rules

Overview

This page describes the JSON structure required for submitting property details to the API for calculating WWS points according to the 01-01-2025 rules. Each section of the JSON corresponds to different aspects of a property, including rooms, kitchen features, parking, sanitary facilities, and more. The specification is split into:

  • A. Independent living spaces

  • B. Non-independent living spaces


A. Independent living spaces

General Property Attributes

Field
Type
Example
Validation / Notes

house_type

str

"row house"

Required string describing property type.

build_year

int

1995

Must be a positive integer. Used if no valid energy label/index.

energy_label

str

"A", "B", ""

Optional — allowed values in code; if empty and energy_index_existence is True, energy_index is required.

energy_index_existence

bool

True

If True and energy_label is empty, energy_index is required and used for points calculation.

energy_index

float

1.45

Used only if energy_label is empty and energy_index_existence is True.

energy_performance_compensation

bool

True

Boolean flag for compensation calculation.

disability_costs

float

1200.0

No negative values allowed.

disabled_people

int

1

Integer ≥ 0.

monument

str

"national", "municipal", "provincial", ""

Lower-case string; only allowed values.

doorbell

bool

True

Boolean flag.

woz_value

float

250000.0

Must be ≥ 0; minimum WOZ used in calc: 77582.

woz_valuation_year

int

2023

Must be 2023 or 2024.

usable_surface_area

float

85.5

Must be ≥ 0.

corop_area_amsterdam_or_utrecht

bool

True

Boolean flag.

care_home

bool

True

Boolean flag.

1. rooms block

Overview: Describes each non-kitchen, non-sanitary room.

Field
Type
Example
Validation / Notes

type_of_room

str

"room"

"room" or "other".

attic_without_fixed_staircase

bool

True

Relevant if type is "other" and it's an attic.

surface_area

float

12.5

Must be ≥ 0.

shared_addresses

int

1

≥ 1.

heated

bool

True

Boolean flag.

cooled

bool

True

Boolean flag.

Example:

"rooms": [
  {
    "type_of_room": "room",
    "attic_without_fixed_staircase": false,
    "surface_area": 10.0,
    "shared_addresses": 1,
    "heated": true,
    "cooled": true
  }
]

2. kitchen block

Field
Type
Example
Description

type_of_room

string

"room"

"room" or "other".

open_kitchen

boolean

false

True if open to another room.

surface_area

number

10.0

Area in m².

countertop_length

number

2.5

Counter length in meters.

shared_addresses

integer

1

Addresses sharing kitchen.

heated

boolean

true

Has heating.

cooled

boolean

true

Has cooling.

kitchen_features

object

see below

Keys are features, values are counts.

Example:

"kitchen": [
  {
    "type_of_room": "room",
    "open_kitchen": false,
    "surface_area": 10,
    "countertop_length": 2.5,
    "shared_addresses": 1,
    "heated": true,
    "cooled": true,
    "kitchen_features": {
      "extractor_system": 1,
      "induction_hob": 1
    }
  }
]

Same structure as 2024, no changes only shared_addresses is used (no shared_spaces here). All kitchen features are integer counts.

3. sanitary block

Field
Type
Example
Validation / Notes

type_of_room

str

"room"

"room" or "other".

surface_area

float

10.0

≥ 0.

heated

bool

True

Boolean flag.

cooled

bool

True

Boolean flag.

shower_facility

str

"shower/bath"

"bath", "shower", "shower/bath".

toilet

int

2

Count.

wall_hung_toilet

int

1

Count — note: int, not bool.

shared_addresses

int

1

≥ 1.

sanitary_features

dict[str,int/bool]

{ "washbasin": 1, ... }

Feature counts or booleans.

Example:

"sanitary": [
  {
    "type_of_room": "room",
    "surface_area": 10,
    "heated": true,
    "cooled": true,
    "shower_facility": "shower",
    "toilet": 1,
    "shared_addresses": 1,
    "sanitary_features": {
      "washbasin": 1
    }
  }
]

4. toilet block

Field
Type
Example
Description

type_of_room

string

"room"

"room" or "other".

surface_area

number

2.0

m².

heated

boolean

true

Has heating.

cooled

boolean

false

Has cooling.

wall_hung_toilet

boolean

false

Wall-mounted toilet.

washbasin

integer

1

Count.

shared_addresses

integer

1

Addresses sharing.

Same fields as 2024, but here wall_hung_toilet is bool.

5. outdoor block

Field
Type
Example
Description

surface_area

number

50.0

m².

shared_addresses

integer

1

Addresses sharing.

Same as 2024, only shared_addresses exists.

6. parking block

Field
Type
Example
Description

parking_type

integer

2

Parking type code.

shared_addresses

integer

1

Addresses sharing.

charging_station

boolean

false

Has charging station.

Same as 2024, only shared_addresses exists.

B. Non-independent living spaces

General Property Attributes

Same as independent except:

  • glass_surface_living_room (boolean)

  • lowest_window_frame_living_room (boolean)

  • accessibility_via_landlord (boolean)

  • corop_region instead of Amsterdam/Utrecht flag.


Important: Every block in B has both shared_addresses and shared_spaces.

1. rooms block (B)

Same as A rooms plus:

  • shared_spaces (int) — number of living spaces sharing the room.

2. kitchen block (B)

Same as A kitchen plus:

  • shared_spaces (int) — number of living spaces sharing the kitchen.

3. sanitary block (B)

Same as A sanitary plus:

  • shared_spaces (int) — number of living spaces sharing the sanitary facility.

4. toilet block (B)

Same as A toilet plus:

  • shared_spaces (int) — number of living spaces sharing the toilet facility.

(Still: wall_hung_toilet is bool here.)

5. outdoor block (B)

Same as A outdoor plus:

  • shared_spaces (int).

6. parking block (B)

Same as A parking plus:

  • shared_spaces (int).

Body Request Example for Independent Home 01/01/2025

{
  "house_type": "Eengezinswoning",
  "rooms": [
    {
      "type_of_room": "room",
      "attic_without_fixed_staircase": false,
      "surface_area": 25.5,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false
    },
    {
      "type_of_room": "room",
      "attic_without_fixed_staircase": false,
      "surface_area": 15.0,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false
    },
    {
      "type_of_room": "other",
      "attic_without_fixed_staircase": false,
      "surface_area": 8.0,
      "shared_addresses": 1,
      "heated": false,
      "cooled": false
    }
  ],
  "kitchen": [
    {
      "type_of_room": "room",
      "open_kitchen": true,
      "surface_area": 10.0,
      "countertop_length": 2.5,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false,
      "kitchen_features": {
        "extractor_system": 1,
        "induction_hob": 1,
        "ceramic_hob": 0,
        "gas_hob": 0,
        "refrigerator": 1,
        "freezer": 1,
        "oven_electric": 1,
        "oven_gas": 0,
        "microwave": 1,
        "dishwasher": 1,
        "extra_cupboard_space_per_60cm": 2,
        "one_hand_mixer_tap": 1,
        "one_hand_mixer_tap_with_boiling_function": 0,
        "thermostatic_mixer_tap": 0,
        "thermostatic_mixer_tap_with_boiling_function": 0
      }
    }
  ],
  "parking": [
    {
      "parking_type": 1,
      "surface_area": 12.0,
      "shared_addresses": 1,
      "charging_station": true
    }
  ],
  "sanitary": [
    {
      "type_of_room": "other",
      "surface_area": 6.0,
      "heated": true,
      "cooled": false,
      "shower_facility": "shower/bath",
      "toilet": 1,
      "wall_hung_toilet": 1,
      "shared_addresses": 1,
      "sanitary_features": {
        "washbasin": 1,
        "multi_person_washbasin": 0,
        "cupboard_space": true,
        "power_outlet": 1,
        "build_in_cupboard": 1,
        "complete_separation_of_shower": 1,
        "bath_with_bubble_function": 0,
        "one_hand_mixer_tap": 1,
        "thermostatic_mixer_tap": 0,
        "towel_radiator": 1
      }
    }
  ],
  "outdoor": [
    {
      "surface_area": 30.0,
      "shared_addresses": 1
    }
  ],
  "toilet": [
    {
      "type_of_room": "other",
      "surface_area": 1.5,
      "heated": false,
      "cooled": false,
      "wall_hung_toilet": true,
      "washbasin": 1,
      "shared_addresses": 1
    }
  ],
  "build_year": 2010,
  "energy_label": "A+",
  "energy_index_existence": false,
  "energy_index": 0,
  "energy_performance_compensation": true,
  "disability_costs": 0,
  "disabled_people": 0,
  "monument": "",
  "doorbell": true,
  "woz_value": 350000,
  "woz_valuation_year": 2023,
  "usable_surface_area": 95.0,
  "corop_area_amsterdam_or_utrecth": false,
  "care_home": false
}

Body Request Example for non Independent Home 01/01/2025

{
  "rooms": [
    {
      "type_of_room": "room",
      "attic_without_fixed_staircase": false,
      "surface_area": 18.0,
      "shared_spaces": 1,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false
    }
  ],
  "kitchen": [
    {
      "type_of_room": "room",
      "open_kitchen": false,
      "surface_area": 12.0,
      "countertop_length": 3.5,
      "shared_spaces": 4,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false,
      "kitchen_features": {
        "extractor_system": 1,
        "induction_hob": 0,
        "ceramic_hob": 0,
        "gas_hob": 1,
        "refrigerator": 2,
        "freezer": 1,
        "oven_electric": 1,
        "oven_gas": 0,
        "microwave": 1,
        "dishwasher": 1,
        "extra_cupboard_space_per_60cm": 3,
        "one_hand_mixer_tap": 1,
        "one_hand_mixer_tap_with_boiling_function": 0,
        "thermostatic_mixer_tap": 0,
        "thermostatic_mixer_tap_with_boiling_function": 0
      }
    }
  ],
  "parking": [],
  "sanitary": [
    {
      "type_of_room": "other",
      "surface_area": 5.0,
      "heated": true,
      "cooled": false,
      "shower_facility": "shower",
      "toilet": 1,
      "wall_hung_toilet": 0,
      "shared_spaces": 4,
      "shared_addresses": 1,
      "sanitary_features": {
        "washbasin": 2,
        "multi_person_washbasin": 0,
        "cupboard_space": true,
        "power_outlet": 2,
        "build_in_cupboard": 0,
        "complete_separation_of_shower": 1,
        "bath_with_bubble_function": 0,
        "one_hand_mixer_tap": 2,
        "thermostatic_mixer_tap": 0,
        "towel_radiator": 0
      }
    }
  ],
  "outdoor": [
    {
      "surface_area": 50.0,
      "shared_spaces": 4,
      "shared_addresses": 1
    }
  ],
  "toilet": [
      {
      "type_of_room": "other",
      "surface_area": 1.2,
      "heated": false,
      "cooled": false,
      "wall_hung_toilet": false,
      "washbasin": 1,
      "shared_spaces": 4,
      "shared_addresses": 1
    }
  ],
  "build_year": 1985,
  "energy_label": "C",
  "energy_index_existence": false,
  "energy_index": 0,
  "disability_costs": 0,
  "disabled_people": 0,
  "monument": "",
  "doorbell": true,
  "glass_surface_living_room": 1.5,
  "lowest_window_frame_living_room": 1.2,
  "accessibility_via_landlord": false,
  "woz_value": 500000,
  "woz_valuation_year": 2024,
  "usable_surface_area": 150.0,
  "corop_region": "utrecht",
  "care_home": false
}

Last updated