# Authentication, input and response

### Endpoint

<mark style="color:$success;">**`POST`**</mark>   `https://api.altum.ai/subsidy`

**Request headers**

| Header         | Required | Value                 |
| -------------- | -------- | --------------------- |
| `x-api-key`    | Yes      | Your Altum AI API key |
| `Content-Type` | Yes      | `application/json`    |

The fastest way to see the API working is to send a single field, `postcode`, and inspect the response.

```bash
curl -X POST https://api.altum.ai/subsidy \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "postcode": "3511 AA"
  }'
```

This returns all available subsidies for the postcode (municipal, provincial, and national) with `Loans.eligible_programs` empty and no `isde_2026` block.

From here, three usage flows extend the request:

| Flow                       | Add to request           | Returns                                  |
| -------------------------- | ------------------------ | ---------------------------------------- |
| **Discover subsidies**     | `level`, `limit`, `tags` | Filtered subsidies only                  |
| **Check loan eligibility** | `applicant` object       | Eligible loan programs with calculations |
| **Estimate ISDE subsidy**  | `isde` object            | `isde_2026` calculation block            |

You can combine all three in a single request.

Returns subsidies, loan eligibility, and ISDE 2026 estimates for a given postcode. The `applicant` and `isde` objects are optional. The response always returns the same top-level structure; sections you didn't request return empty arrays or are omitted.

**Request body - top level**

| Field       | Type             | Required | Description                                                                                              |
| ----------- | ---------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `postcode`  | string           | Yes      | Dutch postcode in `1234 AB` format (with space).                                                         |
| `level`     | array of strings | No       | Filter subsidies by level. One or more of `municipality`, `province`, `national`. Defaults to all three. |
| `limit`     | integer          | No       | Maximum number of subsidies returned per level.                                                          |
| `tags`      | array of strings | No       | Filter subsidies by topic. See Tags reference.                                                           |
| `applicant` | object           | No       | Personal and financial details for loan eligibility. See Applicant object.                               |
| `isde`      | object           | No       | Project details for ISDE 2026 calculation. See ISDE object.                                              |

**Complete request example**

```json
{
  "postcode": "3511 AA",
  "level": ["municipality", "national"],
  "limit": 5,
  "tags": ["Isolatie", "Warmtepompen"],
  "applicant": {
    "age": 45,
    "is_homeowner": true,
    "is_occupant": true,
    "residence_country": "Netherlands",
    "property_use_residential_percent": 100,
    "credit_approved": true,
    "previously_rejected_nwf1": false,
    "rejection_reason": null,
    "requested_amount": 15000,
    "existing_nwf_loan_balance": 0,
    "specific_target_group": false,
    "collective_neighborhood": false,
    "has_mortgage_security": false,
    "business_part_connected": null,
    "gross_household_income": 55000,
    "desired_loan_period_years": 10
  },
  "isde": {
    "prior_isde": "1",
    "prior_heat_pump": "none",
    "insulation": {
      "roof": { "selected": true, "area_m2": 45.0, "date_bucket": "2025_2026", "biobased": false },
      "floor": { "selected": true, "area_m2": 30.0, "date_bucket": "2024_24m", "biobased": true }
    },
    "glazing": {
      "hrpp": { "selected": true, "area_2024": 10.0, "area_2025_2026": 5.0 }
    },
    "ventilation": {
      "selected": true,
      "within_24_months_of_insulation": true,
      "install_year": 2026
    },
    "heat_pump_primary": {
      "selected": true,
      "pump_type": "Lucht-water ≥ 1 kW en ≤ 70 kW",
      "energy_class": "A++",
      "power_kw": 6.0,
      "install_year": 2026,
      "purchase_year": 2025,
      "role": "primary"
    },
    "heat_pump_extra": null,
    "solar_boiler": { "selected": false },
    "district_heating": { "selected": false },
    "electric_cooking": { "selected": false }
  }
}
```

### Usage flows

#### <mark style="color:$primary;">Flow 1 - Discover subsidies only</mark>

Send `postcode` with optional `level`, `limit`, and `tags`. The response returns subsidies grouped by level. `Loans.eligible_programs` will be empty and the `isde_2026` block will be absent.

**Request**

```json
{
  "postcode": "3511 AA",
  "level": ["municipality", "province", "national"],
  "limit": 5,
  "tags": ["Isolatie", "Warmtepompen"]
}
```

**Response (truncated)**

