Api Endpoint

solar.halowerk.com

Computes a transparent planning estimate for space-heating demand. The method is not DIN, VDI, GEG or PHPP and must not be used as regulatory proof. It combines transmission heat loss from each envelope component, ventilation heat loss from heated volume and air changes, monthly heating degree days from the nearest DWD 1991-2020 temperature-normal station, stated internal gains and optional domestic hot water.

Open interactive test console

Offering

Provider
solar.halowerk.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Weather And Environment
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://solar.halowerk.com/building-heat-demand
MIME type
Not provided
First seen
2026-10-16T01:58:26.121Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.004 USDC
Atomic price: 4000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "4000",
    "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
  }
]

Observed health

Status
Healthy
Latest latency
1199 ms
Average latency
1229 ms
HTTP status
204
Last checked
Reachability
85.7% over 7 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "additionalProperties": false,
      "examples": [
        {
          "domestic_hot_water_kwh_year": 1800,
          "envelope": [
            {
              "area_m2": 168,
              "name": "external walls",
              "u_value_w_m2k": 0.22
            },
            {
              "area_m2": 118,
              "name": "roof",
              "u_value_w_m2k": 0.16
            },
            {
              "area_m2": 92,
              "name": "ground floor",
              "u_value_w_m2k": 0.25
            },
            {
              "area_m2": 31,
              "name": "windows",
              "u_value_w_m2k": 0.95
            }
          ],
          "heated_floor_area_m2": 145,
          "heated_volume_m3": 365,
          "lat": 52.52,
          "lon": 13.405,
          "max_station_distance_km": 70,
          "profile": {
            "heating_base_temp_c": 15,
            "indoor_temp_c": 20,
            "internal_gains_w": 350
          },
          "system_efficiency": 0.92,
          "ventilation": {
            "air_changes_per_hour": 0.45,
            "heat_recovery_efficiency": 0.15
          }
        }
      ],
      "properties": {
        "domestic_hot_water_kwh_year": {
          "default": 0,
          "maximum": 1000000,
          "minimum": 0,
          "type": "number"
        },
        "envelope": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "area_m2": {
                "maximum": 100000,
                "minimum": 0.1,
                "type": "number"
              },
              "name": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "u_value_w_m2k": {
                "maximum": 8,
                "minimum": 0.01,
                "type": "number"
              }
            },
            "required": [
              "name",
              "area_m2",
              "u_value_w_m2k"
            ],
            "type": "object"
          },
          "maxItems": 40,
          "minItems": 1,
          "type": "array"
        },
        "heated_floor_area_m2": {
          "maximum": 100000,
          "minimum": 5,
          "type": "number"
        },
        "heated_volume_m3": {
          "maximum": 1000000,
          "minimum": 10,
          "type": "number"
        },
        "lat": {
          "description": "Latitude in Germany; the DWD normal dataset used here covers Germany.",
          "maximum": 56,
          "minimum": 47,
          "type": "number"
        },
        "lon": {
          "maximum": 16,
          "minimum": 5,
          "type": "number"
        },
        "max_station_distance_km": {
          "default": 80,
          "maximum": 200,
          "minimum": 1,
          "type": "number"
        },
        "profile": {
          "additionalProperties": false,
          "properties": {
            "heating_base_temp_c": {
              "default": 15,
              "maximum": 25,
              "minimum": 0,
              "type": "number"
            },
            "indoor_temp_c": {
              "default": 20,
              "maximum": 30,
              "minimum": 5,
              "type": "number"
            },
            "internal_gains_w": {
              "default": 0,
              "maximum": 100000,
              "minimum": 0,
              "type": "number"
            }
          },
          "type": "object"
        },
        "system_efficiency": {
          "default": 1,
          "maximum": 1.5,
          "minimum": 0.5,
          "type": "number"
        },
        "thermal_bridge_w_k": {
          "default": 0,
          "maximum": 100000,
          "minimum": 0,
          "type": "number"
        },
        "ventilation": {
          "additionalProperties": false,
          "properties": {
            "air_changes_per_hour": {
              "default": 0.5,
              "maximum": 5,
              "minimum": 0,
              "type": "number"
            },
            "heat_recovery_efficiency": {
              "default": 0,
              "maximum": 0.95,
              "minimum": 0,
              "type": "number"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "lat",
        "lon",
        "heated_floor_area_m2",
        "heated_volume_m3",
        "envelope"
      ],
      "type": "object"
    },
    "bodyType": {
      "enum": [
        "json",
        "form-data",
        "text"
      ],
      "type": "string"
    },
    "method": {
      "enum": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "type": "string"
    },
    "type": {
      "const": "http",
      "type": "string"
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "type": "object"
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "examples": [
            {
              "domestic_hot_water_kwh_year": 1800,
              "envelope": [
                {
                  "area_m2": 168,
                  "name": "external walls",
                  "u_value_w_m2k": 0.22
                },
                {
                  "area_m2": 118,
                  "name": "roof",
                  "u_value_w_m2k": 0.16
                },
                {
                  "area_m2": 92,
                  "name": "ground floor",
                  "u_value_w_m2k": 0.25
                },
                {
                  "area_m2": 31,
                  "name": "windows",
                  "u_value_w_m2k": 0.95
                }
              ],
              "heated_floor_area_m2": 145,
              "heated_volume_m3": 365,
              "lat": 52.52,
              "lon": 13.405,
              "max_station_distance_km": 70,
              "profile": {
                "heating_base_temp_c": 15,
                "indoor_temp_c": 20,
                "internal_gains_w": 350
              },
              "system_efficiency": 0.92,
              "ventilation": {
                "air_changes_per_hour": 0.45,
                "heat_recovery_efficiency": 0.15
              }
            }
          ],
          "properties": {
            "domestic_hot_water_kwh_year": {
              "default": 0,
              "maximum": 1000000,
              "minimum": 0,
              "type": "number"
            },
            "envelope": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "area_m2": {
                    "maximum": 100000,
                    "minimum": 0.1,
                    "type": "number"
                  },
                  "name": {
                    "maxLength": 80,
                    "minLength": 1,
                    "type": "string"
                  },
                  "u_value_w_m2k": {
                    "maximum": 8,
                    "minimum": 0.01,
                    "type": "number"
                  }
                },
                "required": [
                  "name",
                  "area_m2",
                  "u_value_w_m2k"
                ],
                "type": "object"
              },
              "maxItems": 40,
              "minItems": 1,
              "type": "array"
            },
            "heated_floor_area_m2": {
              "maximum": 100000,
              "minimum": 5,
              "type": "number"
            },
            "heated_volume_m3": {
              "maximum": 1000000,
              "minimum": 10,
              "type": "number"
            },
            "lat": {
              "description": "Latitude in Germany; the DWD normal dataset used here covers Germany.",
              "maximum": 56,
              "minimum": 47,
              "type": "number"
            },
            "lon": {
              "maximum": 16,
              "minimum": 5,
              "type": "number"
            },
            "max_station_distance_km": {
              "default": 80,
              "maximum": 200,
              "minimum": 1,
              "type": "number"
            },
            "profile": {
              "additionalProperties": false,
              "properties": {
                "heating_base_temp_c": {
                  "default": 15,
                  "maximum": 25,
                  "minimum": 0,
                  "type": "number"
                },
                "indoor_temp_c": {
                  "default": 20,
                  "maximum": 30,
                  "minimum": 5,
                  "type": "number"
                },
                "internal_gains_w": {
                  "default": 0,
                  "maximum": 100000,
                  "minimum": 0,
                  "type": "number"
                }
              },
              "type": "object"
            },
            "system_efficiency": {
              "default": 1,
              "maximum": 1.5,
              "minimum": 0.5,
              "type": "number"
            },
            "thermal_bridge_w_k": {
              "default": 0,
              "maximum": 100000,
              "minimum": 0,
              "type": "number"
            },
            "ventilation": {
              "additionalProperties": false,
              "properties": {
                "air_changes_per_hour": {
                  "default": 0.5,
                  "maximum": 5,
                  "minimum": 0,
                  "type": "number"
                },
                "heat_recovery_efficiency": {
                  "default": 0,
                  "maximum": 0.95,
                  "minimum": 0,
                  "type": "number"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "lat",
            "lon",
            "heated_floor_area_m2",
            "heated_volume_m3",
            "envelope"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}