# Specifications for independent home version 01-01-2026

### 1. Independent Homes (Type A)

**Endpoint:** <mark style="color:green;">`POST`</mark> `https://api.altum.ai/wws/01012026`

{% hint style="info" %}
&#x20;<mark style="color:orange;">\*</mark> <mark style="color:$info;">:</mark>  means this feature is mandatory; otherwise, it is optional.
{% endhint %}

#### 1.1 Root Object Parameters

<table><thead><tr><th>Parameter</th><th width="105.39996337890625">Type</th><th>Description</th><th>Allowed Values</th></tr></thead><tbody><tr><td><code>house_type</code> <mark style="color:orange;">*</mark></td><td>String</td><td>Type of the dwelling.</td><td><code>Eengezinswoning</code>, <code>Meergezinswoning</code>, <code>Duplexwoning</code></td></tr><tr><td><code>build_year</code> <mark style="color:orange;">*</mark></td><td>Integer</td><td>Year of construction.</td><td>e.g., <code>1995</code>, <code>2022</code></td></tr><tr><td><code>woz_valuation_year</code> <mark style="color:orange;">*</mark></td><td>Integer</td><td>Reference year for WOZ value.</td><td><code>2024</code>, <code>2025</code>, <code>2026</code></td></tr><tr><td><code>corop_area_amsterdam_or_utrecth</code> <mark style="color:orange;">*</mark></td><td>Boolean</td><td>Is the property in Amsterdam/Utrecht COROP region?</td><td><code>true</code>, <code>false</code></td></tr><tr><td><code>woz_value</code></td><td>Float</td><td>The determined WOZ value (€).</td><td>≥ 0</td></tr><tr><td><code>usable_surface_area</code></td><td>Float</td><td>Total usable surface area (m²).</td><td>≥ 0</td></tr><tr><td><code>contract_start_date</code></td><td>String</td><td>Lease start date (ISO 8601). Affects monument point calculation (pre/post July 2024).</td><td><code>YYYY-MM-DD</code></td></tr><tr><td><code>energy_label</code></td><td>String</td><td>Official energy label.</td><td><code>A++++</code>, <code>A+++</code>, <code>A++</code>, <code>A+</code>, <code>A</code>, <code>B</code>, <code>C</code>, <code>D</code>, <code>E</code>, <code>F</code>, <code>G</code>, <code>""</code></td></tr><tr><td><code>energy_index_existence</code></td><td>Boolean</td><td>Whether an energy index value is provided.</td><td><code>true</code>, <code>false</code></td></tr><tr><td><code>energy_index</code></td><td>Float</td><td>Energy index value (used if no label available).</td><td>≥ 0</td></tr><tr><td><code>energy_performance_compensation</code></td><td>Boolean</td><td>EPV (Energieprestatievergoeding) applies. Overrides label/index points.</td><td><code>true</code>, <code>false</code></td></tr><tr><td><code>monument</code></td><td>String</td><td>Monument status.</td><td><code>national</code>, <code>municipal</code>, <code>provincial</code>, <code>""</code></td></tr><tr><td><code>care_home</code></td><td>Boolean</td><td>Is it a designated care home (Zorgwoning)? Adds 35% uplift.</td><td><code>true</code>, <code>false</code></td></tr><tr><td><code>doorbell</code></td><td>Boolean</td><td>Presence of a video doorbell (+0.25 pts).</td><td><code>true</code>, <code>false</code></td></tr><tr><td><code>disability_costs</code></td><td>Float</td><td>Net investment costs for disability adaptations (€). 1 pt per €332.</td><td>≥ 0</td></tr><tr><td><code>rooms</code></td><td>List</td><td>List of Room objects. See §1.2 Rooms.</td><td>—</td></tr><tr><td><code>kitchen</code></td><td>List</td><td>List of Kitchen objects. See §1.2 Kitchen.</td><td>—</td></tr><tr><td><code>sanitary</code></td><td>List</td><td>List of Sanitary objects. See §1.2 Sanitary.</td><td>—</td></tr><tr><td><code>toilet</code></td><td>List</td><td>List of Toilet objects. See §1.2 Toilet.</td><td>—</td></tr><tr><td><code>outdoor</code></td><td>List</td><td>List of Outdoor objects. See §1.2 Outdoor. No entry = -5 pts penalty.</td><td>—</td></tr><tr><td><code>parking</code></td><td>List</td><td>List of Parking objects. See §1.2 Parking.</td><td>—</td></tr><tr><td><code>disabled_people</code></td><td>Integer</td><td>Number of disabled occupants.</td><td>≥ 0</td></tr></tbody></table>