```json
{
  "postal_code": "3511 AA",
  "municipality": "Utrecht",
  "province": "Utrecht",
  "disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify on official websites.",
  "Loans": { "eligible_programs": [] },
  "subsidies": {
    "municipality_subsidies": [
      {
        "location_name": "Utrecht",
        "name": "Vraag subsidie isoleren kleine vve",
        "description": "Deze subsidie van de gemeente Utrecht is bedoeld voor kleine Verenigingen van Eigenaren (VvE's)...",
        "eligibility": "Eigenaar zijn van een woning in een kleine VvE...",
        "application_deadlines": "until:31 december 2026",
        "subsidy_amounts": "min:€8.000 max:€8.000",
        "budget_ceilings": null,
        "application_process": "Maak eventueel een afspraak voor hulp bij de aanvraag...",
        "url": "https://loket.digitaal.utrecht.nl/nl/producten/kleine-vve-isoleren-extra-subsidie-aanvragen",
        "contact_info": "subsidie@utrecht.nl, 030 – 286 33 36",
        "level": "municipality"
      }
    ],
    "province_subsidies": [
      {
        "location_name": "Utrecht",
        "name": "Subsidieregeling Bereikbaarheid",
        "description": "De Subsidieregeling Bereikbaarheid van de provincie Utrecht...",
        "eligibility": "Fiets: Wegbeheerders binnen de provincie Utrecht...",
        "application_deadlines": "from:7 januari 2026 to:30 september 2026",
        "subsidy_amounts": null,
        "budget_ceilings": null,
        "application_process": "Dien een projectplanning in met duidelijke mijlpalen...",
        "url": "https://www.provincie-utrecht.nl/loket/subsidies/subsidieregeling-bereikbaarheid",
        "contact_info": "Voor algemene vragen: subsidies@provincie-utrecht.nl...",
        "level": "province"
      }
    ],
    "national_subsidies": [
      {
        "location_name": "Netherlands",
        "name": "ISDE: Warmtepomp woningeigenaren",
        "description": "Met de Investeringssubsidie duurzame energie en energiebesparing (ISDE)...",
        "eligibility": "U laat de warmtepomp eerst installeren, daarna vraagt u de subsidie aan...",
        "application_deadlines": "Aanvragen tot en met 31 december 2030.",
        "subsidy_amounts": null,
        "budget_ceilings": null,
        "application_process": "Voor uw aanvraag heeft u de DigiD-app nodig...",
        "url": "https://www.rvo.nl/subsidies-financiering/isde/woningeigenaren/warmtepomp",
        "contact_info": "Ministerie van Economische Zaken en Klimaat",
        "level": "national"
      }
    ]
  }
}
```

**Subsidy entry fields**

| Field                   | Type           | Description                                                                                                    |
| ----------------------- | -------------- | -------------------------------------------------------------------------------------------------------------- |
| `location_name`         | string         | Municipality, province, or country name.                                                                       |
| `name`                  | string         | Program name (Dutch).                                                                                          |
| `description`           | string         | Program description (Dutch).                                                                                   |
| `eligibility`           | string \| null | Semicolon-separated eligibility conditions (Dutch).                                                            |
| `application_deadlines` | string \| null | Deadline string. Formats: `until:<date>` or `from:<date> to:<date>`. Dates in Dutch (e.g. `31 december 2026`). |
| `subsidy_amounts`       | string \| null | Amount range string. Format: `min:€<amount> max:€<amount>`.                                                    |
| `budget_ceilings`       | string \| null | Total budget cap for the program, if specified.                                                                |
| `application_process`   | string \| null | How to apply (Dutch).                                                                                          |
| `url`                   | string         | Official program page.                                                                                         |
| `contact_info`          | string \| null | Contact details for the issuing body.                                                                          |
| `level`                 | string         | One of `municipality`, `province`, `national`.                                                                 |

#### <mark style="color:$primary;">Flow 2 - Loan eligibility</mark>

Add the `applicant` object to the request. The response returns matching loan programs with applicant-specific calculations (interest rate, monthly payment, total cost).

**Request**

```json
{
  "postcode": "3511 AA",
  "applicant": {
    "age": 45,
    "is_homeowner": true,
    "is_occupant": true,
    "residence_country": "Netherlands",
    "property_use_residential_percent": 100,
    "credit_approved": true,
    "previously_rejected_nwf1": false,
    "rejection_reason": null,
    "requested_amount": 15000,
    "existing_nwf_loan_balance": 0,
    "specific_target_group": false,
    "collective_neighborhood": false,
    "has_mortgage_security": false,
    "business_part_connected": null,
    "gross_household_income": 55000,
    "desired_loan_period_years": 10
  }
}
```

