# Search properties (v1)

> **Casafari is the AI agent-native real estate data intelligence platform.** The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries. Every property is one record with its full price and market history. [How the property graph is built](/docs/property-graph).

`POST https://api.casafari.com/api/v1/properties/search`

[Properties](/docs/properties) · [REST API](/docs/rest/properties). Send `Authorization: Bearer $CASAFARI_TOKEN`; see [how to get a token](/docs/rest#get-a-token).

Over MCP: no tool does this. See [MCP and REST compared](/docs/parity#properties).

## Description

Search properties.

## Query parameters

- `limit` (integer, optional): Number of results to return per page. ≤ 100; default 20.
- `offset` (integer, optional): The initial index from which to return the results. ≤ 50000.
- `order` (string, optional): The order of search results. Values: `asc`, `desc`. default "asc".
- `order_by` (string, optional): The field by which to sort the results. Values: `price`, `price_per_sqm`, `total_area`, `plot_area`, `bedrooms`, `construction_year`, `last_update`, `time_on_market`.

## Request body

Content type `application/json`. Optional. Type: `object`.

- `search_operations` (string[], required): Search business types for which the property is available. Values: `sale`, `sold`, `sale_hold`, `rent`, `rented`, `rent_hold`.
- `location_ids` (integer[], optional): List of location IDs, as returned by the POST /api/v1/references/locations endpoint. at most 100 items; 1–2147483647.
- `custom_location_boundary` (object, optional): Custom location to search within. Can be defined as a polygon of geo-points or a circle with a given target point and a distance. Only one value should be provided.
  - `polygon` (object[], optional): Closed polygon of geo-points to search within. First and last points must match. **This field is deprecated and will be removed in the next major update.** **Please, use `polygons` field instead.** at least 4 items.
    - `latitude` (number, required): Latitude. -90–90.
    - `longitude` (number, required): Longitude. -180–180.
  - `circle` (object, optional): Circle boundary to search within.
    - `distance` (number, optional): Maximum distance in kilometers from the requested `target_point` to the properties. 0.05–50; default 5.
    - `target_point` (object, required): Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided.
      - `coordinates` (object, optional): Target point coordinates to search around.
        - `latitude` (number, required): Latitude. -90–90.
        - `longitude` (number, required): Longitude. -180–180.
      - `address` (string, optional): Address of the property to define the point to search around.
      - `cadastral_reference` (object, optional): Cadastral reference of the property to define the point to search around. For now available only for Spain.
        - `country_code` (string, required): Country code following the ISO 3166-1 alpha-2 rules. Values: `ES`.
        - `cadastral_reference` (string, required): Cadastral reference of the estate.
        - `province` (string, optional): Name of the estate's province.
        - `municipality` (string, optional): Name of the estate's municipality.
  - `polygons` (object[][], optional): List of closed polygons of geo-points to search within. Each polygon must contain at least 4 points. First and last points must match in each polygon. Maximum 4 polygons allowed. at most 4 items.
    - `latitude` (number, required): Latitude. -90–90.
    - `longitude` (number, required): Longitude. -180–180.
- `conditions` (string[], optional): Property condition, as returned by the GET /api/v1/references/conditions endpoint. Values: `used`, `ruin`, `very-good`, `new`, `other`.
- `property_date_from` (string (date), optional): Start date (in the format `YYYY-MM-DD`) of the period for property of interest.
- `property_date_to` (string (date), optional): End date (in the format `YYYY-MM-DD`) of the period for property of interest.
- `created_date_from` (string (date-time), optional): Created date from (in the format `YYYY-MM-DDTHH:mm:ss`).
- `created_date_to` (string (date-time), optional): Created date to (in the format `YYYY-MM-DDTHH:mm:ss`).
- `updated_date_from` (string (date-time), optional): Updated date from (in the format `YYYY-MM-DDTHH:mm:ss`).
- `updated_date_to` (string (date-time), optional): Updated date to (in the format `YYYY-MM-DDTHH:mm:ss`).
- `price_from` (integer, optional): Minimum price value. 1–2147483647.
- `price_to` (integer, optional): Maximum price value. 1–2147483647.
- `price_per_sqm_from` (integer, optional): Minimum value for price per square meter. 1–2147483647.
- `price_per_sqm_to` (integer, optional): Maximum value for price per square meter. 1–2147483647.
- `bedrooms_from` (integer, optional): Minimum number of bedrooms. 0–15000.
- `bedrooms_to` (integer, optional): Maximum number of bedrooms. 0–15000.
- `bathrooms_from` (integer, optional): Minimum number of bathrooms. 1–15000.
- `bathrooms_to` (integer, optional): Maximum number of bathrooms. 1–15000.
- `total_area_from` (integer, optional): Minimum total area. 1–10000000.
- `total_area_to` (integer, optional): Maximum total area. 1–10000000.
- `plot_area_from` (integer, optional): Minimum plot area. 1–10000000.
- `plot_area_to` (integer, optional): Maximum plot area. 1–10000000.
- `construction_year_from` (integer, optional): Minimum construction year. 1–3000.
- `construction_year_to` (integer, optional): Maximum construction year. 1–3000.
- `floor` (string, optional): Floor type. **This field is deprecated and will be removed in the next major update.** **Please, use `floors` field instead.** Values: `no_floor`, `ground`, `middle`, `top`.
- `floors` (string[], optional): List of floor types. Values: `no_floor`, `ground`, `middle`, `top`.
- `orientation` (string, optional): Property view orientation. Values: `exterior`, `interior`.
- `view` (string, optional): View from the property. **This field is deprecated and will be removed in the next major update.** **Please, use `views` field instead.** Values: `water`, `landscape`, `city`, `golf`, `park`.
- `views` (string[], optional): List of views from the property. Values: `water`, `landscape`, `city`, `golf`, `park`.
- `direction` (string, optional): Cardinal direction the property faces. **This field is deprecated and will be removed in the next major update.** **Please, use `directions` field instead.** Values: `north`, `south`, `east`, `west`.
- `directions` (string[], optional): List of cardinal directions the property faces. Values: `north`, `south`, `east`, `west`.
- `characteristics` (object, optional): Property characteristics. **The field was changed from Array of strings to object.** **Backwards compatibility is still supported.**
  - `must_have` (string[], optional): Include only properties that have all these characteristics. Values: `balcony`, `elevator`, `no_elevator`, `garage`, `garden`, `parking`, `storage`, `swimming_pool`, `terrace`, `rental_license`, `furniture`, `rented_out`, `life_annuity`.
  - `exclude` (string[], optional): Exclude properties that contain any of these characteristics. Values: `balcony`, `elevator`, `no_elevator`, `garage`, `garden`, `parking`, `storage`, `swimming_pool`, `terrace`, `rental_license`, `furniture`, `rented_out`, `life_annuity`.
- `types` (string[], optional): Country availability per type is available at the GET /api/v1/references/types endpoint. Property types by type groups: **apartment:** penthouse, dachgeschosswohnung, erdgeschosswohnung, apartment, etagenwohnung, studio, duplex **house:** townhouse, reihenmittelhaus, landwirtschaftliche_betriebe, country_house, family_house (DEPRECATED), villa, palace, chalet, zweifamilienhaus, country_estate, reihenendhaus, reihenhaus, bungalow, einfamilienhaus, house **room:** room **building:** office_building, apartment_building, mix_use_building **investment:** retail, hotel, warehouse, office, restaurant, industrial, other_commercial, werkstatt **plot:** rural_plot, urban_plot, plot (DEPRECATED) **other:** garage, other, parking Values: `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`.
- `property_types` (string[], optional): Property types, as returned by the GET /api/v1/references/types endpoint. **This field is deprecated and will be removed in the next major update.** **Please, use `types` field instead.** Values: `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`.
- `private` (boolean, optional): Whether to return properties listed by a private individual, as opposed to an agent or a professional.
- `auction` (boolean, optional): Whether to return auction properties. (If the `bank` filter is also set, the result will contain both `auction` and `bank` properties)
- `bank` (boolean, optional): Whether to return bank properties. (If the `auction` filter is also set, the result will contain both `bank` and `auction` properties)
- `casafari_connect` (boolean, optional): Whether to return properties that have at least one listing with a company connected to Casafari Connect.
- `listing_agents` (string[], optional): Return properties from specified agents. To find allowed agent names use the GET /api/v1/references/agents endpoint.
- `with_agencies` (string[], optional): Return properties from specified agencies, companies or sources. To find allowed agency names use the GET /api/v1/references/agencies endpoint.
- `without_agencies` (string[], optional): Exclude properties from specified agencies, companies or sources. To find allowed agency names use the GET /api/v1/references/agencies endpoint.
- `exclusive` (boolean, optional): Whether to return properties that are available on market exclusively from a single agency or private individual. Can be passed only along with at least one of the fields: `private`, `with_agencies`, `without_agencies`.
- `ref_numbers` (string[], optional): List of reference numbers from listings.
- `energy_certificate` (string, optional): Energy certificate. **This field is deprecated and will be removed in the next major update.** **Please, use `energy_ratings` field instead.** Values: `Unknown`, `A+`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`.
- `energy_certificates` (string[], optional): List of energy certificates. **This field is deprecated and will be removed in the next major update.** **Please, use `energy_ratings` field instead.** Values: `Unknown`, `A+`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`.
- `energy_ratings` (string[], optional): List of energy ratings. Values: `Unknown`, `A+`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`.
- `days_on_market_from` (integer, optional): Minimum days on market value. 1–10000.
- `days_on_market_to` (integer, optional): Maximum days on market value. 1–10000.
- `gross_yield_from` (number, optional): Minimum gross yield value. 1–20.
- `gross_yield_to` (number, optional): Maximum gross yield value. 1–20.
- `rooms_from` (integer, optional): Minimum number of rooms. 1–15000.
- `rooms_to` (integer, optional): Maximum number of rooms. 1–15000.
- `number_of_parkings_from` (integer, optional): Minimum number of parking spaces. 1–15000.
- `number_of_parkings_to` (integer, optional): Maximum number of parking spaces. 1–15000.
- `living_area_from` (integer, optional): Minimum living area. 1–10000000.
- `living_area_to` (integer, optional): Maximum living area. 1–10000000.
- `floor_numbers` (integer[], optional): Desired list of floor numbers. Negative values indicate underground floors (e.g. basements). Minimum value is -250. Maximum value is 250. -250–250.

## Example request

Placeholders only: replace the token and the values with your own.

```bash
curl -X POST "https://api.casafari.com/api/v1/properties/search" \
  -H "Authorization: Bearer $CASAFARI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "search_operations": [
    "rented",
    "rent"
  ],
  "conditions": [
    "used"
  ],
  "location_ids": [
    499
  ],
  "custom_location_boundary": {
    "circle": {
      "distance": 30,
      "target_point": {
        "coordinates": {
          "latitude": 38.71,
          "longitude": -9.17
        }
      }
    }
  },
  "price_from": 800,
  "price_to": 10000,
  "price_per_sqm_from": 5,
  "price_per_sqm_to": 50,
  "bedrooms_from": 1,
  "bedrooms_to": 3,
  "bathrooms_from": 1,
  "bathrooms_to": 2,
  "rooms_from": 1,
  "rooms_to": 4,
  "number_of_parkings_from": 1,
  "number_of_parkings_to": 2,
  "total_area_from": 30,
  "total_area_to": 1000,
  "living_area_from": 20,
  "living_area_to": 800,
  "floor_numbers": [
    1,
    2,
    3
  ],
  "views": [
    "city"
  ],
  "directions": [
    "west",
    "south"
  ],
  "floors": [
    "middle",
    "top"
  ],
  "energy_ratings": [
    "A",
    "B",
    "C"
  ],
  "casafari_connect": true
}'
```

## Responses

### 200 OK

Type: `object[]`.

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

### 400 Bad Request

Type: `object`.

- `errors` (object, optional): Description of the errors encountered.

### 401 Unauthorized

Type: `object`.

- `detail` (string, optional): Description of the error encountered.

### 403 Forbidden

Type: `object`.

- `detail` (string, optional): Description of the error encountered.

## Questions about this

- [Can I search properties over Casafari MCP?](/docs/faq/properties-over-mcp)