#### 1.2 Nested Objects

**`rooms` (List)**

*Living rooms, bedrooms, hallways, storage spaces, attics, etc.*

<table><thead><tr><th width="284.20001220703125">Field</th><th width="137.79998779296875">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>type_of_room</code> <mark style="color:orange;">*</mark></td><td>String</td><td><code>room</code> (living/bedroom counts as vertrek) or <code>other</code> (storage/hall counts as overige ruimte)</td></tr><tr><td><code>surface_area</code> </td><td>Float</td><td>Area in m²</td></tr><tr><td><code>shared_addresses</code> </td><td>Integer</td><td>Number of dwellings sharing this space</td></tr><tr><td><code>heated</code></td><td>Boolean</td><td>Is the room heated? (+2 pts for vertrek, +1 pt for overige ruimte)</td></tr><tr><td><code>cooled</code></td><td>Boolean</td><td>Is the room cooled? (+1 pt, only for vertrekken, capped at 2 pts total)</td></tr><tr><td><code>attic_without_fixed_staircase</code></td><td>Boolean</td><td>Attic accessible by ladder only — applies a 5 pt deduction on that space</td></tr></tbody></table>

**Example 1: A standard heated living room**

```
{
  "type_of_room": "room",
  "surface_area": 35.5,
  "heated": true,
  "cooled": false
}
```

**Example 2: An unheated storage attic**

```
{
  "type_of_room": "other",
  "surface_area": 12.0,
  "heated": false,
  "cooled": false,
  "attic_without_fixed_staircase": true
}
```

**`kitchen` (List)**

*Kitchen spaces. Points based on countertop length + features.*

<table><thead><tr><th>Field</th><th width="163.4000244140625">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>type_of_room</code> <mark style="color:orange;">*</mark></td><td>String</td><td><code>room</code> or <code>other</code></td></tr><tr><td><code>surface_area</code></td><td>Float</td><td>Area in m²</td></tr><tr><td><code>countertop_length</code> <mark style="color:orange;">*</mark></td><td>Float</td><td>Countertop length in meters. <code>&#x3C; 1m</code> = 0 pts, <code>≥ 1m</code> = 4 pts, <code>≥ 2m</code> = 7 pts</td></tr><tr><td><code>shared_addresses</code></td><td>Integer</td><td>Number of dwellings sharing this kitchen</td></tr><tr><td><code>open_kitchen</code></td><td>Boolean</td><td>Kitchen is in open connection (>50% wall) with adjacent room</td></tr><tr><td><code>heated</code></td><td>Boolean</td><td>Is the kitchen heated?</td></tr><tr><td><code>cooled</code></td><td>Boolean</td><td>Is the kitchen cooled?</td></tr><tr><td><code>kitchen_features</code> <mark style="color:orange;">*</mark></td><td>Object</td><td>Kitchen feature counts. See table below.</td></tr></tbody></table>

**Kitchen Features Object (Type A)** *All values are Integers (0 = absent, 1 = present, or specific count).* *Extra feature points are capped at the base countertop points.*

| Feature                                        |   Type  |
| ---------------------------------------------- | :-----: |
| `extractor_system`                             | Integer |
| `induction_hob`                                | Integer |
| `ceramic_hob`                                  | Integer |
| `gas_hob`                                      | Integer |
| `refrigerator`                                 | Integer |
| `freezer`                                      | Integer |
| `oven_electric`                                | Integer |
| `oven_gas`                                     | Integer |
| `microwave`                                    | Integer |
| `dishwasher`                                   | Integer |
| `extra_cupboard_space_per_60cm`                | Integer |
| `one_hand_mixer_tap`                           | Integer |
| `one_hand_mixer_tap_with_boiling_function`     | Integer |
| `thermostatic_mixer_tap`                       | Integer |
| `thermostatic_mixer_tap_with_boiling_function` | Integer |

**Example 1: Basic Kitchen (Short counter, gas hob)**

```
{
  "type_of_room": "room",
  "surface_area": 8.0,
  "countertop_length": 1.8,
  "kitchen_features": {
    "gas_hob": 1,
    "extractor_system": 1,
    "dishwasher": 0,
    "refrigerator": 0
  }
}
```

**Example 2: Luxury Kitchen (Long counter, Quooker, Induction)**