**Response**

```json
{
  "postal_code": "3511 AA",
  "municipality": "Utrecht",
  "province": "Utrecht",
  "disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify on official websites.",
  "Loans": {
    "eligible_programs": [
      {
        "program_name": "Energy Savings Loan (NWF 1)",
        "description": "Standard loan for homeowners (≤75 years old) to finance energy-saving home improvements.",
        "min_max_loan_amount": [1000, 28000],
        "max_loan_period_years": 20,
        "interest_type": "Income-based: 0% if household income ≤€60,000, otherwise 3.61% fixed",
        "repayment": "Monthly annuity (up to 20 years; 15 years for heat pumps/batteries if >33% of loan)",
        "key_features": [
          "Requires professional contractor installation",
          "Applies to 18 defined energy-saving measures",
          "Early repayment allowed without penalty (min €250)",
          "No mortgage required; construction deposit used"
        ],
        "loan_amount": 15000,
        "loan_period_years": 10,
        "applied_interest_rate_percent": 0,
        "total_interest": 0,
        "total_cost": 15000,
        "monthly_payment": 125
      },
      {
        "program_name": "Sustainability Loan (Duurzaamheidslening)",
        "description": "A low-interest loan offered through municipalities in collaboration with SVn...",
        "min_max_loan_amount": [2500, 25000],
        "max_loan_period_years": 15,
        "interest_type": "Fixed rate: typically 1.7% for 10 years (loans ≤€7,500) or 15 years (loans >€7,500)",
        "repayment": "Monthly annuity payments; early repayment allowed without penalty.",
        "key_features": [
          "Available only in participating municipalities",
          "Loan amount depends on local program limits",
          "Funds are managed through an SVn building depot for direct payment to contractors",
          "Fixed interest rate for the entire loan term",
          "Requires prior approval (Toewijzingsbrief) from the municipality before applying at SVn",
          "Intended for sustainability measures improving energy efficiency"
        ],
        "applied_interest_rate_percent": 1.7,
        "loan_amount": 15000,
        "loan_period_years": 10,
        "total_interest": 1321.7,
        "total_cost": 16321.7,
        "monthly_payment": 136.01
      }
    ]
  },
  "subsidies": {
    "municipality_subsidies": [],
    "province_subsidies": [],
    "national_subsidies": []
  }
}
```

**Eligible program fields**

| Field                           | Type               | Description                                                                        |
| ------------------------------- | ------------------ | ---------------------------------------------------------------------------------- |
| `program_name`                  | string             | Loan product name.                                                                 |
| `description`                   | string             | Short summary of the loan product.                                                 |
| `min_max_loan_amount`           | array `[min, max]` | Allowed loan amount range in EUR.                                                  |
| `max_loan_period_years`         | integer            | Maximum repayment period in years.                                                 |
| `interest_type`                 | string             | Human-readable description of how interest is determined.                          |
| `repayment`                     | string             | Human-readable description of repayment terms.                                     |
| `key_features`                  | array of strings   | Bullet points describing the program.                                              |
| `loan_amount`                   | number             | Amount applied to this calculation (echoes `applicant.requested_amount`).          |
| `loan_period_years`             | integer            | Period applied to this calculation (echoes `applicant.desired_loan_period_years`). |
| `applied_interest_rate_percent` | number             | Interest rate applied for this specific applicant.                                 |
| `total_interest`                | number             | Total interest over the loan period (EUR).                                         |
| `total_cost`                    | number             | Principal + total interest (EUR).                                                  |
| `monthly_payment`               | number             | Monthly annuity (EUR), rounded to two decimals.                                    |

#### <mark style="color:$primary;">Flow 3 - ISDE 2026 calculation</mark>

Add the `isde` object to the request. The response returns an `isde_2026` block with the total subsidy estimate, per-category breakdown, and any applicable warnings.

**Request**

