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
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
rooms blockOverview: Describes each non-kitchen, non-sanitary room.
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
kitchen blocktype_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
sanitary blocktype_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
toilet blocktype_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
outdoor blocksurface_area
number
50.0
m².
shared_addresses
integer
1
Addresses sharing.
Same as 2024, only shared_addresses exists.
6. parking block
parking blockparking_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_regioninstead of Amsterdam/Utrecht flag.
Important: Every block in B has both shared_addresses and shared_spaces.
1. rooms block (B)
rooms block (B)Same as A rooms plus:
shared_spaces(int) — number of living spaces sharing the room.
2. kitchen block (B)
kitchen block (B)Same as A kitchen plus:
shared_spaces(int) — number of living spaces sharing the kitchen.
3. sanitary block (B)
sanitary block (B)Same as A sanitary plus:
shared_spaces(int) — number of living spaces sharing the sanitary facility.
4. toilet block (B)
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)
outdoor block (B)Same as A outdoor plus:
shared_spaces(int).
6. parking block (B)
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