```
{
  "type_of_room": "room",
  "surface_area": 15.0,
  "countertop_length": 3.5,
  "kitchen_features": {
    "induction_hob": 1,
    "dishwasher": 1,
    "refrigerator": 1,
    "one_hand_mixer_tap_with_boiling_function": 1,
    "extra_cupboard_space_per_60cm": 2
  }
}
```

**`sanitary` (List)**

*Bathrooms. Updated for 2026 rules — toilet location is now specified explicitly.*

| Field                                                     | Type    | Description                                                            |
| --------------------------------------------------------- | ------- | ---------------------------------------------------------------------- |
| `type_of_room` <mark style="color:orange;">\*</mark>      | String  | `room` or `other`                                                      |
| `surface_area`                                            | Float   | Area in m²                                                             |
| `shared_addresses`                                        | Integer | Number of dwellings sharing this bathroom                              |
| `heated`                                                  | Boolean | Is the bathroom heated?                                                |
| `cooled`                                                  | Boolean | Is the bathroom cooled?                                                |
| `shower_facility` <mark style="color:orange;">\*</mark>   | String  | Type of wash facility.                                                 |
| `toilet_in_bathroom`                                      | Boolean | Standard toilet located inside the bathroom (+2.0 pts)                 |
| `wall_hung_toilet_in_bathroom`                            | Boolean | Wall-hung toilet inside the bathroom (+2.75 pts)                       |
| `toilet_in_separate_room`                                 | Boolean | Standard toilet in a separate room within the sanitary area (+3.0 pts) |
| `wall_hung_toilet_in_separate_room`                       | Boolean | Wall-hung toilet in a separate room (+3.75 pts)                        |
| `is_bathroom`                                             | Boolean | Whether this space is a bathroom. Affects washbasin point caps.        |
| `sanitary_features` <mark style="color:orange;">\*</mark> | Object  | Sanitary feature counts. See table below.                              |

**Sanitary Features Object (Type A)** *All values are Integers.* *Extra feature points are capped at the shower/bath base points.*

| Feature                         |      Type     |
| ------------------------------- | :-----------: |
| `washbasin`                     |    Integer    |
| `multi_person_washbasin`        |    Integer    |
| `cupboard_space`                | Boolean (0/1) |
| `power_outlet`                  |    Integer    |
| `build_in_cupboard`             |    Integer    |
| `complete_separation_of_shower` |    Integer    |
| `bath_with_bubble_function`     |    Integer    |
| `one_hand_mixer_tap`            |    Integer    |
| `thermostatic_mixer_tap`        |    Integer    |
| `towel_radiator`                |    Integer    |

**Example 1: Standard Bathroom (Shower + Sink)**

```
{
  "type_of_room": "other",
  "surface_area": 4.5,
  "shower_facility": "shower",
  "toilet": 0,
  "sanitary_features": {
    "washbasin": 1,
    "thermostatic_mixer_tap": 1,
    "towel_radiator": 0
  }
}
```

**Example 2: Full Bathroom (Bath, Toilet, Double Sink)**

```
{
  "type_of_room": "other",
  "surface_area": 9.0,
  "shower_facility": "bath",
  "toilet": 1,
  "sanitary_features": {
    "wall_hung_toilet": 1,
    "multi_person_washbasin": 1,
    "towel_radiator": 1,
    "bath_with_bubble_function": 1
  }
}
```

**`toilet` (List)**

*Separate toilet rooms (standalone, not inside a bathroom).*

<table><thead><tr><th width="149">Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>type_of_room</code> <mark style="color:orange;">*</mark></td><td>String</td><td><code>room</code> or <code>other</code></td></tr><tr><td><code>surface_area</code></td><td>Float</td><td>Area in m²</td></tr><tr><td><code>shared_addresses</code></td><td>Integer</td><td>Number of dwellings sharing this toilet</td></tr><tr><td><code>heated</code></td><td>Boolean</td><td>Is the room heated?</td></tr><tr><td><code>cooled</code></td><td>Boolean</td><td>Is the room cooled?</td></tr><tr><td><code>wall_hung_toilet</code></td><td>Boolean</td><td>Wall-hung toilet (+3.75 pts) vs standard (+3.0 pts)</td></tr><tr><td><code>washbasin</code></td><td>Integer</td><td>Count of washbasins (+1.0 pt each)</td></tr></tbody></table>

**Example 1: Standard Toilet**

```
{
  "type_of_room": "other",
  "surface_area": 1.2,
  "wall_hung_toilet": false,
  "washbasin": 0
}
```