```json
{
  "postcode": "3511 AA",
  "isde": {
    "prior_isde": "1",
    "prior_heat_pump": "none",
    "insulation": {
      "roof":   { "selected": true, "area_m2": 38.0, "date_bucket": "2025_2026", "biobased": false },
      "attic":  { "selected": true, "area_m2": 12.0, "date_bucket": "2025_2026", "biobased": false },
      "facade": { "selected": true, "area_m2": 24.0, "date_bucket": "2025_2026", "biobased": false },
      "cavity": { "selected": true, "area_m2": 32.0, "date_bucket": "2025_2026", "biobased": false },
      "floor":  { "selected": true, "area_m2": 28.0, "date_bucket": "2024_24m",  "biobased": true  },
      "bottom": { "selected": true, "area_m2": 14.0, "date_bucket": "2024_24m",  "biobased": false }
    },
    "glazing": {
      "hrpp":    { "selected": true, "area_2024": 6.0, "area_2025_2026": 3.5 },
      "triple":  { "selected": true, "area_2024": 2.5, "area_2025_2026": 2.0 },
      "panel12": { "selected": true, "area_2024": 1.5, "area_2025_2026": 1.0 },
      "panel07": { "selected": true, "area_2024": 1.0, "area_2025_2026": 0.0 },
      "door15":  { "selected": true, "area_2024": 1.8, "area_2025_2026": 0.0 },
      "door10":  { "selected": true, "area_2024": 1.2, "area_2025_2026": 0.0 }
    },
    "ventilation": {
      "selected": true,
      "within_24_months_of_insulation": true,
      "install_year": 2026
    },
    "heat_pump_primary": {
      "selected": true,
      "pump_type": "Lucht-water ≥ 1 kW en ≤ 70 kW",
      "energy_class": "A++",
      "power_kw": 5.0,
      "install_year": 2026,
      "purchase_year": 2025,
      "role": "primary"
    },
    "heat_pump_extra": {
      "selected": true,
      "pump_type": "Lucht-water ≥ 1 kW en ≤ 70 kW",
      "energy_class": "A+",
      "power_kw": 3.0,
      "install_year": 2026,
      "purchase_year": 2025,
      "role": "extra"
    },
    "solar_boiler": {
      "selected": true,
      "boiler_type": "Zonneboiler",
      "size_bucket": "<=5",
      "install_year": 2024
    },
    "district_heating": {
      "selected": true,
      "year_bucket": "2024_24m"
    },
    "electric_cooking": {
      "selected": true,
      "on_warmtenet": true,
      "district_heating_subsidy_received": false,
      "gas_disconnected_and_within_24_months": true
    }
  }
}
```

**Response**

```json
{
  "postal_code": "3511 AA",
  "municipality": "Utrecht",
  "province": "Utrecht",
  "disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify on official websites.",
  "Loans": { "eligible_programs": [] },
  "subsidies": {
    "municipality_subsidies": [],
    "province_subsidies": [],
    "national_subsidies": []
  },
  "isde_2026": {
    "total_subsidy_euro": 12764.5,
    "category_count": 8,
    "eligibility": {
      "prior_recent": false,
      "roof_attic": true,
      "facade": true,
      "cavity": true,
      "floor_bottom": true,
      "glazing": true,
      "heat_pump": true,
      "solar_boiler": true,
      "district_heating": true
    },
    "prior_isde_warning": "",
    "skip_primary_heat_pump": false,
    "breakdown": {
      "insulation": {
        "amount": 3087,
        "warning": "",
        "details": { "...": "see Insulation breakdown details" }
      },
      "glazing": {
        "amount": 1602.5,
        "warning": "",
        "details": { "...": "see Glazing breakdown details" }
      },
      "ventilation": { "amount": 400, "warning": "", "details": {} },
      "heat_pump_primary": {
        "amount": 2150,
        "warning": "",
        "details": { "...": "see Heat pump breakdown details" }
      },
      "heat_pump_extra": {
        "amount": 0,
        "warning": "Energie-efficiency klasse voor dit type warmtepomp moet minimaal A++ zijn bij installatie vanaf 1 januari 2024.",
        "details": {}
      },
      "solar_boiler": {
        "amount": 1750,
        "warning": "Dit subsidiebedrag is indicatief, raadpleeg de ISDE-apparatenlijst zonneboilers voor het exacte bedrag.",
        "details": {}
      },
      "district_heating": {
        "amount": 3775,
        "warning": "Dit subsidiebedrag is inclusief een bijdrage voor een elektrische kookvoorziening.",
        "details": {}
      },
      "electric_cooking": {
        "amount": 0,
        "warning": "U komt niet in aanmerking voor een aparte subsidie voor de elektrische kookvoorziening, omdat deze al bij de aansluiting op een warmtenet is inbegrepen.",
        "details": {}
      }
    }
  }
}
```

