# Input explanation for version 01-01-2025

## **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:

```json
"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:

```json
"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:

```json
"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

```json
{
  "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

```json
{
  "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
}


```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.altum.ai/english/financing/wws-points-api/input-explanation-for-version-01-01-2025.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