**Example 2: Modern Toilet with Fountain**

```
{
  "type_of_room": "other",
  "surface_area": 1.5,
  "wall_hung_toilet": true,
  "washbasin": 1
}
```

**`outdoor` (List)**

*Gardens, balconies, terraces. No outdoor space = -5 pts penalty.*

<table><thead><tr><th width="209.800048828125">Field</th><th width="145.79998779296875">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>surface_area</code></td><td>Float</td><td>Area in m²</td></tr><tr><td><code>shared_addresses</code></td><td>Integer</td><td>Number of dwellings sharing this outdoor space</td></tr></tbody></table>

**Example 1: Small Balcony**

```
{
  "surface_area": 6.5
}
```

**Example 2: Large Garden**

```
{
  "surface_area": 45.0
}
```

**`parking` (List)**

*Shared or private parking spaces.*

| Field              | Type    | Description                                                                    |
| ------------------ | ------- | ------------------------------------------------------------------------------ |
| `parking_type`     | Integer | `1` = Garage/Indoor (9 pts), `2` = Carport/Covered (6 pts), `3` = Open (4 pts) |
| `surface_area`     | Float   | Area in m²                                                                     |
| `shared_addresses` | Integer | Number of dwellings sharing this parking space                                 |
| `charging_station` | Boolean | Has EV charging point (+2 pts)                                                 |

**Example 1: Private Garage with Charger**

```
{
  "parking_type": 1,
  "charging_station": true
}
```

**Example 2: Carport**

```
{
  "parking_type": 2,
  "charging_station": false
}
```

#### 1.3 Example JSON (Type A)

```json
{
  "house_type": "Meergezinswoning",
  "build_year": 2005,
  "woz_valuation_year": 2024,
  "woz_value": 250000,
  "energy_label": "B",
  "energy_index_existence": false,
  "energy_index": 0,
  "energy_performance_compensation": false,
  "corop_area_amsterdam_or_utrecth": false,
  "usable_surface_area": 75.0,
  "contract_start_date": "2024-01-15",
  "monument": "",
  "care_home": false,
  "doorbell": true,
  "disability_costs": 0,
  "disabled_people": 0,
  "rooms": [
    {
      "type_of_room": "room",
      "surface_area": 20.5,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false,
      "attic_without_fixed_staircase": false
    },
    {
      "type_of_room": "other",
      "surface_area": 8.0,
      "shared_addresses": 1,
      "heated": false,
      "cooled": false,
      "attic_without_fixed_staircase": false
    }
  ],
  "kitchen": [
    {
      "type_of_room": "room",
      "open_kitchen": false,
      "surface_area": 12.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": 0,
        "oven_electric": 1,
        "oven_gas": 0,
        "microwave": 1,
        "dishwasher": 1,
        "extra_cupboard_space_per_60cm": 2,
        "one_hand_mixer_tap": 0,
        "one_hand_mixer_tap_with_boiling_function": 1,
        "thermostatic_mixer_tap": 0,
        "thermostatic_mixer_tap_with_boiling_function": 0
      }
    }
  ],
  "sanitary": [
    {
      "type_of_room": "other",
      "surface_area": 5.0,
      "heated": false,
      "cooled": false,
      "shower_facility": "shower",
      "toilet_in_bathroom": true,
      "wall_hung_toilet_in_bathroom": false,
      "toilet_in_separate_room": false,
      "wall_hung_toilet_in_separate_room": false,
      "is_bathroom": true,
      "shared_addresses": 1,
      "sanitary_features": {
        "washbasin": 1,
        "multi_person_washbasin": 0,
        "cupboard_space": 0,
        "power_outlet": 1,
        "build_in_cupboard": 0,
        "complete_separation_of_shower": 0,
        "bath_with_bubble_function": 0,
        "one_hand_mixer_tap": 1,
        "thermostatic_mixer_tap": 0,
        "towel_radiator": 0
      }
    }
  ],
  "toilet": [
    {
      "type_of_room": "other",
      "surface_area": 2.0,
      "heated": false,
      "cooled": false,
      "wall_hung_toilet": true,
      "washbasin": 1,
      "shared_addresses": 1
    }
  ],
  "outdoor": [
    {
      "surface_area": 20.0,
      "shared_addresses": 1
    }
  ],
  "parking": [
    {
      "parking_type": 2,
      "surface_area": 15.0,
      "shared_addresses": 1,
      "charging_station": true
    }
  ]
}
```