**`isde_2026` top-level fields**

| Field                    | Type    | Description                                                                                           |
| ------------------------ | ------- | ----------------------------------------------------------------------------------------------------- |
| `total_subsidy_euro`     | number  | Sum of all category amounts (EUR).                                                                    |
| `category_count`         | integer | Number of categories that returned an amount > 0.                                                     |
| `eligibility`            | object  | Boolean map of eligibility checks per category group.                                                 |
| `prior_isde_warning`     | string  | Warning related to prior ISDE applications, in Dutch. Empty string if none.                           |
| `skip_primary_heat_pump` | boolean | Indicates whether the primary heat pump was skipped (e.g. because an extra heat pump took its place). |
| `breakdown`              | object  | Per-category breakdown. See below.                                                                    |

**`breakdown` per-category fields**

Each category (`insulation`, `glazing`, `ventilation`, `heat_pump_primary`, `heat_pump_extra`, `solar_boiler`, `district_heating`, `electric_cooking`) follows the same shape:

| Field     | Type   | Description                                                               |
| --------- | ------ | ------------------------------------------------------------------------- |
| `amount`  | number | Calculated subsidy amount for this category (EUR).                        |
| `warning` | string | Dutch warning message, or empty string.                                   |
| `details` | object | Category-specific calculation detail. Empty object for simple categories. |

#### <mark style="color:$primary;">Flow 4 - Combined</mark>

Send `postcode`, `applicant`, and `isde` in one request to get subsidies, loans, and ISDE calculation in a single response. The top-level response structure is the same as in the Complete request example.

### Request schema reference

#### <mark style="color:yellow;">Applicant object</mark>

All fields are required when `applicant` is provided unless marked otherwise.

| Field                              | Type            | Description                                                                          |
| ---------------------------------- | --------------- | ------------------------------------------------------------------------------------ |
| `age`                              | integer         | Applicant's age in years. Some programs (e.g. NWF 1) have age caps.                  |
| `is_homeowner`                     | boolean         | Whether the applicant owns the property.                                             |
| `is_occupant`                      | boolean         | Whether the applicant lives in the property.                                         |
| `residence_country`                | string          | Country of residence. Most programs require `Netherlands`.                           |
| `property_use_residential_percent` | integer         | Percentage of the property used for residential purposes (0–100).                    |
| `credit_approved`                  | boolean         | Whether the applicant has passed a credit check.                                     |
| `previously_rejected_nwf1`         | boolean         | Whether the applicant was previously rejected for an NWF 1 loan.                     |
| `rejection_reason`                 | string \| null  | Reason for prior rejection, if applicable.                                           |
| `requested_amount`                 | number          | Requested loan amount in EUR.                                                        |
| `existing_nwf_loan_balance`        | number          | Current outstanding balance on existing NWF loans (EUR).                             |
| `specific_target_group`            | boolean         | Whether the applicant belongs to a specific target group eligible for special terms. |
| `collective_neighborhood`          | boolean         | Whether the application is part of a collective neighbourhood project.               |
| `has_mortgage_security`            | boolean         | Whether a mortgage security is in place.                                             |
| `business_part_connected`          | boolean \| null | Indicates connection to a business part of the property.                             |
| `gross_household_income`           | number          | Gross annual household income in EUR. Used for income-based interest tiers.          |
| `desired_loan_period_years`        | integer         | Requested repayment period in years.                                                 |

#### <mark style="color:yellow;">ISDE object</mark>

The `isde` object enables ISDE 2026 subsidy calculation. All sub-fields are optional - only include measures that apply.

<mark style="color:$info;">**Top-level fields**</mark>

| Field               | Type           | Description                              |
| ------------------- | -------------- | ---------------------------------------- |
| `prior_isde`        | string         | Number of prior ISDE applications.       |
| `prior_heat_pump`   | string         | Indicates prior heat pump status.        |
| `insulation`        | object         | Insulation measures. See below.          |
| `glazing`           | object         | Glazing measures. See below.             |
| `ventilation`       | object         | Mechanical ventilation. See below.       |
| `heat_pump_primary` | object         | Primary heat pump. See below.            |
| `heat_pump_extra`   | object \| null | Additional heat pump, if any.            |
| `solar_boiler`      | object         | Solar boiler.                            |
| `district_heating`  | object         | District heating (warmtenet) connection. |
| `electric_cooking`  | object         | Electric cooking installation.           |

