OpenAPI specifications

GET the OpenAPI specifications for every API by adding /openai to the endpoint. No authentication required.

Example GET request for the Sustainability API

GET request for OpenAPI specifications

GET https://api.altum.ai/sustainability/openapi

{
	"openapi": "3.0.2",
	"info": {
		"title": "Sustainability API",
		"description": "Check savings for object",
		"version": "0.1.0"
	},
	"paths": {
		"/sustainability": {
			"post": {
				"summary": "Savings From Address",
				"description": "endpoint to collect data from ES/AVM, RVO/SUSTEEN API and eco delta API, apply business logic and serialize it",
				"operationId": "savings_from_address_sustainability_post",
				"requestBody": {
					"content": {
						"application/json": {
							"schema": {
								"$ref": "#/components/schemas/Body_savings_from_address_sustainability_post"
							}
						}
					},
					"required": true
				},
				"responses": {
					"200": {
						"description": "Successful Response",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/OutputSavings"
								}
							}
						}
					},
					"422": {
						"description": "Validation Error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/HTTPValidationError"
								}
							}
						}
					}
				}
			}
		},
		"/sustainability_bagid": {
			"get": {
				"summary": "Savings From Bagid",
				"operationId": "savings_from_bagid_sustainability_bagid_get",
				"parameters": [
					{
						"required": true,
						"schema": {
							"title": "Bag Id",
							"maxLength": 16,
							"minLength": 14,
							"type": "string"
						},
						"name": "bag_id",
						"in": "query"
					}
				],
				"responses": {
					"200": {
						"description": "Successful Response",
						"content": {
							"application/json": {
								"schema": {}
							}
						}
					},
					"422": {
						"description": "Validation Error",
						"content": {
							"application/json": {
								"schema": {
									"$ref": "#/components/schemas/HTTPValidationError"
								}
							}
						}
					}
				}
			}
		}
	},
	"components": {
		"schemas": {
			"AardgasKeuzeEn": {
				"title": "AardgasKeuzeEn",
				"enum": [
					0,
					1,
					2
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"Address": {
				"title": "Address",
				"required": [
					"house_number",
					"post_code"
				],
				"type": "object",
				"properties": {
					"house_number": {
						"title": "House Number",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"post_code": {
						"title": "Post Code",
						"pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$",
						"type": "string",
						"example": "1234AB"
					},
					"addition": {
						"title": "Addition",
						"type": "string",
						"default": ""
					},
					"street": {
						"title": "Street",
						"type": "string"
					},
					"city": {
						"title": "City",
						"type": "string"
					},
					"location": {
						"$ref": "#/components/schemas/LatLon"
					}
				}
			},
			"BENG2": {
				"title": "BENG2",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "integer"
					},
					"potential": {
						"title": "Potential",
						"type": "integer"
					}
				}
			},
			"Body_savings_from_address_sustainability_post": {
				"title": "Body_savings_from_address_sustainability_post",
				"required": [
					"data"
				],
				"type": "object",
				"properties": {
					"data": {
						"$ref": "#/components/schemas/InputSavings"
					}
				}
			},
			"Building": {
				"title": "Building",
				"type": "object",
				"properties": {
					"build_year": {
						"title": "Build Year",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"inner_surface": {
						"title": "Inner Surface",
						"exclusiveMinimum": 0.0,
						"type": "number"
					},
					"type": {
						"$ref": "#/components/schemas/ESBuildingType"
					}
				}
			},
			"CO2": {
				"title": "CO2",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "integer"
					},
					"potential": {
						"title": "Potential",
						"type": "integer"
					}
				}
			},
			"ComfortScore": {
				"title": "ComfortScore",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "integer"
					},
					"potential": {
						"title": "Potential",
						"type": "integer"
					}
				}
			},
			"CriteriumEn": {
				"title": "CriteriumEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"CustomCost": {
				"title": "CustomCost",
				"required": [
					"code"
				],
				"type": "object",
				"properties": {
					"code": {
						"$ref": "#/components/schemas/KengetalEn"
					},
					"value": {
						"title": "Value",
						"exclusiveMinimum": 0.0,
						"type": "number"
					}
				}
			},
			"DakIsolatieEn": {
				"title": "DakIsolatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"DoucheWtwEn": {
				"title": "DoucheWtwEn",
				"enum": [
					0,
					1
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"ELG": {
				"title": "ELG",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "number"
					},
					"potential": {
						"title": "Potential",
						"type": "number"
					}
				}
			},
			"ESBuildingType": {
				"title": "ESBuildingType",
				"enum": [
					"2 onder 1 kap",
					"hoekwoning",
					"tussenwoning",
					"appartement",
					"vrijstaand"
				],
				"description": "ES holds strings which are translated/unified within this class.\n\n> Hoekwoning\nHoekwoning is a the corner house of a rijwoning, Hoek meaning corner.\nSo where rijwoning tussen are the middle houses in a houseblock, hoekwoningen are the corners of these\n\n> Do we distinguish `vrijstaand groot` from `vrijstaand klein`.\nNo."
			},
			"EnergyCalculations": {
				"title": "EnergyCalculations",
				"type": "object",
				"properties": {
					"variable_gas_price": {
						"title": "Variable Gas Price",
						"type": "number"
					},
					"variable_electricity_price": {
						"title": "Variable Electricity Price",
						"type": "number"
					},
					"solarpanel_watt_peak_per_m2": {
						"title": "Solarpanel Watt Peak Per M2",
						"type": "integer"
					}
				}
			},
			"EnergyIndex": {
				"title": "EnergyIndex",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "number"
					},
					"potential": {
						"title": "Potential",
						"type": "number"
					}
				}
			},
			"Financial": {
				"title": "Financial",
				"type": "object",
				"properties": {
					"total_investment": {
						"title": "Total Investment",
						"minimum": 0.0,
						"type": "number"
					},
					"total_saving": {
						"title": "Total Saving",
						"type": "number"
					},
					"months_to_pay_off": {
						"title": "Months To Pay Off",
						"type": "integer"
					},
					"eco_value": {
						"title": "Eco Value",
						"minimum": 0.0,
						"type": "number"
					},
					"savings_monthly": {
						"title": "Savings Monthly",
						"type": "integer"
					},
					"energy_cost_monthly": {
						"title": "Energy Cost Monthly",
						"type": "integer"
					},
					"loan": {
						"$ref": "#/components/schemas/Loan"
					}
				}
			},
			"GevelIsolatieEn": {
				"title": "GevelIsolatieEn",
				"enum": [
					0,
					1,
					2,
					3
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"GlasLeefEn": {
				"title": "GlasLeefEn",
				"enum": [
					0,
					1,
					2,
					3
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"GlasSlaapEn": {
				"title": "GlasSlaapEn",
				"enum": [
					0,
					1,
					2,
					3
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"HTTPValidationError": {
				"title": "HTTPValidationError",
				"type": "object",
				"properties": {
					"detail": {
						"title": "Detail",
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/ValidationError"
						}
					}
				}
			},
			"ImprovementCost": {
				"title": "ImprovementCost",
				"required": [
					"code"
				],
				"type": "object",
				"properties": {
					"code": {
						"$ref": "#/components/schemas/VerbeterKosten"
					},
					"material": {
						"title": "Material",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"work": {
						"title": "Work",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"saving_material": {
						"title": "Saving Material",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"saving_work": {
						"title": "Saving Work",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					}
				},
				"description": "Optional inputs to set personal costs for material and work"
			},
			"InputSavings": {
				"title": "InputSavings",
				"required": [
					"post_code",
					"house_number"
				],
				"type": "object",
				"properties": {
					"post_code": {
						"title": "Post Code",
						"pattern": "^(?!1000|1001|1002|1003|1004|1005|1006|1007|1008|1009|1010)[1-9][0-9]{3}[A-Z]{2}$",
						"type": "string",
						"example": "1234AB"
					},
					"house_number": {
						"title": "House Number",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"house_addition": {
						"title": "House Addition",
						"type": "string"
					},
					"lock_measures": {
						"$ref": "#/components/schemas/LockMeasures"
					},
					"eco_delta": {
						"title": "Eco Delta",
						"type": "boolean",
						"default": 1
					},
					"max_investment": {
						"title": "Max Investment",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"target_label": {
						"title": "Target Label",
						"maxLength": 5,
						"minLength": 1,
						"pattern": "^A\\+\\+\\+\\+$|^A\\+\\+\\+$|^A\\+\\+$|^A\\+$|^A$|^B$|^C$|^D$|^E$|^F$|^G$",
						"type": "string"
					},
					"gas_usage": {
						"title": "Gas Usage",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"heat_usage": {
						"title": "Heat Usage",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"electricity_usage": {
						"title": "Electricity Usage",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"inner_surface_area": {
						"title": "Inner Surface Area",
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"inhabitants": {
						"title": "Inhabitants",
						"maximum": 15.0,
						"minimum": 1.0,
						"type": "integer"
					},
					"build_year": {
						"title": "Build Year",
						"maximum": 2030.0,
						"minimum": 1000.0,
						"type": "integer"
					},
					"search_criteria": {
						"$ref": "#/components/schemas/CriteriumEn"
					},
					"heat_pump_allowed": {
						"title": "Heat Pump Allowed",
						"type": "boolean"
					},
					"replace_boiler": {
						"title": "Replace Boiler",
						"type": "boolean"
					},
					"natural_gas": {
						"$ref": "#/components/schemas/AardgasKeuzeEn"
					},
					"solar_panels_surface": {
						"$ref": "#/components/schemas/PVOptieEn"
					},
					"solar_panels": {
						"title": "Solar Panels",
						"minimum": 1.0,
						"type": "integer"
					},
					"wall_insulation": {
						"$ref": "#/components/schemas/GevelIsolatieEn"
					},
					"roof_insulation": {
						"$ref": "#/components/schemas/DakIsolatieEn"
					},
					"floor_insulation": {
						"$ref": "#/components/schemas/VloerIsolatieEn"
					},
					"living_room_windows": {
						"$ref": "#/components/schemas/GlasLeefEn"
					},
					"bedroom_windows": {
						"$ref": "#/components/schemas/GlasSlaapEn"
					},
					"installation": {
						"$ref": "#/components/schemas/InstallatieEn"
					},
					"shower": {
						"$ref": "#/components/schemas/DoucheWtwEn"
					},
					"ventilation": {
						"$ref": "#/components/schemas/VentilatieEn"
					},
					"house_type": {
						"title": "House Type",
						"exclusiveMaximum": 6.0,
						"exclusiveMinimum": 0.0,
						"type": "integer"
					},
					"api_debug": {
						"title": "Api Debug",
						"type": "integer"
					},
					"custom_costs": {
						"title": "Custom Costs",
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/CustomCost"
						},
						"default": []
					},
					"improvement_costs": {
						"title": "Improvement Costs",
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/ImprovementCost"
						},
						"default": []
					},
					"energylabel_strict": {
						"title": "Energylabel Strict",
						"maximum": 1.0,
						"minimum": 0.0,
						"type": "integer"
					},
					"fetch_definitive_label": {
						"title": "Fetch Definitive Label",
						"maximum": 1.0,
						"minimum": 0.0,
						"type": "integer",
						"default": 0
					},
					"heatpump_insulation_req": {
						"title": "Heatpump Insulation Req",
						"maximum": 3.0,
						"minimum": 0.0,
						"type": "integer"
					},
					"exclude_measure": {
						"title": "Exclude Measure",
						"type": "array",
						"items": {},
						"default": []
					},
					"minimum_solar_panels": {
						"title": "Minimum Solar Panels",
						"type": "integer"
					},
					"solarpanel_watt_peak": {
						"title": "Solarpanel Watt Peak",
						"minimum": 1.0,
						"type": "integer"
					}
				},
				"description": "All possible input parameters\n:param post_code: format 1234AB\n:param house_number:\n:param addition: House number addition ex. A, B, A02\n:param lock_measures: disable some measures\n:param max_investment: max amount of money we want to invest\n:param target_label: DoelLabel"
			},
			"InstallatieEn": {
				"title": "InstallatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4,
					5,
					6,
					7,
					8,
					9,
					10,
					29,
					30,
					31,
					32,
					33
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"KengetalEn": {
				"title": "KengetalEn",
				"enum": [
					0,
					1,
					2,
					3,
					4,
					5,
					6,
					7,
					8,
					9,
					10,
					11,
					12,
					13,
					14,
					15,
					21,
					22,
					23
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"Label": {
				"title": "Label",
				"type": "object",
				"properties": {
					"current": {
						"title": "Current",
						"type": "string"
					},
					"potential": {
						"title": "Potential",
						"type": "string"
					}
				}
			},
			"LatLon": {
				"title": "LatLon",
				"type": "object",
				"properties": {
					"lat": {
						"title": "Lat",
						"type": "number"
					},
					"lon": {
						"title": "Lon",
						"type": "number"
					}
				}
			},
			"Loan": {
				"title": "Loan",
				"type": "object",
				"properties": {
					"monthly_payment": {
						"title": "Monthly Payment",
						"minimum": 0.0,
						"type": "number"
					}
				}
			},
			"LockMeasures": {
				"title": "LockMeasures",
				"required": [
					"lock"
				],
				"type": "object",
				"properties": {
					"lock": {
						"title": "Lock",
						"type": "array",
						"items": {
							"type": "string"
						}
					}
				}
			},
			"Measure": {
				"title": "Measure",
				"required": [
					"investment",
					"saving",
					"gas_savings"
				],
				"type": "object",
				"properties": {
					"before": {
						"$ref": "#/components/schemas/MeasureItem"
					},
					"after": {
						"$ref": "#/components/schemas/MeasureItem"
					},
					"investment": {
						"title": "Investment",
						"minimum": 0.0,
						"type": "number"
					},
					"saving": {
						"title": "Saving",
						"type": "integer"
					},
					"co2_reduce": {
						"title": "Co2 Reduce",
						"type": "integer"
					},
					"BENG2": {
						"title": "Beng2",
						"type": "string"
					},
					"gas_savings": {
						"title": "Gas Savings",
						"type": "integer"
					}
				}
			},
			"MeasureItem": {
				"title": "MeasureItem",
				"type": "object",
				"properties": {
					"desc": {
						"title": "Desc",
						"type": "string"
					},
					"value": {
						"title": "Value",
						"type": "integer"
					}
				}
			},
			"Meta": {
				"title": "Meta",
				"required": [
					"notes",
					"created",
					"internal"
				],
				"type": "object",
				"properties": {
					"notes": {
						"title": "Notes",
						"type": "array",
						"items": {
							"type": "object"
						}
					},
					"created": {
						"title": "Created",
						"type": "string",
						"format": "date"
					},
					"internal": {
						"title": "Internal",
						"type": "object"
					}
				},
				"description": "Meta information about the response.\nNot sensitive but useful to API authors mainly.\nSome available only if INTERNAL_LOGS is set."
			},
			"OutputSavings": {
				"title": "OutputSavings",
				"required": [
					"address"
				],
				"type": "object",
				"properties": {
					"address": {
						"$ref": "#/components/schemas/Address"
					},
					"building": {
						"$ref": "#/components/schemas/Building"
					},
					"label": {
						"$ref": "#/components/schemas/Label"
					},
					"provided_label": {
						"$ref": "#/components/schemas/ProvidedLabel"
					},
					"BENG2": {
						"$ref": "#/components/schemas/BENG2"
					},
					"meta": {
						"$ref": "#/components/schemas/Meta"
					},
					"energyindex": {
						"$ref": "#/components/schemas/EnergyIndex"
					},
					"ELG": {
						"$ref": "#/components/schemas/ELG"
					},
					"comfortscore": {
						"$ref": "#/components/schemas/ComfortScore"
					},
					"CO2": {
						"$ref": "#/components/schemas/CO2"
					},
					"financial": {
						"$ref": "#/components/schemas/Financial"
					},
					"usage": {
						"$ref": "#/components/schemas/Usage"
					},
					"usage_potential": {
						"$ref": "#/components/schemas/UsagePotential"
					},
					"energy_prices": {
						"$ref": "#/components/schemas/EnergyCalculations"
					},
					"measures": {
						"title": "Measures",
						"type": "object",
						"additionalProperties": {
							"$ref": "#/components/schemas/Measure"
						}
					},
					"response_meta": {
						"title": "Response Meta",
						"type": "object"
					}
				}
			},
			"PVOptieEn": {
				"title": "PVOptieEn",
				"enum": [
					0,
					1,
					2
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"ProvidedLabel": {
				"title": "ProvidedLabel",
				"type": "object",
				"properties": {
					"temporary": {
						"title": "Temporary",
						"type": "string"
					},
					"definitive": {
						"title": "Definitive",
						"type": "string"
					},
					"definitive_type": {
						"title": "Definitive Type",
						"type": "string"
					},
					"definitive_validity": {
						"title": "Definitive Validity",
						"type": "string"
					}
				}
			},
			"Usage": {
				"title": "Usage",
				"type": "object",
				"properties": {
					"gas": {
						"title": "Gas",
						"type": "integer"
					},
					"energy": {
						"title": "Energy",
						"type": "integer"
					}
				}
			},
			"UsagePotential": {
				"title": "UsagePotential",
				"type": "object",
				"properties": {
					"gas": {
						"title": "Gas",
						"type": "integer"
					},
					"energy": {
						"title": "Energy",
						"type": "integer"
					}
				}
			},
			"ValidationError": {
				"title": "ValidationError",
				"required": [
					"loc",
					"msg",
					"type"
				],
				"type": "object",
				"properties": {
					"loc": {
						"title": "Location",
						"type": "array",
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"type": "integer"
								}
							]
						}
					},
					"msg": {
						"title": "Message",
						"type": "string"
					},
					"type": {
						"title": "Error Type",
						"type": "string"
					}
				}
			},
			"VentilatieEn": {
				"title": "VentilatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			},
			"VerbeterKosten": {
				"title": "VerbeterKosten",
				"enum": [
					10001,
					10002,
					10003,
					20002,
					20003,
					30002,
					30003,
					40002,
					40003,
					50001,
					50002,
					50003,
					50102,
					50103,
					50203,
					60001,
					60002,
					60003,
					60004,
					80004,
					80104,
					80204,
					80305,
					80406,
					80506,
					80006,
					80106,
					80306,
					80007,
					80107,
					80407,
					80008,
					80108,
					80408,
					80009,
					80109,
					80209,
					80029,
					80129,
					80529,
					80030,
					80130,
					80430,
					80031,
					80131,
					80431,
					80010,
					70000,
					94001
				],
				"type": "integer",
				"description": "Codes of improvement types. Obtained from RVO with the method OphalenKengetallen (Professionel = 1)\n    "
			},
			"VloerIsolatieEn": {
				"title": "VloerIsolatieEn",
				"enum": [
					0,
					1,
					2,
					3,
					4
				],
				"type": "integer",
				"description": "An enumeration."
			}
		}
	}
}

Last updated