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_region
instead 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