{% hint style="info" %}
Possible values for prior\_isde and prior\_heat\_pump

* **`prior_isde`** : `"1"` = never, `"2"` = yes, more than 24 months ago, `"3"` = yes, within last 24 months
* **`prior_heat_pump`** : `"none"` / `"1"` = no prior heat pump subsidy, `"2"` = LW warmtepomp 1–70 kW, with bonus, `"3"` = LW warmtepomp 1–70 kW, without bonus, `"4"` = LW warmtepomp 71–400 kW
  {% endhint %}

<mark style="color:cyan;">**Insulation**</mark>

A dictionary of insulation measures. Supported keys: `roof`, `attic`, `facade`, `cavity`, `floor`, `bottom`. Each entry has the shape:

| Field         | Type    | Description                                                                |
| ------------- | ------- | -------------------------------------------------------------------------- |
| `selected`    | boolean | Whether this measure is included.                                          |
| `area_m2`     | number  | Insulated surface area in m².                                              |
| `date_bucket` | string  | Installation period `"2025_2026"`, `"2024_24m"`, `"not_applicable"`        |
| `biobased`    | boolean | Whether biobased/ecological materials were used. `true` adds an MKI bonus. |

<mark style="color:cyan;">**Glazing**</mark>

A dictionary of glazing measures. Supported keys: `hrpp`, `triple`, `panel12`, `panel07`, `door15`, `door10`. Each entry has the shape:

| Field            | Type    | Description                                   |
| ---------------- | ------- | --------------------------------------------- |
| `selected`       | boolean | Whether this measure is included.             |
| `area_2024`      | number  | Surface area in m² installed in 2024.         |
| `area_2025_2026` | number  | Surface area in m² installed in 2025 or 2026. |

<mark style="color:cyan;">**Ventilation**</mark>

| Field                            | Type    | Description                                                                                            |
| -------------------------------- | ------- | ------------------------------------------------------------------------------------------------------ |
| `selected`                       | boolean | Whether ventilation is included.                                                                       |
| `within_24_months_of_insulation` | boolean | Whether ventilation was installed within 24 months of an insulation measure. Required for eligibility. |
| `install_year`                   | integer | Year of installation. Must be `2026`                                                                   |

<mark style="color:cyan;">**Heat pump (primary and extra)**</mark>

`heat_pump_primary` and `heat_pump_extra` follow the same shape:

| Field           | Type    | Description                                      |
| --------------- | ------- | ------------------------------------------------ |
| `selected`      | boolean | Whether this heat pump is included.              |
| `pump_type`     | string  | Heat pump category. See enum below.              |
| `energy_class`  | string  | Energy efficiency label (e.g. `A++`, `A+++`).    |
| `power_kw`      | number  | Installed capacity in kW.                        |
| `install_year`  | integer | Year of installation. `2024`, `2025`, `2026`     |
| `purchase_year` | integer | Year of purchase. `2024`, `2025`, `2026`, `null` |
| `role`          | string  | `primary` or `extra`.                            |

**Supported `pump_type` values:**

* `Lucht-water ≥ 1 kW en ≤ 70 kW` *(most common)*
* `Grond-water ≥ 1 kW en < 10 kW`
* `Water-water ≥ 1 kW en < 10 kW`
* `Lucht-water ≥ 1 kW en < 13 kW (compact/split)`
* `Lucht-lucht warmtepomp`

<mark style="color:cyan;">**Solar boiler**</mark>

| Field          | Type    | Description                                                 |
| -------------- | ------- | ----------------------------------------------------------- |
| `selected`     | boolean | Whether a solar boiler is included.                         |
| `boiler_type`  | string  | Type of solar boiler. `"Zonneboiler"`, `"Zonneboilercombi"` |
| `size_bucket`  | string  | Collector surface size. `"<=5"`, `">5<=10"`                 |
| `install_year` | integer | Year of installation. `2024`, `2025`, `2026`                |

<mark style="color:cyan;">**District heating**</mark>

| Field         | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `selected`    | boolean | Whether a district heating connection is included.                                                                                             |
| `year_bucket` | string  | <p>Installation/Connection period. <code>"2024\_24m"</code>, <code>"not\_applicable"</code></p><p>Only <code>"2024\_24m"</code> qualifies.</p> |

<mark style="color:cyan;">**Electric cooking**</mark>

