{
    "openapi": "3.1.0",
    "info": {
        "title": "estater.de",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https:\/\/estater.de\/api\/v1"
        }
    ],
    "paths": {
        "\/estates": {
            "get": {
                "operationId": "listUnits",
                "description": "Dieser Endpunkt gibt alle Einheiten zur\u00fcck und erlaubt die Filterung nach Parametern wie Zimmeranzahl, Preis, Fl\u00e4che oder Etage.",
                "summary": "List Estates (Units)",
                "tags": [
                    "Estate"
                ],
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Anzahl der Einheiten pro Seite in der paginierten API-Ausgabe.",
                        "schema": {
                            "type": "number",
                            "default": 15,
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 50
                    },
                    {
                        "name": "portalobjektart",
                        "in": "query",
                        "description": "Optional; Gibt an, welcher Immobilientyp und Nutzungszweck gesucht wird \u2013 Wohnung, Haus oder Grundst\u00fcck, jeweils zur Eigennutzung oder als Kapitalanlage.\n| |\n|---|\n| `WHNG-KF-KA` <br\/> Wohnungen, die gekauft werden k\u00f6nnen und derzeit vermietet sind \u2013 keine Eigennutzung m\u00f6glich. |\n| `WHNG-KF-SB` <br\/> Wohnungen, die gekauft werden k\u00f6nnen, aktuell nicht vermietet sind und selbst genutzt werden k\u00f6nnen. |\n| `HAUS-KF-KA` <br\/> H\u00e4user, die gekauft werden k\u00f6nnen und derzeit vermietet sind \u2013 keine Eigennutzung m\u00f6glich. |\n| `HAUS-KF-SB` <br\/> H\u00e4user, die gekauft werden k\u00f6nnen, aktuell nicht vermietet sind und selbst genutzt werden k\u00f6nnen. |\n| `GRST-KF-SB` <br\/> Unbebaute oder bebaubare Grundst\u00fccke ohne Wohngeb\u00e4ude. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Portalobjektart"
                        }
                    },
                    {
                        "name": "purchasePriceFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit einem Kaufpreis von mindestens X Euro.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000
                        }
                    },
                    {
                        "name": "purchasePriceTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit einem Kaufpreis von h\u00f6chstens X Euro.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000
                        }
                    },
                    {
                        "name": "roomsFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Zimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "roomsTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Zimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bedroomsFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Schlafzimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bedroomsTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Schlafzimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bathroomsFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Badezimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bathroomsTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Badezimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "livingSpaceFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Quadratmetern Wohnfl\u00e4che.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "livingSpaceTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Quadratmetern Wohnfl\u00e4che.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "aiBalconyLoggiaTerraceSpaceFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Quadratmetern Au\u00dfenfl\u00e4che (Balkon, Loggia oder Terrasse).",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "aiBalconyLoggiaTerraceSpaceTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Quadratmetern Au\u00dfenfl\u00e4che (Balkon, Loggia oder Terrasse).",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "geolocations",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Gibt die geografische Lage der Immobilie an, z.\u202fB. Bezirk, Ort oder Region. Erwartet wird eine UUID, wie sie vom Endpunkt `\/geolocations` bereitgestellt wird. Mehrere Geolokationen k\u00f6nnen kommasepariert angegeben werden. Kann nur benutzt werden, wenn `geolocation_query` nicht angegeben ist.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "01962421-7588-7312-8207-6d1c9fac1742,01962421-759c-700f-a970-eba88a3e2654"
                    },
                    {
                        "name": "geolocation_query",
                        "in": "query",
                        "description": "Optional; Gibt die geografische Lage der Immobilie an, z.\u202fB. Bezirk, Ort oder Region. Erwartet wird ein String. Kann nur benutzt werden, wenn `geolocations` nicht angegeben ist.",
                        "schema": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 128
                        },
                        "example": "Charlottenburg"
                    },
                    {
                        "name": "features",
                        "in": "query",
                        "description": "Optional. Gibt die Ausstattungsmerkmale der Immobilie als kommaseparierte Zeichenkette an.\n| |\n|---|\n| `parking-space` <br\/> Zeigt nur Immobilien mit einem PKW Stellplatz. (Wohnungen + H\u00e4user) |\n| `cellar` <br\/> Zeigt nur Immobilien mit einem eigenen Kellerabteil zur alleinigen Nutzung. (Wohnungen + H\u00e4user) |\n| `balcony-terrace` <br\/> Zeigt nur Immobilien mit mindestens einem Balkon, einer Loggia oder einer Terrasse. (Wohnungen + H\u00e4user) |\n| `passenger-lift` <br\/> Zeigt nur Wohnungen, die \u00fcber einen Personenaufzug erreichbar sind. (nur Wohnungen) |\n| `fitted-kitchen` <br\/> Zeigt nur Immobilien mit einer fest eingebauten K\u00fcche. (Wohnungen + H\u00e4user) |\n| `guest-wc` <br\/> Zeigt nur Immobilien mit einem separaten G\u00e4ste-WC. (Wohnungen + H\u00e4user) |\n| `commission-free` <br\/> Zeigt nur Immobilien, bei denen K\u00e4ufer keine Maklerprovision zahlen m\u00fcssen. |\n| `barrier-free` <br\/> Zeigt nur Immobilien die barrierefrei sind. (Wohnungen + H\u00e4user) |\n| `storeroom` <br\/> Zeigt nur Immobilien mit einem Abstellraum. (Wohnungen + H\u00e4user) |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Features"
                        },
                        "example": "parking-space,balcony-terrace"
                    },
                    {
                        "name": "flatTypes",
                        "in": "query",
                        "description": "Optional. Kommasepariert. Begrenzt die Ergebnisse auf bestimmte Wohnungstypen.\n| |\n|---|\n| `dachgeschoss` <br\/> Zeigt nur Immobilien vom Typ Dachgeschosswohnung. |\n| `maisonette` <br\/> Zeigt nur Immobilien vom Typ Maisonette. |\n| `loft_studio_atelier` <br\/> Zeigt nur Immobilien vom Typ Loft, Studio oder Atelier. |\n| `penthouse` <br\/> Zeigt nur Immobilien vom Typ Penthouse. |\n| `terrassen` <br\/> Zeigt nur Immobilien vom Typ Terrassenwohnung. |\n| `etage` <br\/> Zeigt nur Immobilien vom Typ Etagenwohnung. |\n| `erdgeschoss` <br\/> Zeigt nur Immobilien vom Typ Erdgeschosswohnung. |\n| `souterrain` <br\/> Zeigt nur Immobilien vom Typ Souterrainwohnung. |\n| `apartment` <br\/> Zeigt nur Immobilien vom Typ Apartment. |\n| `ferienwohnung` <br\/> Zeigt nur Immobilien vom Typ Ferienwohnung. |\n| `galerie` <br\/> Zeigt nur Immobilien vom Typ Galerie-Wohnung. |\n| `rohdachboden` <br\/> Zeigt nur Immobilien vom Typ Rohdachboden. |\n| `attikawohnung` <br\/> Zeigt nur Immobilien vom Typ Attikawohnung. |\n| `keine_angabe` <br\/> Kein spezifischer Wohnungstyp angegeben. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Wohnungtyp"
                        },
                        "example": "etage,penthouse"
                    },
                    {
                        "name": "houseTypes",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Begrenzt die Ergebnisse auf bestimmte H\u00e4usertypen.\n| |\n|---|\n| `reihenhaus` <br\/> Zeigt nur Immobilien vom Typ Reihenmittelhaus. |\n| `reihenend` <br\/> Zeigt nur Immobilien vom Typ Reihenendhaus |\n| `reihenmittel` <br\/> Zeigt nur Immobilien vom Typ Reihenmittelhaus. |\n| `reiheneck` <br\/> Zeigt nur Immobilien vom Typ Reiheneckhaus. |\n| `doppelhaushaelfte` <br\/> Zeigt nur Immobilien vom Typ Doppelhaush\u00e4lfte. |\n| `einfamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Einfamilienhaus |\n| `stadthaus` <br\/> Zeigt nur Immobilien vom Typ Stadthaus. |\n| `bungalow` <br\/> Zeigt nur Immobilien vom Typ Bungalow. |\n| `villa` <br\/> Zeigt nur Immobilien vom Typ Villa. |\n| `resthof` <br\/> Zeigt nur Immobilien vom Typ Resthof. |\n| `bauernhaus` <br\/> Zeigt nur Immobilien vom Typ Bauernhaus. |\n| `landhaus` <br\/> Zeigt nur Immobilien vom Typ Landhaus. |\n| `schloss` <br\/> Zeigt nur Immobilien vom Typ Schloss. |\n| `zweifamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Zweifamilienhaus. |\n| `mehrfamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Mehrfamilienhaus. |\n| `ferienhaus` <br\/> Zeigt nur Immobilien vom Typ Ferienhaus. |\n| `berghuette` <br\/> Zeigt nur Immobilien vom Typ Bergh\u00fctte. |\n| `chalet` <br\/> Zeigt nur Immobilien vom Typ Chalet. |\n| `strandhaus` <br\/> Zeigt nur Immobilien vom Typ Strandhaus. |\n| `laube-datsche-gartenhaus` <br\/> Zeigt nur Immobilien vom Typ Laube, Datsche oder Gartenhaus. |\n| `apartmenthaus` <br\/> Zeigt nur Immobilien vom Typ Apartmenthaus. |\n| `burg` <br\/> Zeigt nur Immobilien vom Typ Burg. |\n| `herrenhaus` <br\/> Zeigt nur Immobilien vom Typ Herrenhaus. |\n| `finca` <br\/> Zeigt nur Immobilien vom Typ Finca. |\n| `rustico` <br\/> Zeigt nur Immobilien vom Typ Rustico. |\n| `fertighaus` <br\/> Zeigt nur Immobilien vom Typ Fertighaus. |\n| `keine_angabe` <br\/> Kein spezifischer Haustyp angegeben. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Haustyp"
                        },
                        "example": "einfamilienhaus,bungalow"
                    },
                    {
                        "name": "aiFeatures",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Filtert die Ergebnisse anhand ausgew\u00e4hlter Ausstattungsmerkmale, die durch KI-gest\u00fctzte Analyse ermittelt wurden.\n| |\n|---|\n| `en-suite-badezimmer` <br\/> Zeigt nur Immobilien, bei denen ein Badezimmer direkt an ein Schlafzimmer angeschlossen ist (En Suite). (Wohnungen + H\u00e4user) |\n| `ankleidezimmer` <br\/> Zeigt nur Immobilien, die \u00fcber ein separates Ankleidezimmer verf\u00fcgen. (Wohnungen + H\u00e4user) |\n| `privatgarten` <br\/> Zeigt nur Immobilien, die \u00fcber ein eigenen Privatgarten zur eigenen Nutzung verf\u00fcgen. (Wohnungen + H\u00e4user) |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/AiFeatures"
                        },
                        "example": "en-suite-badezimmer,ankleidezimmer"
                    },
                    {
                        "name": "aiLivingKitchenDiningAreas",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Zeigt nur Immobilien mit offen gestalteten Wohn-, Koch- oder Essbereichen, wie sie durch KI-Analyse erkannt wurden.\n| |\n|---|\n| `kitchen-with-eating-area` <br\/> K\u00fcche und Essbereich sind offen miteinander verbunden. |\n| `living-room-with-kitchen` <br\/> Wohnraum und Essbereich sind offen gestaltet. |\n| `living-room-with-eating-area` <br\/> Wohnbereich und Essbereich sind offen miteinander verbunden. |\n| `living-room-with-kitchen-and-dining-area` <br\/> Wohnbereich, K\u00fcchenbereich und Essbereich gehen offen ineinander \u00fcber. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/AiLivingKitchenDiningAreas"
                        },
                        "example": "kitchen-with-eating-area,living-room-with-kitchen"
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The current page",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 3
                    },
                    {
                        "name": "locale",
                        "in": "query",
                        "description": "Optional parameter to set the language of the API response. Must be a two-letter language code.",
                        "schema": {
                            "type": "string",
                            "default": "de"
                        },
                        "example": "fr"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `EstateResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/EstateResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/estates\/{uid}": {
            "get": {
                "operationId": "showUnit",
                "summary": "Show Estate (Unit)",
                "tags": [
                    "Estate"
                ],
                "parameters": [
                    {
                        "name": "uid",
                        "in": "path",
                        "required": true,
                        "description": "Internal unique identifier of the unit.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`EstateResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/EstateResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/geolocations": {
            "get": {
                "operationId": "listGeolocations",
                "description": "Returns a list of available geolocations used to categorize and filter real estate units.\nA geolocation can represent a city, district, or region.",
                "summary": "List Geolocations",
                "tags": [
                    "Geolocation"
                ],
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Anzahl der Geolocations pro Seite in der paginierten API-Ausgabe.",
                        "schema": {
                            "type": "number",
                            "default": 50,
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The current page",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 3
                    },
                    {
                        "name": "locale",
                        "in": "query",
                        "description": "Optional parameter to set the language of the API response. Must be a two-letter language code.",
                        "schema": {
                            "type": "string",
                            "default": "de"
                        },
                        "example": "fr"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `GeolocationResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/GeolocationResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/projects": {
            "get": {
                "operationId": "listProjects",
                "description": "Retrieves a list of all currently active projects including metadata, location,\nand aggregated offer data. No authentication is required.",
                "summary": "List Projects",
                "tags": [
                    "Project"
                ],
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Anzahl der Projekte pro Seite in der paginierten API-Ausgabe.",
                        "schema": {
                            "type": "number",
                            "default": 10,
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 25
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The current page",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 3
                    },
                    {
                        "name": "locale",
                        "in": "query",
                        "description": "Optional parameter to set the language of the API response. Must be a two-letter language code.",
                        "schema": {
                            "type": "string",
                            "default": "de"
                        },
                        "example": "fr"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `ProjectResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/ProjectResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/projects\/{uid}": {
            "get": {
                "operationId": "showProject",
                "summary": "Show Project",
                "tags": [
                    "Project"
                ],
                "parameters": [
                    {
                        "name": "uid",
                        "in": "path",
                        "required": true,
                        "description": "Internal unique identifier of the project.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`ProjectResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/ProjectResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/projects\/{uid}\/estates": {
            "get": {
                "operationId": "listProjectUnits",
                "description": "Dieser Endpunkt gibt alle Einheiten eines aktiven Projekts zur\u00fcck und erlaubt die Filterung nach Parametern wie Zimmeranzahl, Preis, Fl\u00e4che oder Etage.",
                "summary": "List Project Estates (Units)",
                "tags": [
                    "ProjectEstate"
                ],
                "parameters": [
                    {
                        "name": "uid",
                        "in": "path",
                        "required": true,
                        "description": "Internal unique identifier of the project.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Anzahl der Einheiten pro Seite in der paginierten API-Ausgabe.",
                        "schema": {
                            "type": "number",
                            "default": 15,
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 50
                    },
                    {
                        "name": "portalobjektart",
                        "in": "query",
                        "description": "Optional; Gibt an, welcher Immobilientyp und Nutzungszweck gesucht wird \u2013 Wohnung, Haus oder Grundst\u00fcck, jeweils zur Eigennutzung oder als Kapitalanlage.\n| |\n|---|\n| `WHNG-KF-KA` <br\/> Wohnungen, die gekauft werden k\u00f6nnen und derzeit vermietet sind \u2013 keine Eigennutzung m\u00f6glich. |\n| `WHNG-KF-SB` <br\/> Wohnungen, die gekauft werden k\u00f6nnen, aktuell nicht vermietet sind und selbst genutzt werden k\u00f6nnen. |\n| `HAUS-KF-KA` <br\/> H\u00e4user, die gekauft werden k\u00f6nnen und derzeit vermietet sind \u2013 keine Eigennutzung m\u00f6glich. |\n| `HAUS-KF-SB` <br\/> H\u00e4user, die gekauft werden k\u00f6nnen, aktuell nicht vermietet sind und selbst genutzt werden k\u00f6nnen. |\n| `GRST-KF-SB` <br\/> Unbebaute oder bebaubare Grundst\u00fccke ohne Wohngeb\u00e4ude. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Portalobjektart"
                        }
                    },
                    {
                        "name": "purchasePriceFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit einem Kaufpreis von mindestens X Euro.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000
                        }
                    },
                    {
                        "name": "purchasePriceTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit einem Kaufpreis von h\u00f6chstens X Euro.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000
                        }
                    },
                    {
                        "name": "roomsFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Zimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "roomsTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Zimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bedroomsFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Schlafzimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bedroomsTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Schlafzimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bathroomsFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Badezimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "bathroomsTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Badezimmern.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 20
                        }
                    },
                    {
                        "name": "livingSpaceFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Quadratmetern Wohnfl\u00e4che.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "livingSpaceTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Quadratmetern Wohnfl\u00e4che.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "aiBalconyLoggiaTerraceSpaceFrom",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit mindestens X Quadratmetern Au\u00dfenfl\u00e4che (Balkon, Loggia oder Terrasse).",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "aiBalconyLoggiaTerraceSpaceTo",
                        "in": "query",
                        "description": "Optional; Zeigt nur Immobilien mit h\u00f6chstens X Quadratmetern Au\u00dfenfl\u00e4che (Balkon, Loggia oder Terrasse).",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2000
                        }
                    },
                    {
                        "name": "geolocations",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Gibt die geografische Lage der Immobilie an, z.\u202fB. Bezirk, Ort oder Region. Erwartet wird eine UUID, wie sie vom Endpunkt `\/geolocations` bereitgestellt wird. Mehrere Geolokationen k\u00f6nnen kommasepariert angegeben werden. Kann nur benutzt werden, wenn `geolocation_query` nicht angegeben ist.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "01962421-7588-7312-8207-6d1c9fac1742,01962421-759c-700f-a970-eba88a3e2654"
                    },
                    {
                        "name": "geolocation_query",
                        "in": "query",
                        "description": "Optional; Gibt die geografische Lage der Immobilie an, z.\u202fB. Bezirk, Ort oder Region. Erwartet wird ein String. Kann nur benutzt werden, wenn `geolocations` nicht angegeben ist.",
                        "schema": {
                            "type": "string",
                            "minLength": 3,
                            "maxLength": 128
                        },
                        "example": "Charlottenburg"
                    },
                    {
                        "name": "features",
                        "in": "query",
                        "description": "Optional. Gibt die Ausstattungsmerkmale der Immobilie als kommaseparierte Zeichenkette an.\n| |\n|---|\n| `parking-space` <br\/> Zeigt nur Immobilien mit einem PKW Stellplatz. (Wohnungen + H\u00e4user) |\n| `cellar` <br\/> Zeigt nur Immobilien mit einem eigenen Kellerabteil zur alleinigen Nutzung. (Wohnungen + H\u00e4user) |\n| `balcony-terrace` <br\/> Zeigt nur Immobilien mit mindestens einem Balkon, einer Loggia oder einer Terrasse. (Wohnungen + H\u00e4user) |\n| `passenger-lift` <br\/> Zeigt nur Wohnungen, die \u00fcber einen Personenaufzug erreichbar sind. (nur Wohnungen) |\n| `fitted-kitchen` <br\/> Zeigt nur Immobilien mit einer fest eingebauten K\u00fcche. (Wohnungen + H\u00e4user) |\n| `guest-wc` <br\/> Zeigt nur Immobilien mit einem separaten G\u00e4ste-WC. (Wohnungen + H\u00e4user) |\n| `commission-free` <br\/> Zeigt nur Immobilien, bei denen K\u00e4ufer keine Maklerprovision zahlen m\u00fcssen. |\n| `barrier-free` <br\/> Zeigt nur Immobilien die barrierefrei sind. (Wohnungen + H\u00e4user) |\n| `storeroom` <br\/> Zeigt nur Immobilien mit einem Abstellraum. (Wohnungen + H\u00e4user) |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Features"
                        },
                        "example": "parking-space,balcony-terrace"
                    },
                    {
                        "name": "flatTypes",
                        "in": "query",
                        "description": "Optional. Kommasepariert. Begrenzt die Ergebnisse auf bestimmte Wohnungstypen.\n| |\n|---|\n| `dachgeschoss` <br\/> Zeigt nur Immobilien vom Typ Dachgeschosswohnung. |\n| `maisonette` <br\/> Zeigt nur Immobilien vom Typ Maisonette. |\n| `loft_studio_atelier` <br\/> Zeigt nur Immobilien vom Typ Loft, Studio oder Atelier. |\n| `penthouse` <br\/> Zeigt nur Immobilien vom Typ Penthouse. |\n| `terrassen` <br\/> Zeigt nur Immobilien vom Typ Terrassenwohnung. |\n| `etage` <br\/> Zeigt nur Immobilien vom Typ Etagenwohnung. |\n| `erdgeschoss` <br\/> Zeigt nur Immobilien vom Typ Erdgeschosswohnung. |\n| `souterrain` <br\/> Zeigt nur Immobilien vom Typ Souterrainwohnung. |\n| `apartment` <br\/> Zeigt nur Immobilien vom Typ Apartment. |\n| `ferienwohnung` <br\/> Zeigt nur Immobilien vom Typ Ferienwohnung. |\n| `galerie` <br\/> Zeigt nur Immobilien vom Typ Galerie-Wohnung. |\n| `rohdachboden` <br\/> Zeigt nur Immobilien vom Typ Rohdachboden. |\n| `attikawohnung` <br\/> Zeigt nur Immobilien vom Typ Attikawohnung. |\n| `keine_angabe` <br\/> Kein spezifischer Wohnungstyp angegeben. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Wohnungtyp"
                        },
                        "example": "etage,penthouse"
                    },
                    {
                        "name": "houseTypes",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Begrenzt die Ergebnisse auf bestimmte H\u00e4usertypen.\n| |\n|---|\n| `reihenhaus` <br\/> Zeigt nur Immobilien vom Typ Reihenmittelhaus. |\n| `reihenend` <br\/> Zeigt nur Immobilien vom Typ Reihenendhaus |\n| `reihenmittel` <br\/> Zeigt nur Immobilien vom Typ Reihenmittelhaus. |\n| `reiheneck` <br\/> Zeigt nur Immobilien vom Typ Reiheneckhaus. |\n| `doppelhaushaelfte` <br\/> Zeigt nur Immobilien vom Typ Doppelhaush\u00e4lfte. |\n| `einfamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Einfamilienhaus |\n| `stadthaus` <br\/> Zeigt nur Immobilien vom Typ Stadthaus. |\n| `bungalow` <br\/> Zeigt nur Immobilien vom Typ Bungalow. |\n| `villa` <br\/> Zeigt nur Immobilien vom Typ Villa. |\n| `resthof` <br\/> Zeigt nur Immobilien vom Typ Resthof. |\n| `bauernhaus` <br\/> Zeigt nur Immobilien vom Typ Bauernhaus. |\n| `landhaus` <br\/> Zeigt nur Immobilien vom Typ Landhaus. |\n| `schloss` <br\/> Zeigt nur Immobilien vom Typ Schloss. |\n| `zweifamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Zweifamilienhaus. |\n| `mehrfamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Mehrfamilienhaus. |\n| `ferienhaus` <br\/> Zeigt nur Immobilien vom Typ Ferienhaus. |\n| `berghuette` <br\/> Zeigt nur Immobilien vom Typ Bergh\u00fctte. |\n| `chalet` <br\/> Zeigt nur Immobilien vom Typ Chalet. |\n| `strandhaus` <br\/> Zeigt nur Immobilien vom Typ Strandhaus. |\n| `laube-datsche-gartenhaus` <br\/> Zeigt nur Immobilien vom Typ Laube, Datsche oder Gartenhaus. |\n| `apartmenthaus` <br\/> Zeigt nur Immobilien vom Typ Apartmenthaus. |\n| `burg` <br\/> Zeigt nur Immobilien vom Typ Burg. |\n| `herrenhaus` <br\/> Zeigt nur Immobilien vom Typ Herrenhaus. |\n| `finca` <br\/> Zeigt nur Immobilien vom Typ Finca. |\n| `rustico` <br\/> Zeigt nur Immobilien vom Typ Rustico. |\n| `fertighaus` <br\/> Zeigt nur Immobilien vom Typ Fertighaus. |\n| `keine_angabe` <br\/> Kein spezifischer Haustyp angegeben. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/Haustyp"
                        },
                        "example": "einfamilienhaus,bungalow"
                    },
                    {
                        "name": "aiFeatures",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Filtert die Ergebnisse anhand ausgew\u00e4hlter Ausstattungsmerkmale, die durch KI-gest\u00fctzte Analyse ermittelt wurden.\n| |\n|---|\n| `en-suite-badezimmer` <br\/> Zeigt nur Immobilien, bei denen ein Badezimmer direkt an ein Schlafzimmer angeschlossen ist (En Suite). (Wohnungen + H\u00e4user) |\n| `ankleidezimmer` <br\/> Zeigt nur Immobilien, die \u00fcber ein separates Ankleidezimmer verf\u00fcgen. (Wohnungen + H\u00e4user) |\n| `privatgarten` <br\/> Zeigt nur Immobilien, die \u00fcber ein eigenen Privatgarten zur eigenen Nutzung verf\u00fcgen. (Wohnungen + H\u00e4user) |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/AiFeatures"
                        },
                        "example": "en-suite-badezimmer,ankleidezimmer"
                    },
                    {
                        "name": "aiLivingKitchenDiningAreas",
                        "in": "query",
                        "description": "Optional; Kommasepariert; Zeigt nur Immobilien mit offen gestalteten Wohn-, Koch- oder Essbereichen, wie sie durch KI-Analyse erkannt wurden.\n| |\n|---|\n| `kitchen-with-eating-area` <br\/> K\u00fcche und Essbereich sind offen miteinander verbunden. |\n| `living-room-with-kitchen` <br\/> Wohnraum und Essbereich sind offen gestaltet. |\n| `living-room-with-eating-area` <br\/> Wohnbereich und Essbereich sind offen miteinander verbunden. |\n| `living-room-with-kitchen-and-dining-area` <br\/> Wohnbereich, K\u00fcchenbereich und Essbereich gehen offen ineinander \u00fcber. |",
                        "schema": {
                            "$ref": "#\/components\/schemas\/AiLivingKitchenDiningAreas"
                        },
                        "example": "kitchen-with-eating-area,living-room-with-kitchen"
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The current page",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 3
                    },
                    {
                        "name": "locale",
                        "in": "query",
                        "description": "Optional parameter to set the language of the API response. Must be a two-letter language code.",
                        "schema": {
                            "type": "string",
                            "default": "de"
                        },
                        "example": "fr"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated set of `EstateResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#\/components\/schemas\/EstateResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "last": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "first",
                                                "last",
                                                "prev",
                                                "next"
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "minimum": 1
                                                },
                                                "last_page": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "links": {
                                                    "type": "array",
                                                    "description": "Generated paginator links.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "url": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        },
                                                        "required": [
                                                            "url",
                                                            "label",
                                                            "active"
                                                        ]
                                                    }
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page.",
                                                    "minimum": 0
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice.",
                                                    "minimum": 1
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Total number of items being paginated.",
                                                    "minimum": 0
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "last_page",
                                                "links",
                                                "path",
                                                "per_page",
                                                "to",
                                                "total"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/videos\/{video}": {
            "get": {
                "operationId": "videos.show",
                "tags": [
                    "Video"
                ],
                "parameters": [
                    {
                        "name": "video",
                        "in": "path",
                        "required": true,
                        "description": "The video ID",
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`VideoResource`",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/VideoResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "AddressResource": {
                "type": "object",
                "properties": {
                    "strasse": {
                        "type": "string",
                        "description": "Stra\u00dfenname der Adresse."
                    },
                    "hausnummer": {
                        "type": "string",
                        "description": "Hausnummer der Adresse."
                    },
                    "plz": {
                        "type": "string",
                        "description": "Postleitzahl der Adresse."
                    },
                    "ort": {
                        "type": "string",
                        "description": "Ort der Adresse."
                    },
                    "bundesland": {
                        "type": "string",
                        "description": "Bundesland der Adresse."
                    },
                    "coordinate": {
                        "type": "object",
                        "description": "Geokoordinaten der Adresse.",
                        "properties": {
                            "latitude": {
                                "type": "number",
                                "description": "Breitengrad."
                            },
                            "longitude": {
                                "type": "number",
                                "description": "L\u00e4ngengrad."
                            }
                        },
                        "required": [
                            "latitude",
                            "longitude"
                        ]
                    }
                },
                "required": [
                    "strasse",
                    "hausnummer",
                    "plz",
                    "ort",
                    "bundesland",
                    "coordinate"
                ],
                "title": "AddressResource"
            },
            "AiFeatures": {
                "type": "string",
                "description": "| |\n|---|\n| `en-suite-badezimmer` <br\/> Zeigt nur Immobilien, bei denen ein Badezimmer direkt an ein Schlafzimmer angeschlossen ist (En Suite). (Wohnungen + H\u00e4user) |\n| `ankleidezimmer` <br\/> Zeigt nur Immobilien, die \u00fcber ein separates Ankleidezimmer verf\u00fcgen. (Wohnungen + H\u00e4user) |\n| `privatgarten` <br\/> Zeigt nur Immobilien, die \u00fcber ein eigenen Privatgarten zur eigenen Nutzung verf\u00fcgen. (Wohnungen + H\u00e4user) |",
                "enum": [
                    "en-suite-badezimmer",
                    "ankleidezimmer",
                    "privatgarten"
                ],
                "title": "AiFeatures"
            },
            "AiLivingKitchenDiningAreas": {
                "type": "string",
                "description": "| |\n|---|\n| `kitchen-with-eating-area` <br\/> K\u00fcche und Essbereich sind offen miteinander verbunden. |\n| `living-room-with-kitchen` <br\/> Wohnraum und Essbereich sind offen gestaltet. |\n| `living-room-with-eating-area` <br\/> Wohnbereich und Essbereich sind offen miteinander verbunden. |\n| `living-room-with-kitchen-and-dining-area` <br\/> Wohnbereich, K\u00fcchenbereich und Essbereich gehen offen ineinander \u00fcber. |",
                "enum": [
                    "kitchen-with-eating-area",
                    "living-room-with-kitchen",
                    "living-room-with-eating-area",
                    "living-room-with-kitchen-and-dining-area"
                ],
                "title": "AiLivingKitchenDiningAreas"
            },
            "ContactPersonResource": {
                "type": "object",
                "properties": {
                    "providerName": {
                        "type": "string",
                        "description": "Name des Anbieters, dem die Kontaktperson zugeordnet ist."
                    },
                    "fullName": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Vollst\u00e4ndiger Name der Kontaktperson, sofern vorhanden."
                    },
                    "providerLogo": {
                        "type": "string",
                        "description": "Logo des Anbieters in Vorschaubildgr\u00f6\u00dfe, sofern vorhanden."
                    },
                    "preferredPhone": {
                        "type": "string",
                        "description": "Bevorzugte Telefonnummer der Kontaktperson, sofern vorhanden."
                    },
                    "mobilePhone": {
                        "type": "string",
                        "description": "Mobilnummer der Kontaktperson, sofern vorhanden."
                    }
                },
                "required": [
                    "providerName",
                    "fullName",
                    "providerLogo",
                    "preferredPhone",
                    "mobilePhone"
                ],
                "title": "ContactPersonResource"
            },
            "EnergiepassResource": {
                "type": "object",
                "properties": {
                    "energiepass_wertklasse": {
                        "type": "string",
                        "description": "Energieeffizienzklasse laut Energieausweis (z.\u202fB. A+, B, C)."
                    },
                    "energiepass_epart": {
                        "description": "Art des Energieausweises (z.\u202fB. Bedarfsausweis, Verbrauchsausweis).",
                        "$ref": "#\/components\/schemas\/Epart"
                    },
                    "energiepass_endenergiebedarf": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Endenergiebedarf laut Energieausweis (in kWh\/m\u00b2\u00b7a).",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert des Endenergiebedarfs."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Endenergiebedarfs."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "energiepass_energieverbrauchkennwert": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Energieverbrauchskennwert laut Energieausweis (in kWh\/m\u00b2\u00b7a).",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert des Energieverbrauchskennwerts."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Energieverbrauchskennwerts."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "energiepass_mitwarmwasser": {
                        "type": "boolean",
                        "description": "Gibt an, ob der Energieverbrauch Warmwasser enth\u00e4lt."
                    },
                    "energiepass_primaerenergietraeger": {
                        "description": "Hauptenergietr\u00e4ger laut Energieausweis (z.\u202fB. Fernw\u00e4rme, Gas, Strom).",
                        "$ref": "#\/components\/schemas\/Primaerenergietraeger"
                    },
                    "energiepass_gueltig_bis": {
                        "type": "string",
                        "description": "G\u00fcltigkeitsdatum des Energieausweises."
                    },
                    "energiepass_baujahr": {
                        "type": "string",
                        "description": "Baujahr laut Energieausweis."
                    }
                },
                "required": [
                    "energiepass_wertklasse",
                    "energiepass_epart",
                    "energiepass_endenergiebedarf",
                    "energiepass_energieverbrauchkennwert",
                    "energiepass_mitwarmwasser",
                    "energiepass_primaerenergietraeger",
                    "energiepass_gueltig_bis",
                    "energiepass_baujahr"
                ],
                "title": "EnergiepassResource"
            },
            "Epart": {
                "type": "string",
                "enum": [
                    "bedarf",
                    "verbrauch",
                    "ohne",
                    "nicht_noetig"
                ],
                "title": "Epart"
            },
            "EstateResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Interne eindeutige Kennung der Einheit."
                    },
                    "id_public": {
                        "type": "integer",
                        "description": "\u00d6ffentliche Kennung der Einheit."
                    },
                    "project": {
                        "type": "object",
                        "description": "Zugeh\u00f6riges Projekt der Einheit.",
                        "properties": {
                            "id": {
                                "type": "string",
                                "description": "Interne eindeutige Kennung des zugeh\u00f6rigen Projekts."
                            },
                            "id_public": {
                                "type": "integer",
                                "description": "\u00d6ffentliche Kennung des Projekts."
                            },
                            "headline": {
                                "type": [
                                    "array",
                                    "null"
                                ],
                                "description": "Eindeutiger Titel des Projekts. Dient zur Identifikation und Darstellung des Projekts. Muss projektweit eindeutig sein.",
                                "items": {}
                            },
                            "headline_long": {
                                "type": [
                                    "array",
                                    "null"
                                ],
                                "description": "\u00dcbersetzte Lang\u00fcberschriften nach Sprache.",
                                "items": {}
                            },
                            "geolocation": {
                                "description": "Zugeordneter Standort der Einheit. Kann Stadt, Bezirk oder andere definierte Region sein.",
                                "$ref": "#\/components\/schemas\/GeolocationResource"
                            },
                            "image_main": {
                                "description": "Hauptbild(er) des Projekts.",
                                "$ref": "#\/components\/schemas\/ImageResource"
                            },
                            "images": {
                                "type": "array",
                                "description": "Weitere Bilder des Projekts.",
                                "items": {
                                    "$ref": "#\/components\/schemas\/ImageResource"
                                }
                            }
                        },
                        "required": [
                            "id",
                            "id_public",
                            "headline",
                            "headline_long",
                            "geolocation",
                            "image_main",
                            "images"
                        ]
                    },
                    "address": {
                        "description": "Vollst\u00e4ndige Adresse inklusive Stra\u00dfe, Hausnummer, PLZ, Ort, Bundesland, Land und Geokoordinaten.",
                        "$ref": "#\/components\/schemas\/AddressResource"
                    },
                    "url": {
                        "type": "string",
                        "description": "\u00d6ffentliche URL zur Detailseite der Einheit."
                    },
                    "etage": {
                        "type": "object",
                        "description": "Etage, auf der sich die Einheit befindet.",
                        "properties": {
                            "value": {
                                "type": "integer",
                                "description": "Rohwert der Etage, n\u00fctzlich f\u00fcr Berechnungen und Datenverarbeitung."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung der Etage."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "portalobjektart": {
                        "type": "object",
                        "description": "Typ der Einheit."
                    },
                    "anzahl_etagen": {
                        "type": "integer",
                        "description": "Gesamtanzahl der Etagen im Geb\u00e4ude."
                    },
                    "einheitennummer": {
                        "type": "string",
                        "description": "Einheitennummer oder eindeutige Kennung der Einheit."
                    },
                    "wohnflaeche": {
                        "type": "object",
                        "description": "Wohnfl\u00e4che der Einheit in Quadratmetern.",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert der Wohnfl\u00e4che, n\u00fctzlich f\u00fcr Berechnungen und Datenverarbeitung."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung der Wohnfl\u00e4che."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "nutzflaeche": {
                        "type": "object",
                        "description": "Nutzfl\u00e4che der Einheit in Quadratmetern.",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert der Nutzfl\u00e4che, n\u00fctzlich f\u00fcr Berechnungen und Datenverarbeitung."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung der Nutzfl\u00e4che."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "gartenflaeche": {
                        "type": "object",
                        "description": "Gartenfl\u00e4che in Quadratmetern (falls vorhanden).",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert der Gartenfl\u00e4che, n\u00fctzlich f\u00fcr Berechnungen und Datenverarbeitung."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung der Gartenfl\u00e4che."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "anzahl_zimmer": {
                        "type": "number",
                        "description": "Gesamtanzahl der Zimmer in der Einheit."
                    },
                    "anzahl_schlafzimmer": {
                        "type": "integer",
                        "description": "Anzahl der Schlafzimmer in der Einheit."
                    },
                    "anzahl_badezimmer": {
                        "type": "integer",
                        "description": "Anzahl der Badezimmer in der Einheit."
                    },
                    "verfuegbar_ab": {
                        "type": "string",
                        "description": "Fr\u00fchestm\u00f6gliches Bezugsdatum der Einheit."
                    },
                    "kaufpreis": {
                        "type": "object",
                        "description": "Kaufpreis der Einheit inklusive W\u00e4hrung.",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert des Kaufpreises, n\u00fctzlich f\u00fcr Berechnungen und Datenverarbeitung."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Kaufpreises."
                            },
                            "currency": {
                                "type": "string",
                                "description": "W\u00e4hrungscode (z. B. EUR, USD) des Preises."
                            }
                        },
                        "required": [
                            "value",
                            "formatted",
                            "currency"
                        ]
                    },
                    "hausgeld": {
                        "type": "object",
                        "description": "Monatliches Hausgeld inklusive \u00fcblicher Kosten (z. B. Verwaltung, Gemeinschaftsfl\u00e4chen).",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert des Hausgeldes, n\u00fctzlich f\u00fcr Berechnungen und Datenverarbeitung."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Hausgeldes."
                            },
                            "currency": {
                                "type": "string",
                                "description": "W\u00e4hrungscode (z. B. EUR, USD) des Hausgeldes."
                            }
                        },
                        "required": [
                            "value",
                            "formatted",
                            "currency"
                        ]
                    },
                    "anzahl_balkone": {
                        "type": "integer",
                        "description": "Anzahl der Balkone."
                    },
                    "anzahl_logia": {
                        "type": "integer",
                        "description": "Anzahl der Loggien."
                    },
                    "anzahl_terrassen": {
                        "type": "integer",
                        "description": "Anzahl der Terrassen."
                    },
                    "einbaukueche": {
                        "type": "object",
                        "description": "Gibt an, ob eine Einbauk\u00fcche vorhanden ist (\"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob eine Einbauk\u00fcche vorhanden ist."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "wohnungtyp": {
                        "type": "object",
                        "description": "Wohnungstyp (z. B. Etagenwohnung, Dachgeschoss usw.).",
                        "properties": {
                            "value": {
                                "anyOf": [
                                    {
                                        "description": "Rohwert des Wohnungstyps.\n| |\n|---|\n| `dachgeschoss` <br\/> Zeigt nur Immobilien vom Typ Dachgeschosswohnung. |\n| `maisonette` <br\/> Zeigt nur Immobilien vom Typ Maisonette. |\n| `loft_studio_atelier` <br\/> Zeigt nur Immobilien vom Typ Loft, Studio oder Atelier. |\n| `penthouse` <br\/> Zeigt nur Immobilien vom Typ Penthouse. |\n| `terrassen` <br\/> Zeigt nur Immobilien vom Typ Terrassenwohnung. |\n| `etage` <br\/> Zeigt nur Immobilien vom Typ Etagenwohnung. |\n| `erdgeschoss` <br\/> Zeigt nur Immobilien vom Typ Erdgeschosswohnung. |\n| `souterrain` <br\/> Zeigt nur Immobilien vom Typ Souterrainwohnung. |\n| `apartment` <br\/> Zeigt nur Immobilien vom Typ Apartment. |\n| `ferienwohnung` <br\/> Zeigt nur Immobilien vom Typ Ferienwohnung. |\n| `galerie` <br\/> Zeigt nur Immobilien vom Typ Galerie-Wohnung. |\n| `rohdachboden` <br\/> Zeigt nur Immobilien vom Typ Rohdachboden. |\n| `attikawohnung` <br\/> Zeigt nur Immobilien vom Typ Attikawohnung. |\n| `keine_angabe` <br\/> Kein spezifischer Wohnungstyp angegeben. |",
                                        "$ref": "#\/components\/schemas\/Wohnungtyp"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Wohnungstyps."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "gaeste_wc": {
                        "type": "object",
                        "description": "Gibt an, ob ein G\u00e4ste-WC vorhanden ist (\"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob ein G\u00e4ste-WC vorhanden ist."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "personenaufzug": {
                        "type": "object",
                        "description": "Gibt an, ob ein Personenaufzug vorhanden ist (\"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob ein Personenaufzug vorhanden ist."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "has_stellplaetze": {
                        "type": "object",
                        "description": "Gibt an, ob Stellpl\u00e4tze zum Verkauf oder zur Miete vorhanden sind (\"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob Stellpl\u00e4tze vorhanden sind."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "stellplaetze": {
                        "type": "array",
                        "description": "Liste der zum Verkauf oder zur Miete verf\u00fcgbaren Stellpl\u00e4tze mit Details zu Typ, Verf\u00fcgbarkeit und Preis.",
                        "items": {
                            "$ref": "#\/components\/schemas\/StellplatzResource"
                        }
                    },
                    "verkaufstatus": {
                        "type": "object",
                        "description": "Verkaufsstatus der Einheit (z. B. verf\u00fcgbar, reserviert, verkauft).",
                        "properties": {
                            "value": {
                                "type": "string",
                                "description": "Rohwert des Verkaufsstatus."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Verkaufsstatus."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "provisionsfrei": {
                        "type": "object",
                        "description": "Gibt an, ob die Einheit provisionsfrei ist (\"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob provisionsfrei."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "floor_plans": {
                        "type": "array",
                        "description": "Grundrisse der Einheit.",
                        "items": {
                            "$ref": "#\/components\/schemas\/FloorPlanResource"
                        }
                    },
                    "baujahr": {
                        "type": "string",
                        "description": "Baujahr des Geb\u00e4udes (ungef\u00e4hr oder exakt je nach Datenlage)."
                    },
                    "gartennutzung": {
                        "type": "object",
                        "description": "Gibt an, ob Gartennutzung m\u00f6glich ist (\"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob Gartennutzung m\u00f6glich ist."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "mieteinnahmen": {
                        "type": "object",
                        "description": "Formatierte Darstellungen verschiedener Mieteinnahmen (Nettokaltmiete, Kaltmiete, Warmmiete, gesamte Mieteinnahme), je nach Verf\u00fcgbarkeit.",
                        "properties": {
                            "nettokaltmiete": {
                                "type": "object",
                                "description": "Formatierte Nettokaltmiete.",
                                "properties": {
                                    "formatted": {
                                        "description": "Menschlich lesbare Darstellung der Nettokaltmiete.",
                                        "anyOf": [
                                            {
                                                "type": "null"
                                            },
                                            {
                                                "type": "array",
                                                "items": {}
                                            },
                                            {
                                                "type": "string"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "formatted"
                                ]
                            },
                            "kaltmiete": {
                                "type": "object",
                                "description": "Formatierte Kaltmiete.",
                                "properties": {
                                    "formatted": {
                                        "description": "Menschlich lesbare Darstellung der Kaltmiete.",
                                        "anyOf": [
                                            {
                                                "type": "null"
                                            },
                                            {
                                                "type": "array",
                                                "items": {}
                                            },
                                            {
                                                "type": "string"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "formatted"
                                ]
                            },
                            "warmmiete": {
                                "type": "object",
                                "description": "Formatierte Warmmiete.",
                                "properties": {
                                    "formatted": {
                                        "description": "Menschlich lesbare Darstellung der Warmmiete.",
                                        "anyOf": [
                                            {
                                                "type": "null"
                                            },
                                            {
                                                "type": "array",
                                                "items": {}
                                            },
                                            {
                                                "type": "string"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "formatted"
                                ]
                            },
                            "mieteinnahme": {
                                "type": "object",
                                "description": "Gesamte Mieteinnahme als formatierter String.",
                                "properties": {
                                    "formatted": {
                                        "type": "string",
                                        "description": "Menschlich lesbare Darstellung der gesamten Mieteinnahme."
                                    }
                                },
                                "required": [
                                    "formatted"
                                ]
                            }
                        },
                        "required": [
                            "nettokaltmiete",
                            "kaltmiete",
                            "warmmiete",
                            "mieteinnahme"
                        ]
                    },
                    "energiepass": {
                        "anyOf": [
                            {
                                "description": "Energieausweis-Daten der Einheit, sofern verf\u00fcgbar.",
                                "$ref": "#\/components\/schemas\/EnergiepassResource"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "contact_person": {
                        "description": "Anbieter und Kontaktdaten der Einheit",
                        "$ref": "#\/components\/schemas\/ContactPersonResource"
                    },
                    "ki_en_suite_badezimmer": {
                        "type": "object",
                        "description": "Gibt an, ob ein En-Suite-Badezimmer vorhanden ist (KI-basiert, \"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob En-Suite-Badezimmer vorhanden ist."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "ki_ankleidezimmer": {
                        "type": "object",
                        "description": "Gibt an, ob ein Ankleidezimmer vorhanden ist (KI-basiert, \"true\" oder \"false\").",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert, ob Ankleidezimmer vorhanden ist."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung (Ja\/Nein)."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    }
                },
                "required": [
                    "id",
                    "id_public",
                    "project",
                    "address",
                    "url",
                    "etage",
                    "portalobjektart",
                    "anzahl_etagen",
                    "einheitennummer",
                    "wohnflaeche",
                    "nutzflaeche",
                    "gartenflaeche",
                    "anzahl_zimmer",
                    "anzahl_schlafzimmer",
                    "anzahl_badezimmer",
                    "verfuegbar_ab",
                    "kaufpreis",
                    "hausgeld",
                    "anzahl_balkone",
                    "anzahl_logia",
                    "anzahl_terrassen",
                    "einbaukueche",
                    "wohnungtyp",
                    "gaeste_wc",
                    "personenaufzug",
                    "has_stellplaetze",
                    "stellplaetze",
                    "verkaufstatus",
                    "provisionsfrei",
                    "floor_plans",
                    "baujahr",
                    "gartennutzung",
                    "mieteinnahmen",
                    "energiepass",
                    "contact_person",
                    "ki_en_suite_badezimmer",
                    "ki_ankleidezimmer"
                ],
                "title": "EstateResource"
            },
            "Features": {
                "type": "string",
                "description": "| |\n|---|\n| `parking-space` <br\/> Zeigt nur Immobilien mit einem PKW Stellplatz. (Wohnungen + H\u00e4user) |\n| `cellar` <br\/> Zeigt nur Immobilien mit einem eigenen Kellerabteil zur alleinigen Nutzung. (Wohnungen + H\u00e4user) |\n| `balcony-terrace` <br\/> Zeigt nur Immobilien mit mindestens einem Balkon, einer Loggia oder einer Terrasse. (Wohnungen + H\u00e4user) |\n| `passenger-lift` <br\/> Zeigt nur Wohnungen, die \u00fcber einen Personenaufzug erreichbar sind. (nur Wohnungen) |\n| `fitted-kitchen` <br\/> Zeigt nur Immobilien mit einer fest eingebauten K\u00fcche. (Wohnungen + H\u00e4user) |\n| `guest-wc` <br\/> Zeigt nur Immobilien mit einem separaten G\u00e4ste-WC. (Wohnungen + H\u00e4user) |\n| `commission-free` <br\/> Zeigt nur Immobilien, bei denen K\u00e4ufer keine Maklerprovision zahlen m\u00fcssen. |\n| `barrier-free` <br\/> Zeigt nur Immobilien die barrierefrei sind. (Wohnungen + H\u00e4user) |\n| `storeroom` <br\/> Zeigt nur Immobilien mit einem Abstellraum. (Wohnungen + H\u00e4user) |",
                "enum": [
                    "parking-space",
                    "cellar",
                    "balcony-terrace",
                    "passenger-lift",
                    "fitted-kitchen",
                    "guest-wc",
                    "commission-free",
                    "barrier-free",
                    "storeroom"
                ],
                "title": "Features"
            },
            "FloorPlanResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Interne ID des Grundrisses."
                    },
                    "name": {
                        "type": "string",
                        "description": "Bezeichnung oder Name des Grundrisses."
                    },
                    "url": {
                        "type": "string",
                        "description": "\u00d6ffentlich zug\u00e4ngliche URL zur Grundrissgrafik (max. Breite: 1280\u202fpx)."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "url"
                ],
                "title": "FloorPlanResource"
            },
            "GeolocationResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Eindeutige ID der geografischen Lage."
                    },
                    "name": {
                        "type": "array",
                        "description": "Lesbarer Name der geografischen Lage in der angeforderten Sprache.",
                        "items": {}
                    }
                },
                "required": [
                    "id",
                    "name"
                ],
                "title": "GeolocationResource"
            },
            "Haustyp": {
                "type": "string",
                "description": "| |\n|---|\n| `reihenhaus` <br\/> Zeigt nur Immobilien vom Typ Reihenmittelhaus. |\n| `reihenend` <br\/> Zeigt nur Immobilien vom Typ Reihenendhaus |\n| `reihenmittel` <br\/> Zeigt nur Immobilien vom Typ Reihenmittelhaus. |\n| `reiheneck` <br\/> Zeigt nur Immobilien vom Typ Reiheneckhaus. |\n| `doppelhaushaelfte` <br\/> Zeigt nur Immobilien vom Typ Doppelhaush\u00e4lfte. |\n| `einfamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Einfamilienhaus |\n| `stadthaus` <br\/> Zeigt nur Immobilien vom Typ Stadthaus. |\n| `bungalow` <br\/> Zeigt nur Immobilien vom Typ Bungalow. |\n| `villa` <br\/> Zeigt nur Immobilien vom Typ Villa. |\n| `resthof` <br\/> Zeigt nur Immobilien vom Typ Resthof. |\n| `bauernhaus` <br\/> Zeigt nur Immobilien vom Typ Bauernhaus. |\n| `landhaus` <br\/> Zeigt nur Immobilien vom Typ Landhaus. |\n| `schloss` <br\/> Zeigt nur Immobilien vom Typ Schloss. |\n| `zweifamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Zweifamilienhaus. |\n| `mehrfamilienhaus` <br\/> Zeigt nur Immobilien vom Typ Mehrfamilienhaus. |\n| `ferienhaus` <br\/> Zeigt nur Immobilien vom Typ Ferienhaus. |\n| `berghuette` <br\/> Zeigt nur Immobilien vom Typ Bergh\u00fctte. |\n| `chalet` <br\/> Zeigt nur Immobilien vom Typ Chalet. |\n| `strandhaus` <br\/> Zeigt nur Immobilien vom Typ Strandhaus. |\n| `laube-datsche-gartenhaus` <br\/> Zeigt nur Immobilien vom Typ Laube, Datsche oder Gartenhaus. |\n| `apartmenthaus` <br\/> Zeigt nur Immobilien vom Typ Apartmenthaus. |\n| `burg` <br\/> Zeigt nur Immobilien vom Typ Burg. |\n| `herrenhaus` <br\/> Zeigt nur Immobilien vom Typ Herrenhaus. |\n| `finca` <br\/> Zeigt nur Immobilien vom Typ Finca. |\n| `rustico` <br\/> Zeigt nur Immobilien vom Typ Rustico. |\n| `fertighaus` <br\/> Zeigt nur Immobilien vom Typ Fertighaus. |\n| `keine_angabe` <br\/> Kein spezifischer Haustyp angegeben. |",
                "enum": [
                    "reihenhaus",
                    "reihenend",
                    "reihenmittel",
                    "reiheneck",
                    "doppelhaushaelfte",
                    "einfamilienhaus",
                    "stadthaus",
                    "bungalow",
                    "villa",
                    "resthof",
                    "bauernhaus",
                    "landhaus",
                    "schloss",
                    "zweifamilienhaus",
                    "mehrfamilienhaus",
                    "ferienhaus",
                    "berghuette",
                    "chalet",
                    "strandhaus",
                    "laube-datsche-gartenhaus",
                    "apartmenthaus",
                    "burg",
                    "herrenhaus",
                    "finca",
                    "rustico",
                    "fertighaus",
                    "keine_angabe"
                ],
                "title": "Haustyp"
            },
            "ImageResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "ID des Bildes."
                    },
                    "name": {
                        "type": "string",
                        "description": "Bezeichnung oder Name des Bildes."
                    },
                    "url": {
                        "type": "string",
                        "description": "\u00d6ffentlich zug\u00e4ngliche URL des Bildes (max. Breite: 1280\u202fpx)."
                    }
                },
                "required": [
                    "id",
                    "name",
                    "url"
                ],
                "title": "ImageResource"
            },
            "Portalobjektart": {
                "type": "string",
                "description": "| |\n|---|\n| `WHNG-KF-KA` <br\/> Wohnungen, die gekauft werden k\u00f6nnen und derzeit vermietet sind \u2013 keine Eigennutzung m\u00f6glich. |\n| `WHNG-KF-SB` <br\/> Wohnungen, die gekauft werden k\u00f6nnen, aktuell nicht vermietet sind und selbst genutzt werden k\u00f6nnen. |\n| `HAUS-KF-KA` <br\/> H\u00e4user, die gekauft werden k\u00f6nnen und derzeit vermietet sind \u2013 keine Eigennutzung m\u00f6glich. |\n| `HAUS-KF-SB` <br\/> H\u00e4user, die gekauft werden k\u00f6nnen, aktuell nicht vermietet sind und selbst genutzt werden k\u00f6nnen. |\n| `GRST-KF-SB` <br\/> Unbebaute oder bebaubare Grundst\u00fccke ohne Wohngeb\u00e4ude. |",
                "enum": [
                    "WHNG-KF-KA",
                    "WHNG-KF-SB",
                    "HAUS-KF-KA",
                    "HAUS-KF-SB",
                    "GRST-KF-SB"
                ],
                "title": "Portalobjektart"
            },
            "Primaerenergietraeger": {
                "type": "string",
                "enum": [
                    "wasser_elektro",
                    "solar",
                    "pelletheizung",
                    "pellet",
                    "oel",
                    "luftwp",
                    "kohle",
                    "gas",
                    "fernwaerme",
                    "erdwaerme",
                    "elektro",
                    "block",
                    "alternativ",
                    "keine_angabe"
                ],
                "title": "Primaerenergietraeger"
            },
            "ProjectResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Interne UUID des Projekts."
                    },
                    "id_public": {
                        "type": "integer",
                        "description": "\u00d6ffentliche, eindeutige ID des Projekts."
                    },
                    "url": {
                        "type": "string",
                        "description": "\u00d6ffentliche URL des Projekts."
                    },
                    "pdf_fact_sheet_url": {
                        "type": "string",
                        "description": "\u00d6ffentliche URL zum PDF-Factsheet des Projekts."
                    },
                    "headline": {
                        "type": "string",
                        "description": "Eindeutiger Titel des Projekts. Dient zur Identifikation und Darstellung des Projekts. Muss projektweit eindeutig sein."
                    },
                    "headline_long": {
                        "type": "string",
                        "description": "Erweiterter Projekttitel oder Slogan."
                    },
                    "address": {
                        "description": "Vollst\u00e4ndige Projektadresse inklusive Geokoordinaten.",
                        "$ref": "#\/components\/schemas\/AddressResource"
                    },
                    "contact_person": {
                        "description": "Anbieter und Kontaktdaten des Projekts",
                        "$ref": "#\/components\/schemas\/ContactPersonResource"
                    },
                    "geolocation": {
                        "description": "Zugeordnete geographische Lage (z.\u202fB. Stadt oder Bezirk).",
                        "$ref": "#\/components\/schemas\/GeolocationResource"
                    },
                    "description": {
                        "type": "string",
                        "description": "Projektbeschreibung als HTML-Text."
                    },
                    "project_location": {
                        "type": "string",
                        "description": "Kurzbeschreibung zur Lage des Projekts, z.\u202fB. Stadtteil oder Quartier."
                    },
                    "rooms": {
                        "type": "string",
                        "description": "Spannweite der Zimmeranzahl \u00fcber alle verf\u00fcgbaren Einheiten."
                    },
                    "living_spaces": {
                        "type": "string",
                        "description": "Spannweite der Wohnfl\u00e4chen (in m\u00b2) \u00fcber alle verf\u00fcgbaren Einheiten."
                    },
                    "purchase_prices_from": {
                        "type": "string",
                        "description": "G\u00fcnstigster Kaufpreis \u00fcber alle verf\u00fcgbaren Einheiten."
                    },
                    "image_main": {
                        "description": "Hauptbild des Projekts.",
                        "$ref": "#\/components\/schemas\/ImageResource"
                    },
                    "images": {
                        "type": "array",
                        "description": "Weitere Bilder des Projekts.",
                        "items": {
                            "$ref": "#\/components\/schemas\/ImageResource"
                        }
                    },
                    "number_of_apartments": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Anzahl der Wohnungen im Projekt, sofern verf\u00fcgbar."
                    },
                    "number_of_houses": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Anzahl der H\u00e4user im Projekt, sofern verf\u00fcgbar."
                    },
                    "number_of_properties": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Gesamtanzahl der Einheiten (Wohnungen, H\u00e4user, etc.) im Projekt, sofern verf\u00fcgbar."
                    },
                    "year_of_construction": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Baujahr des Projekts, sofern angegeben."
                    },
                    "displayedAvailableFrom": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Voraussichtlicher Bezugszeitpunkt des Projekts."
                    },
                    "hasLift": {
                        "type": "object",
                        "description": "Gibt an, ob das Projekt mit einem Aufzug ausgestattet ist.",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert zur Aufzugsverf\u00fcgbarkeit."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung zur Aufzugsverf\u00fcgbarkeit."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "hasParkingSpaces": {
                        "type": "object",
                        "description": "Gibt an, ob im Projekt Stellpl\u00e4tze verf\u00fcgbar sind.",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert zur Verf\u00fcgbarkeit von Stellpl\u00e4tzen."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung zur Stellplatzverf\u00fcgbarkeit."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "hasCellar": {
                        "type": "object",
                        "description": "Gibt an, ob Kellerr\u00e4ume im Projekt vorhanden sind.",
                        "properties": {
                            "value": {
                                "type": "boolean",
                                "description": "Rohwert zur Kellerverf\u00fcgbarkeit."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung zur Kellerverf\u00fcgbarkeit."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    }
                },
                "required": [
                    "id",
                    "id_public",
                    "url",
                    "pdf_fact_sheet_url",
                    "headline",
                    "headline_long",
                    "address",
                    "contact_person",
                    "geolocation",
                    "description",
                    "project_location",
                    "rooms",
                    "living_spaces",
                    "purchase_prices_from",
                    "image_main",
                    "images",
                    "number_of_apartments",
                    "number_of_houses",
                    "number_of_properties",
                    "year_of_construction",
                    "displayedAvailableFrom",
                    "hasLift",
                    "hasParkingSpaces",
                    "hasCellar"
                ],
                "title": "ProjectResource"
            },
            "StellplatzResource": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "object",
                        "description": "Art des Stellplatzes, z.\u202fB. Au\u00dfenstellplatz, Tiefgarage oder Carport.",
                        "properties": {
                            "value": {
                                "type": "string",
                                "description": "Rohwert als String, n\u00fctzlich f\u00fcr Berechnungen oder Filter."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Werts."
                            }
                        },
                        "required": [
                            "value",
                            "formatted"
                        ]
                    },
                    "price": {
                        "type": "object",
                        "description": "Kauf- oder Mietpreis des Stellplatzes.",
                        "properties": {
                            "value": {
                                "type": "number",
                                "description": "Rohwert als Zahl."
                            },
                            "formatted": {
                                "type": "string",
                                "description": "Menschlich lesbare Darstellung des Preises."
                            },
                            "currency": {
                                "type": "string",
                                "description": "W\u00e4hrungscode, z.\u202fB. EUR."
                            }
                        },
                        "required": [
                            "value",
                            "formatted",
                            "currency"
                        ]
                    },
                    "forRent": {
                        "type": "boolean",
                        "description": "Gibt an, ob der Stellplatz zur Miete angeboten wird."
                    },
                    "forSale": {
                        "type": "boolean",
                        "description": "Gibt an, ob der Stellplatz zum Kauf angeboten wird."
                    },
                    "count": {
                        "type": "integer",
                        "description": "Anzahl verf\u00fcgbarer Stellpl\u00e4tze."
                    },
                    "countPriceLabel": {
                        "type": "string",
                        "description": "Kombinierte Darstellung von Anzahl und Gesamtpreis, z.\u202fB. \u201e1 (50.000 \u20ac)\u201c."
                    }
                },
                "required": [
                    "type",
                    "price",
                    "forRent",
                    "forSale",
                    "count",
                    "countPriceLabel"
                ],
                "title": "StellplatzResource"
            },
            "VideoResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "duration": {
                        "type": "string"
                    },
                    "encoding_status": {
                        "type": "string"
                    },
                    "hls_playlist_url": {
                        "type": "string"
                    },
                    "video_url": {
                        "type": "string"
                    },
                    "poster_url": {
                        "type": "object",
                        "properties": {
                            "4x3": {
                                "type": "string"
                            },
                            "16x9": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "4x3",
                            "16x9"
                        ]
                    }
                },
                "required": [
                    "id",
                    "name",
                    "duration",
                    "encoding_status",
                    "hls_playlist_url",
                    "video_url",
                    "poster_url"
                ],
                "title": "VideoResource"
            },
            "Wohnungtyp": {
                "type": "string",
                "description": "| |\n|---|\n| `dachgeschoss` <br\/> Zeigt nur Immobilien vom Typ Dachgeschosswohnung. |\n| `maisonette` <br\/> Zeigt nur Immobilien vom Typ Maisonette. |\n| `loft_studio_atelier` <br\/> Zeigt nur Immobilien vom Typ Loft, Studio oder Atelier. |\n| `penthouse` <br\/> Zeigt nur Immobilien vom Typ Penthouse. |\n| `terrassen` <br\/> Zeigt nur Immobilien vom Typ Terrassenwohnung. |\n| `etage` <br\/> Zeigt nur Immobilien vom Typ Etagenwohnung. |\n| `erdgeschoss` <br\/> Zeigt nur Immobilien vom Typ Erdgeschosswohnung. |\n| `souterrain` <br\/> Zeigt nur Immobilien vom Typ Souterrainwohnung. |\n| `apartment` <br\/> Zeigt nur Immobilien vom Typ Apartment. |\n| `ferienwohnung` <br\/> Zeigt nur Immobilien vom Typ Ferienwohnung. |\n| `galerie` <br\/> Zeigt nur Immobilien vom Typ Galerie-Wohnung. |\n| `rohdachboden` <br\/> Zeigt nur Immobilien vom Typ Rohdachboden. |\n| `attikawohnung` <br\/> Zeigt nur Immobilien vom Typ Attikawohnung. |\n| `keine_angabe` <br\/> Kein spezifischer Wohnungstyp angegeben. |",
                "enum": [
                    "dachgeschoss",
                    "maisonette",
                    "loft_studio_atelier",
                    "penthouse",
                    "terrassen",
                    "etage",
                    "erdgeschoss",
                    "souterrain",
                    "apartment",
                    "ferienwohnung",
                    "galerie",
                    "rohdachboden",
                    "attikawohnung",
                    "keine_angabe"
                ],
                "title": "Wohnungtyp"
            }
        },
        "responses": {
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            },
            "ModelNotFoundException": {
                "description": "Not found",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}