{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/casafari/main/json-schema/casafari-api-properties-search-response-v1-schema.json",
  "title": "ApiPropertiesSearchResponseV1",
  "x-generated": "2026-10-15",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/casafari-api-openapi.json#/components/schemas/ApiPropertiesSearchResponseV1",
  "properties": {
    "property_id": {
      "type": "integer",
      "description": "ID of the property."
    },
    "primary_listing_id": {
      "type": "integer",
      "description": "Primary listing (ad) ID of the property which is defined after the matching into property."
    },
    "type": {
      "type": "string",
      "enum": [
        "apartment",
        "studio",
        "duplex",
        "penthouse",
        "dachgeschosswohnung",
        "etagenwohnung",
        "erdgeschosswohnung",
        "country_house",
        "house",
        "palace",
        "townhouse",
        "villa",
        "country_estate",
        "chalet",
        "bungalow",
        "family_house",
        "reihenhaus",
        "reihenendhaus",
        "reihenmittelhaus",
        "einfamilienhaus",
        "zweifamilienhaus",
        "landwirtschaftliche_betriebe",
        "retail",
        "office",
        "industrial",
        "warehouse",
        "hotel",
        "other_commercial",
        "restaurant",
        "werkstatt",
        "plot",
        "urban_plot",
        "rural_plot",
        "room",
        "other",
        "garage",
        "parking",
        "apartment_building",
        "office_building",
        "mix_use_building"
      ],
      "description": "Property type, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint."
    },
    "type_group": {
      "type": "string",
      "description": "Property type group, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint."
    },
    "operations": {
      "items": {
        "type": "string",
        "enum": [
          "sale",
          "rent"
        ]
      },
      "type": "array",
      "description": "Operation types for which property is available."
    },
    "location": {
      "properties": {
        "location_id": {
          "type": "integer",
          "description": "('Location ID, as returned by the [POST /api/v1/references/locations](/#operation/api__post__v1__references__locations) endpoint.',)"
        },
        "name": {
          "type": "string",
          "description": "Location name."
        },
        "administrative_level": {
          "type": "string",
          "description": "Location administrative level."
        },
        "zip_codes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The location zip codes.",
          "default": []
        }
      },
      "type": "object",
      "required": [
        "location_id",
        "name",
        "administrative_level"
      ],
      "description": "Information about property location."
    },
    "locations_structure": {
      "items": {
        "properties": {
          "location_id": {
            "type": "integer",
            "description": "('Location ID, as returned by the [POST /api/v1/references/locations](/#operation/api__post__v1__references__locations) endpoint.',)"
          },
          "name": {
            "type": "string",
            "description": "Location name."
          },
          "administrative_level": {
            "type": "string",
            "description": "Location administrative level."
          },
          "zip_codes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "description": "The location zip codes.",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "location_id",
          "name",
          "administrative_level"
        ]
      },
      "type": "array",
      "description": "Information about all the parent locations (including property location) up to the country."
    },
    "coordinates": {
      "properties": {
        "latitude": {
          "type": "number",
          "description": "Latitude."
        },
        "longitude": {
          "type": "number",
          "description": "Longitude."
        }
      },
      "type": [
        "object",
        "null"
      ],
      "required": [
        "latitude",
        "longitude"
      ],
      "description": "Property coordinates."
    },
    "total_area": {
      "type": "integer",
      "description": "Total area."
    },
    "living_area": {
      "type": "integer",
      "description": "Living area."
    },
    "plot_area": {
      "type": "integer",
      "description": "Plot area."
    },
    "terrace_area": {
      "type": "integer",
      "description": "Terrace area."
    },
    "bathrooms": {
      "type": "integer",
      "description": "Number of bathrooms."
    },
    "bedrooms": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Number of bedrooms."
    },
    "rooms": {
      "type": "integer",
      "description": "Number of rooms."
    },
    "number_of_parkings": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Number of parking spaces."
    },
    "floor_number": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Exact floor number. Negative values indicate underground floors (e.g. basements)."
    },
    "rent_currency": {
      "type": "string",
      "description": "Rent price currency code."
    },
    "rent_period": {
      "type": "string",
      "enum": [
        "day",
        "week",
        "fortnight",
        "month",
        "year",
        "none"
      ],
      "description": "Rent period."
    },
    "rent_price": {
      "type": "integer",
      "description": "Current rent price, in the currency of the listings (specified by the `rent_currency` field)."
    },
    "rent_status": {
      "type": "string",
      "enum": [
        "active",
        "reserved",
        "hold",
        "rented",
        "none"
      ],
      "description": "Current rent status of the property."
    },
    "sale_currency": {
      "type": "string",
      "description": "Sale price currency code."
    },
    "sale_price": {
      "type": "integer",
      "description": "Current sale price, in the currency of the listings (specified by the `sale_currency` field)."
    },
    "sale_status": {
      "type": "string",
      "enum": [
        "active",
        "reserved",
        "hold",
        "sold",
        "none"
      ],
      "description": "Current sale status of the property."
    },
    "is_private_property": {
      "type": "boolean",
      "description": "Whether the property is listed by a private individual, as opposed to an agent or a professional."
    },
    "features": {
      "properties": {
        "floor": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "no_floor",
            "ground",
            "middle",
            "top"
          ],
          "description": "Floor type."
        },
        "orientation": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "exterior",
            "interior"
          ],
          "description": "Property view orientation."
        },
        "view": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "water",
            "landscape",
            "city",
            "golf",
            "park"
          ],
          "description": "View from the property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `views` field instead.</strong>"
        },
        "views": {
          "items": {
            "type": "string",
            "enum": [
              "water",
              "landscape",
              "city",
              "golf",
              "park"
            ]
          },
          "type": [
            "array",
            "null"
          ],
          "description": "List of views from the property."
        },
        "direction": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "north",
            "south",
            "east",
            "west"
          ],
          "description": "Cardinal direction the property faces. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `directions` field instead.</strong>"
        },
        "directions": {
          "items": {
            "type": "string",
            "enum": [
              "north",
              "south",
              "east",
              "west"
            ]
          },
          "type": [
            "array",
            "null"
          ],
          "description": "List of cardinal directions the property faces."
        },
        "characteristics": {
          "items": {
            "type": "string",
            "enum": [
              "balcony",
              "elevator",
              "no_elevator",
              "garage",
              "garden",
              "parking",
              "storage",
              "swimming_pool",
              "terrace",
              "rental_license",
              "furniture",
              "rented_out",
              "life_annuity"
            ]
          },
          "type": [
            "array",
            "null"
          ],
          "description": "Property characteristics."
        }
      },
      "type": "object",
      "required": [
        "floor",
        "orientation",
        "view",
        "views",
        "direction",
        "directions",
        "characteristics"
      ],
      "description": "Property features, as returned by the [GET /api/v1/references/features](/#operation/api__get__v1__references__features) endpoint."
    },
    "condition": {
      "type": "string",
      "enum": [
        "used",
        "ruin",
        "very-good",
        "new",
        "other"
      ],
      "description": "Property condition, as returned by the [GET /api/v1/references/conditions](/#operation/api__get__v1__references__conditions) endpoint."
    },
    "sale_time_on_market": {
      "properties": {
        "date_start": {
          "type": "string",
          "format": "date",
          "description": "Start date of activity on the market."
        },
        "date_end": {
          "type": [
            "string",
            "null"
          ],
          "format": "date",
          "description": "End date of activity on the market."
        },
        "days_on_market": {
          "type": "integer",
          "description": "Number of days property was / is on the market."
        },
        "has_untracked_period": {
          "type": "boolean",
          "description": "Whether the property was already on the market when it started being tracked."
        }
      },
      "type": [
        "object",
        "null"
      ],
      "required": [
        "date_start",
        "date_end",
        "days_on_market",
        "has_untracked_period"
      ],
      "description": "Information about the property last activity on the sales market."
    },
    "rent_time_on_market": {
      "properties": {
        "date_start": {
          "type": "string",
          "format": "date",
          "description": "Start date of activity on the market."
        },
        "date_end": {
          "type": [
            "string",
            "null"
          ],
          "format": "date",
          "description": "End date of activity on the market."
        },
        "days_on_market": {
          "type": "integer",
          "description": "Number of days property was / is on the market."
        },
        "has_untracked_period": {
          "type": "boolean",
          "description": "Whether the property was already on the market when it started being tracked."
        }
      },
      "type": [
        "object",
        "null"
      ],
      "required": [
        "date_start",
        "date_end",
        "days_on_market",
        "has_untracked_period"
      ],
      "description": "Information about the property last activity on the rental market."
    },
    "listings": {
      "items": {
        "properties": {
          "listing_id": {
            "type": "integer",
            "description": "ID of the listing (ad)."
          },
          "total_area": {
            "type": "integer",
            "description": "Total area."
          },
          "plot_area": {
            "type": "integer",
            "description": "Plot area."
          },
          "terrace_area": {
            "type": "integer",
            "description": "Terrace area."
          },
          "bedrooms": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of bedrooms."
          },
          "bathrooms": {
            "type": "integer",
            "description": "Number of bathrooms."
          },
          "rooms": {
            "type": "integer",
            "description": "Number of rooms."
          },
          "sale_status": {
            "type": "string",
            "enum": [
              "active",
              "reserved",
              "hold",
              "sold",
              "none"
            ],
            "description": "Current sale status of the listing."
          },
          "sale_currency": {
            "type": "string",
            "description": "Sale price currency code."
          },
          "sale_price": {
            "type": "integer",
            "description": "Current sale price, in the currency of the listing (specified by the `sale_currency` field)."
          },
          "sale_price_base": {
            "type": "integer",
            "description": "Current sale price, in Euros."
          },
          "rent_status": {
            "type": "string",
            "enum": [
              "active",
              "reserved",
              "hold",
              "rented",
              "none"
            ],
            "description": "Current rent status of the listing."
          },
          "rent_currency": {
            "type": "string",
            "description": "Rent price currency code."
          },
          "rent_price": {
            "type": "integer",
            "description": "Current rent price, in the currency of the listing (specified by the `rent_currency` field)."
          },
          "rent_price_base": {
            "type": "integer",
            "description": "Current rent price, in Euros."
          },
          "agency_legal_id": {
            "type": "string",
            "description": "Agency legal identifier specified on the source. Only for France and its overseas territories(DROM and COM)."
          },
          "agency": {
            "type": "string",
            "description": "The company that manages the listing."
          },
          "listing_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of the listing. Available only for currently active listings.",
            "readOnly": true
          },
          "listing_old_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Old URL of the listing. Available only for currently inactive listings.",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "Property description."
          },
          "listing_uid": {
            "type": "string",
            "description": "Unique ID of the listing on the source site."
          },
          "construction_year": {
            "type": "integer",
            "description": "Construction year."
          },
          "source_name": {
            "type": "string",
            "description": "The name of the source where the listing is displayed."
          },
          "contacts_info": {
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The owner name. Only for FSBO listings."
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "The email contact."
              },
              "phone": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The phone contact."
              }
            },
            "type": "object",
            "required": [
              "name",
              "email",
              "phone"
            ],
            "description": "Information about listing contacts."
          },
          "energy_certificate": {
            "type": "string",
            "description": "Energy certificate classification that attests to the energy efficiency of a property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `energy_rating` field instead.</strong>"
          },
          "energy_rating": {
            "type": "string",
            "description": "Energy rating that attests to the energy efficiency of a property."
          },
          "heating_type": {
            "type": "string",
            "description": "Type of heating."
          },
          "ceiling_label": {
            "type": [
              "string",
              "null"
            ],
            "description": "Ceiling height in meters.<br><span style=\"color:red\">Available only for Germany.</span>"
          },
          "commission": {
            "type": [
              "number",
              "null"
            ],
            "description": "Commission percentage.<br><span style=\"color:red\">Available only for Germany.</span>"
          },
          "min_rent_area": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Minimum rental area in square meters (mainly applicable to commercial properties).<br><span style=\"color:red\">Available only for Germany.</span>"
          },
          "companies": {
            "items": {
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Company name."
                },
                "casafari_connect_on": {
                  "type": "boolean",
                  "description": "Whether the company is connected to Casafari Connect."
                }
              },
              "type": "object",
              "required": [
                "name",
                "casafari_connect_on"
              ]
            },
            "type": "array",
            "description": "Companies to which the listing belongs."
          },
          "created_at": {
            "type": "string",
            "format": "date",
            "description": "The datetime when the listing was added."
          },
          "floor_number": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Exact floor number. Negative values indicate underground floors (e.g. basements)."
          },
          "is_private": {
            "type": "boolean",
            "description": "Whether the listing is listed by a private individual, as opposed to an agent or a professional."
          },
          "casafari_connect": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether the company is connected to Casafari Connect."
          },
          "thumbnails": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "description": "List of the thumbnail image URLs.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "listing_id",
          "total_area",
          "plot_area",
          "terrace_area",
          "bedrooms",
          "bathrooms",
          "rooms",
          "sale_status",
          "sale_currency",
          "sale_price",
          "sale_price_base",
          "rent_status",
          "rent_currency",
          "rent_price",
          "rent_price_base",
          "agency_legal_id",
          "agency",
          "description",
          "listing_uid",
          "construction_year",
          "source_name",
          "contacts_info",
          "energy_certificate",
          "energy_rating",
          "heating_type",
          "ceiling_label",
          "commission",
          "min_rent_area",
          "companies",
          "created_at",
          "floor_number",
          "is_private",
          "casafari_connect"
        ]
      },
      "type": "array",
      "description": "The list of listings related to the property."
    },
    "history": {
      "items": {
        "properties": {
          "sale_price": {
            "type": "integer",
            "description": "Sale price, in the currency of the listings (specified by the `sale_currency` field)."
          },
          "sale_currency": {
            "type": "string",
            "description": "Sale price currency code."
          },
          "rent_price": {
            "type": "integer",
            "description": "Rent price, in the currency of the listings (specified by the `rent_currency` field)."
          },
          "rent_currency": {
            "type": "string",
            "description": "Rent price currency code."
          },
          "changed_at": {
            "type": "string",
            "format": "date",
            "description": "Date when the estate was last updated."
          }
        },
        "type": "object",
        "required": [
          "sale_price",
          "sale_currency",
          "rent_price",
          "rent_currency",
          "changed_at"
        ]
      },
      "type": "array",
      "description": "('List of sale and rent price history data. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `sale_price_history and rent_price_history` field instead.</strong>',)",
      "default": []
    },
    "sale_price_history": {
      "items": {
        "properties": {
          "date_start": {
            "type": "string",
            "format": "date",
            "description": "Start date when the change was applied."
          },
          "date_end": {
            "type": "string",
            "format": "date",
            "description": "End date when the change was applied."
          },
          "sale_price_old": {
            "type": "integer",
            "description": "Old sale price, in the currency of the listings."
          },
          "sale_price_new": {
            "type": "integer",
            "description": "New sale price, in the currency of the listings."
          }
        },
        "type": "object",
        "required": [
          "date_start",
          "date_end",
          "sale_price_old",
          "sale_price_new"
        ]
      },
      "type": "array",
      "description": "List of sale price history data.",
      "default": []
    },
    "rent_price_history": {
      "items": {
        "properties": {
          "date_start": {
            "type": "string",
            "format": "date",
            "description": "Start date when the change was applied."
          },
          "date_end": {
            "type": "string",
            "format": "date",
            "description": "End date when the change was applied."
          },
          "rent_price_old": {
            "type": "integer",
            "description": "Old rent price, in the currency of the listings."
          },
          "rent_price_new": {
            "type": "integer",
            "description": "New rent price, in the currency of the listings."
          }
        },
        "type": "object",
        "required": [
          "date_start",
          "date_end",
          "rent_price_old",
          "rent_price_new"
        ]
      },
      "type": "array",
      "description": "List of rent price history data.",
      "default": []
    },
    "sale_status_history": {
      "items": {
        "properties": {
          "date_start": {
            "type": "string",
            "format": "date",
            "description": "Start date when the change was applied."
          },
          "date_end": {
            "type": "string",
            "format": "date",
            "description": "End date when the change was applied."
          },
          "sale_status_old": {
            "type": "string",
            "description": "Old sale status, in the currency of the listings."
          },
          "sale_status_new": {
            "type": "string",
            "description": "New sale status, in the currency of the listings."
          }
        },
        "type": "object",
        "required": [
          "date_start",
          "date_end",
          "sale_status_old",
          "sale_status_new"
        ]
      },
      "type": "array",
      "description": "List of sale status history data.",
      "default": []
    },
    "rent_status_history": {
      "items": {
        "properties": {
          "date_start": {
            "type": "string",
            "format": "date",
            "description": "Start date when the change was applied."
          },
          "date_end": {
            "type": "string",
            "format": "date",
            "description": "End date when the change was applied."
          },
          "rent_status_old": {
            "type": "string",
            "description": "Old rent status, in the currency of the listings."
          },
          "rent_status_new": {
            "type": "string",
            "description": "New rent status, in the currency of the listings."
          }
        },
        "type": "object",
        "required": [
          "date_start",
          "date_end",
          "rent_status_old",
          "rent_status_new"
        ]
      },
      "type": "array",
      "description": "List of rent status history data.",
      "default": []
    },
    "property_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "URL of the property in the CASAFARI website.",
      "readOnly": true
    },
    "address": {
      "type": "string",
      "description": "Property address."
    },
    "zip_code": {
      "type": [
        "string",
        "null"
      ],
      "description": "The location zip code."
    },
    "distance": {
      "type": [
        "number",
        "null"
      ],
      "description": "Distance in kilometers from target point to the property.Available only when the `custom_location_boundary.circle` field is defined in the request.",
      "readOnly": true
    },
    "description": {
      "type": "string",
      "description": "Property description."
    },
    "construction_year": {
      "type": "integer",
      "description": "Construction year."
    },
    "rent_price_base": {
      "type": "integer",
      "description": "Current rent price, in Euros."
    },
    "rent_price_per_sqm": {
      "type": "number",
      "description": "Current rent price per square meter, in the currency of the listings (specified by the `rent_currency` field)."
    },
    "rent_price_per_sqm_base": {
      "type": "number",
      "description": "Current rent price per square meter, in Euros."
    },
    "sale_price_base": {
      "type": "integer",
      "description": "Current sale price, in Euros."
    },
    "sale_price_per_sqm": {
      "type": "number",
      "description": "Current sale price per square meter, in the currency of the listings (specified by the `sale_currency` field)."
    },
    "sale_price_per_sqm_base": {
      "type": "number",
      "description": "Current sale price per square meter, in Euros."
    },
    "is_auction_property": {
      "type": "boolean",
      "description": "Whether the property is an auction property."
    },
    "is_bank_property": {
      "type": "boolean",
      "description": "Whether the property is a bank property."
    },
    "changed_at": {
      "type": "string",
      "format": "date",
      "description": "The date and time when the property was last updated."
    },
    "sale_price_last_change": {
      "properties": {
        "change_date": {
          "type": "string",
          "format": "date",
          "description": "Date of the change."
        },
        "old_value": {
          "type": "integer",
          "description": "Value before change."
        },
        "new_value": {
          "type": "integer",
          "description": "Value after change."
        }
      },
      "type": [
        "object",
        "null"
      ],
      "required": [
        "change_date",
        "old_value",
        "new_value"
      ],
      "description": "Information about the last change of sale price."
    },
    "rent_price_last_change": {
      "properties": {
        "change_date": {
          "type": "string",
          "format": "date",
          "description": "Date of the change."
        },
        "old_value": {
          "type": "integer",
          "description": "Value before change."
        },
        "new_value": {
          "type": "integer",
          "description": "Value after change."
        }
      },
      "type": [
        "object",
        "null"
      ],
      "required": [
        "change_date",
        "old_value",
        "new_value"
      ],
      "description": "Information about the last change of rent price."
    },
    "thumbnails": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "description": "List of the thumbnail image URLs.",
      "readOnly": true
    },
    "pictures": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "description": "List of the original picture image URLs.",
      "readOnly": true
    },
    "gross_yield": {
      "type": "number",
      "description": "Gross yield in percentage."
    },
    "title": {
      "type": "string",
      "description": "Property title."
    },
    "energy_certificate": {
      "type": "string",
      "description": "Energy certificate classification that attests to the energy efficiency of a property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `energy_rating` field instead.</strong>"
    },
    "energy_rating": {
      "type": "string",
      "description": "Energy rating that attests to the energy efficiency of a property."
    },
    "ceiling_label": {
      "type": [
        "string",
        "null"
      ],
      "description": "Ceiling height in meters.<br><span style=\"color:red\">Available only for Germany.</span>"
    },
    "min_rent_area": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Minimum rental area in square meters (mainly applicable to commercial properties).<br><span style=\"color:red\">Available only for Germany.</span>"
    },
    "ref_numbers": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "description": "List of reference numbers from listings.",
      "readOnly": true
    },
    "casafari_connect": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether the company is connected to Casafari Connect."
    },
    "source_floor_numbers": {
      "items": {
        "type": "integer"
      },
      "type": "array",
      "description": "List of property floor numbers based on listings data. Negative values indicate underground floors (e.g. basements).",
      "default": []
    },
    "retail_data": {
      "properties": {
        "facade_measurements": {
          "properties": {
            "height": {
              "type": [
                "number",
                "null"
              ],
              "description": "Facade height in meters."
            },
            "length": {
              "type": [
                "number",
                "null"
              ],
              "description": "Facade length in meters."
            },
            "surface": {
              "type": [
                "number",
                "null"
              ],
              "description": "Facade surface area in square meters."
            }
          },
          "type": [
            "object",
            "null"
          ],
          "required": [
            "height",
            "length",
            "surface"
          ],
          "description": "Facade measurements of the commercial property (height, length, surface in meters)."
        },
        "transfer_price_range": {
          "properties": {
            "gte": {
              "type": [
                "integer",
                "null"
              ],
              "description": "Lower bound of the transfer price range."
            },
            "lte": {
              "type": [
                "integer",
                "null"
              ],
              "description": "Upper bound of the transfer price range."
            }
          },
          "type": [
            "object",
            "null"
          ],
          "required": [
            "gte",
            "lte"
          ],
          "description": "Price range if the property is available for transfer."
        },
        "is_street_level": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether the commercial entrance is situated at the street level, without having to go upstairs/downstairs to reach it."
        },
        "number_of_floors": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The number of commercial property floors."
        },
        "number_of_premises": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The number of property usable rooms/premises."
        },
        "possible_business_types": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ],
          "description": "What kind of business can/did run in this commercial property (e.g. cafe, restaurant, grocery store, dental clinic)."
        }
      },
      "type": [
        "object",
        "null"
      ],
      "required": [
        "facade_measurements",
        "transfer_price_range",
        "is_street_level",
        "number_of_floors",
        "number_of_premises",
        "possible_business_types"
      ],
      "description": "Retail-related attributes of the property. Null for non-commercial properties or if the retail data is not available."
    }
  },
  "type": "object",
  "required": [
    "property_id",
    "primary_listing_id",
    "type",
    "type_group",
    "operations",
    "location",
    "locations_structure",
    "coordinates",
    "total_area",
    "living_area",
    "plot_area",
    "terrace_area",
    "bathrooms",
    "bedrooms",
    "rooms",
    "floor_number",
    "rent_currency",
    "rent_period",
    "rent_price",
    "rent_status",
    "sale_currency",
    "sale_price",
    "sale_status",
    "is_private_property",
    "features",
    "condition",
    "sale_time_on_market",
    "rent_time_on_market",
    "listings",
    "address",
    "zip_code",
    "description",
    "construction_year",
    "rent_price_base",
    "rent_price_per_sqm",
    "rent_price_per_sqm_base",
    "sale_price_base",
    "sale_price_per_sqm",
    "sale_price_per_sqm_base",
    "is_auction_property",
    "is_bank_property",
    "changed_at",
    "sale_price_last_change",
    "rent_price_last_change",
    "gross_yield",
    "title",
    "energy_certificate",
    "energy_rating",
    "ceiling_label",
    "min_rent_area",
    "casafari_connect"
  ]
}