| Field                                   | Type    | Description                                                       |
| --------------------------------------- | ------- | ----------------------------------------------------------------- |
| `selected`                              | boolean | Whether electric cooking is included.                             |
| `on_warmtenet`                          | boolean | Whether the property is on a heat network.                        |
| `district_heating_subsidy_received`     | boolean | Whether a district heating subsidy has already been received.     |
| `gas_disconnected_and_within_24_months` | boolean | Whether the gas connection was removed within the last 24 months. |

### Tags reference

The `tags` field filters subsidies by topic. Pass one or more values, exact case-sensitive match, Dutch only.

**Sustainability (general)** `Duurzaamheid`, `Duurzaamheid en samenleving`, `Duurzaam ondernemen`, `Duurzaam bouwen en verbouwen`, `Duurzaam en slim rijden`, `Duurzaam financieren`, `Duurzaam produceren`, `Duurzaam voedsel`, `Verduurzamen`

**Climate & emissions** `Klimaatadaptatie`, `Klimaatakkoord`, `Klimaatbeleid`, `Klimaatneutraal`, `Klimaatverandering`, `CO2`, `CO2-neutraal`, `CO2-opslag`, `CO2-reductie`, `Emissiereductie`, `Emissie`, `Emissiehandel`, `Niet-CO2-broeikasgassen`

**Air quality** `Fijn stof`, `Luchtkwaliteit`, `NOx-beperkende technieken`, `Stikstof`

**Renewable energy** `Hernieuwbare energie`, `Duurzame energie`, `Duurzame energievoorziening`, `Duurzame elektriciteit`, `Zonnepanelen`, `Zon-PV-installaties`, `Zonneboilers`, `Wind`, `Wind op land`, `Wind op zee`, `Windmolens`, `Windturbines`, `Waterstof`, `Waterstofcellen`, `Biomassaketels`, `Groen gas`, `Aardgasvrij`, `Energie uit water`, `Bodemenergie`

**Energy efficiency & buildings** `Energiebesparing`, `Energieopslag`, `Opslag van elektriciteit`, `Netcongestie`, `Isolatie`, `Isoleren`, `Warmtepompen`, `Warmte Koude Opslag`, `Duurzame warmte en koude`, `Ledverlichting`, `Ventilatie en binnenmilieu`, `Gebouwde omgeving`

**Circular economy & materials** `Circulair ondernemen`, `Biobased economy`, `Biobased materialen`, `Afval`, `Grondstoffen`, `Valorisatie`

**Nature & environment** `Natuur`, `Natuurbeheer`, `Natuurterreinen`, `Bodem`, `Oppervlaktewater`, `Grondwater`, `Verontreiniging`, `Lucht`, `Milieu`, `Milieuzorg`, `Eco-activiteiten`

**Mobility & innovation** `Duurzame mobiliteit`, `Duurzame ontwikkeling`, `Duurzame technologie`, `Duurzame innovatie`, `Elektrisch rijden`, `Mobiliteit en ruimte`

**UN SDGs** `SDG7 Betaalbare en duurzame energie`, `SDG11 Duurzame steden en gemeenschappen`, `SDG12 Verantwoorde consumptie en productie`, `SDG13 Klimaatactie`, `SDG14 Leven in het water`, `SDG15 Leven op het land`

{% tabs %}
{% tab title="200: OK Standard response" %}

```
Successful response.
```

{% endtab %}

{% tab title="400: Bad Request Unsuccessful response" %}

<pre><code>{
// Applicant validation failure:
{
  "detail": "Applicant must be a credit-approved owner-occupier of an existing home in the Netherlands with ≥75% residential use."
}

<strong>// Invalid loan period:
</strong>{
  "detail": "Desired loan period must be between 1 and 20 years."
}

// No eligible loan programs:
{
  "detail": "No eligible loan program found for this applicant. Check criteria at www.warmtefonds.nl or contact your municipality for Duurzaamheidslening availability."
}

}
</code></pre>

{% endtab %}

{% tab title="404 Not Found" %}

```
{
  "detail": "Could not resolve postcode to a municipality."
}
```

{% endtab %}

{% tab title="500: Internal Server Error Service is not available and/or down" %}

```
{
  "detail": "An unexpected error occurred while resolving the postcode."
}
```

{% endtab %}
{% endtabs %}


---

# 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/sustainability/sustainability-subsidy-api/authentication-input-and-response.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.
