# Search comparables (v2)

> **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/v2/comparables/search`

[Comparables & Valuation](/docs/comparables-valuation) · [REST API](/docs/rest/comparables-valuation). Send `Authorization: Bearer $CASAFARI_TOKEN`; see [how to get a token](/docs/rest#get-a-token).

Over MCP: [`comps_get-comparables`](/docs/comparables-valuation/get-comparables) (equivalent). See [MCP and REST compared](/docs/parity#comparables-valuation).

## Description

Returns comparable properties by the given parameters.

## Request body

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

- `comparables_count` (integer, required): Maximum number of comparable properties in results. 1–50.
- `coordinates` (object, optional): Target point coordinates to search around. **This field is deprecated and will be removed in the next major update.** **Please, use `target_point.coordinates` field instead.**
  - `latitude` (number, required): Latitude. -90–90.
  - `longitude` (number, required): Longitude. -180–180.
- `target_point` (object, optional): Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided. **This field is deprecated and will be removed in the next major update.** **Please, use `location_boundary.circle` field instead.**
  - `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.
- `distance` (number, optional): Maximum distance in kilometers from the requested `target_point` to comparable properties. **This field is deprecated and will be removed in the next major update.** **Please, use `location_boundary.circle` field instead.** 0.05–50; default 5.
- `location_boundary` (object, required): 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. 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.
- `sold_or_rented_after` (string (date), optional, nullable): Properties sold/rented since this date (in the format `YYYY-MM-DD`) will be considered as possible comparables. Default value: 9 months ago, counting from today. If `null` is passed, only active properties will be considered.
- `operation` (string, required): Operation type. Values: `sale`, `rent`.
- `business_type` (string, optional): Operation type. **This field is deprecated and will be removed in the next major update.** **Please, use `operation` field instead.** Values: `sale`, `rent`.
- `comparables_type` (string, optional): Comparables property type, 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 `comparables_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`.
- `comparables_types` (string[], required): Country availability per type is available at the GET /api/v1/references/types endpoint. Property types by type groups: **apartment:** penthouse, apartment, dachgeschosswohnung, erdgeschosswohnung, duplex, etagenwohnung, studio **house:** einfamilienhaus, family_house (DEPRECATED), reihenmittelhaus, house, villa, country_house, zweifamilienhaus, landwirtschaftliche_betriebe, palace, bungalow, townhouse, reihenhaus, chalet, country_estate, reihenendhaus **room:** room **building:** mix_use_building, office_building, apartment_building **investment:** other_commercial, warehouse, office, retail, hotel, werkstatt, industrial, restaurant **plot:** urban_plot, plot (DEPRECATED), rural_plot **other:** garage, other, parking *Note that you can select multiple types only from one property type group.* 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_type` (string, optional): Comparables property type, 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 `comparables_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`.
- `min_price` (integer, optional): The minimum price filter for comparables result. 0–2147483647; default 0.
- `max_price` (integer, optional): The maximum price filter for comparables result. 1–2147483647.
- `condition` (string, optional): Property condition, as returned by the GET /api/v1/references/conditions endpoint. Values: `used`, `ruin`, `very-good`, `new`, `other`.
- `bedrooms` (integer, optional): Number of bedrooms (cannot be used together with `rooms`). 0–15000.
- `rooms` (integer, optional): Number of rooms (cannot be used together with `bedrooms`). 0–15000.
- `bathrooms` (integer, optional): Number of bathrooms. 1–15000.
- `construction_year` (integer, optional): Desired construction year. 1–3000.
- `total_area` (integer, optional): Desired total area, square meters. This field is required for `hotel`, `industrial`, `office`, `other_commercial`, `restaurant`, `retail`, `warehouse`, `werkstatt` property types if `target_point.cadastral_reference` is not provided. 5–10000000.
- `plot_area` (integer, optional): Desired plot area, square meters. This field is required for `rural_plot` and `urban_plot` property types if `target_point.cadastral_reference` is not provided. 20–10000000.
- `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`.
- `floor_number` (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.
- `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.
  - `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`.
  - `nice_to_have` (string[], optional): Include properties that have any of 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`.
- `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.
- `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.
- `exclude_outliers` (boolean, optional): Exclude properties that are significantly underpriced or overpriced compared to similar properties. default true.

## Example request

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

```bash
curl -X POST "https://api.casafari.com/api/v2/comparables/search" \
  -H "Authorization: Bearer $CASAFARI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "comparables_count": 20,
  "location_boundary": {
    "circle": {
      "distance": 10,
      "target_point": {
        "coordinates": {
          "latitude": 48.8727989,
          "longitude": 2.3025047
        }
      }
    }
  },
  "sold_or_rented_after": "2020-08-01",
  "days_on_market_from": 10,
  "days_on_market_to": 1000,
  "operation": "sale",
  "comparables_types": [
    "apartment"
  ],
  "bedrooms": 2,
  "construction_year": 2010,
  "total_area": 125,
  "condition": "used",
  "floors": [
    "top"
  ],
  "views": [
    "city"
  ],
  "directions": [
    "west"
  ],
  "characteristics": {
    "must_have": [
      "balcony",
      "garage",
      "parking"
    ],
    "nice_to_have": [
      "storage",
      "terrace",
      "furniture"
    ],
    "exclude": [
      "swimming_pool"
    ]
  },
  "energy_ratings": [
    "A",
    "B",
    "C"
  ]
}'
```

## Responses

### 200 OK

Type: `object`.

- `results` (object[], required): Array of found comparable properties.
  - `property_id` (integer, required): ID of the property.
  - `property_url` (string, optional, nullable): URL of the property in the CASAFARI website.
  - `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. Values: `apartment`, `house`, `investment`, `plot`, `other`.
  - `coordinates` (object, required): Property coordinates.
    - `latitude` (number, required): Latitude.
    - `longitude` (number, required): Longitude.
  - `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 [].
  - `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. Not calculated for search by polygon.
  - `construction_year` (integer, required): Construction year.
  - `total_area` (integer, required): Total area.
  - `living_area` (integer, required): Living area.
  - `plot_area` (integer, required): Plot area.
  - `terrace_area` (integer, required): Terrace area.
  - `bedrooms` (integer, required): Number of bedrooms.
  - `rooms` (integer, required): Number of rooms.
  - `bathrooms` (integer, required): Number of bathrooms.
  - `floor_number` (integer, required): Exact floor number. Negative values indicate underground floors (e.g. basements).
  - `condition` (string, required): Property condition, as returned by the GET /api/v1/references/conditions endpoint. Values: `used`, `ruin`, `very-good`, `new`, `other`.
  - `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`.
  - `operations` (string[], required): Operation types for which property is available. Values: `sale`, `rent`.
  - `sale_status` (string, required): Sale status. Values: `active`, `reserved`, `hold`, `sold`, `none`.
  - `sale_currency` (string, required): Sale price currency code.
  - `sale_price` (integer, required): Sale price, in the currency of the listings (specified by the `sale_currency` field).
  - `sale_price_base` (integer, required): Sale price, in Euros.
  - `sale_price_per_sqm` (number, required): Sale price per square meter, in the currency of the listings (specified by the `sale_currency` field).
  - `sale_price_per_sqm_base` (number, required): Sale price per square meter, in Euros.
  - `rent_status` (string, required): Rent status. Values: `active`, `reserved`, `hold`, `rented`, `none`.
  - `rent_currency` (string, required): Rent price currency code.
  - `rent_price` (integer, required): Rent price, in the currency of the listings (specified by the `rent_currency` field).
  - `rent_price_base` (integer, required): Rent price, in Euros.
  - `rent_price_per_sqm` (number, required): Rent price per square meter, in the currency of the listings (specified by the `rent_currency` field).
  - `rent_price_per_sqm_base` (number, required): Rent price per square meter, in Euros.
  - `rent_period` (string, required): Rent period. Values: `day`, `week`, `fortnight`, `month`, `year`, `none`.
  - `title` (string, required): Property title.
  - `description` (string, required): Property description.
  - `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.
  - `sold_at` (string (date), required): Date when the property was sold.
  - `rented_at` (string (date), required): Date when the property was rented.
  - `total_sale_price_change` (number, required): Total sale price change in percents.
  - `total_rent_price_change` (number, required): Total rent price change in percents.
  - `last_sale_price_reduction` (number, required): Last sale price reduction in percents.
  - `last_rent_price_reduction` (number, required): Last rent price reduction in percents.
  - `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.
  - `sale_time_on_market` (object, optional, nullable): Information about the property last activity on the sales market.
  - `rent_time_on_market` (object, optional, nullable): Information about the property last activity on the rental market.
  - `sale_active_listings_count` (integer, optional): Number of active listings for this property on the sales market.
  - `rent_active_listings_count` (integer, optional): Number of active listings for this property on the rental market.
  - `similarity_score` (number, optional): Similarity score of the property. Value between 0 and 1. Indicates how property parameters are close to the requested ones.
  - `listing_urls` (string (uri)[], required): Listing urls of the comparable.
  - `is_outlier` (boolean, optional): Whether the property is considered an outlier based on its price. default false.
  - `is_private_property` (boolean, required): Whether the property is listed by a private individual, as opposed to an agent or a professional.
  - `energy_certificate` (string, optional): 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.** default "".
  - `energy_rating` (string, optional): Energy rating that attests to the energy efficiency of a property. default "".
  - `ref_numbers` (string[], required): List of reference numbers from listings.
- `dvf_results` (object[], optional): Array of found DVF data (Request for geolocated property values).
  - `dvf_reference` (integer, required): Reference ID of the DVF property.
  - `coordinates` (object, required): DVF property coordinates.
    - `lat` (number, required): Latitude.
    - `lon` (number, required): Longitude.
  - `distance` (number, optional): Distance in kilometers from target point to DVF the property. Not calculated for search by polygon.
  - `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. Values: `apartment`, `house`, `investment`, `plot`, `other`.
  - `sale_price` (integer, required): Sale price, in the original currency.
  - `sale_price_base` (integer, required): Sale price, in Euros.
  - `sale_price_psqm` (number, optional): Sale price per square meter, in the original currency. default 0.
  - `sale_price_psqm_base` (number, optional): Sale price per square meter, in Euros. default 0.
  - `sold_at` (string, optional, nullable): Date when the property was sold.
  - `total_area` (integer, required): Total area.
  - `plot_area` (integer, required): Plot area.
  - `rooms` (integer, required): Number of rooms.
  - `bedrooms` (integer, required): Number of bedrooms.
  - `address` (string, required): Property address.
  - `location` (object, required): Information about DVF 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 DVF 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 [].
  - `sale_status` (string, optional): Sale status. Values: `active`, `reserved`, `hold`, `sold`, `none`. default "sold".
  - `thumbnails` (string[], optional): List of the thumbnail image URLs. default [].
- `transactional_data` (object[], optional, nullable)
  - `id` (integer, required)
  - `reference` (string, required)
  - `cadastral_reference` (string, required)
  - `rooms` (integer, required)
  - `bedrooms` (integer, required)
  - `bathrooms` (integer, required)
  - `coordinates` (object, required)
    - `lat` (number, required): Latitude.
    - `lon` (number, required): Longitude.
  - `total_area` (number, required)
  - `plot_area` (number, required)
  - `address` (string, required)
  - `source_typology` (string, required)
  - `source_annexes` (string, required): Additional raw source data (if present), describing annexes (such as parking, storage, etc) included in the transaction price.
  - `type` (string, required) 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)
  - `sold_at` (string (date), required)
  - `currency` (string, required): Price currency code.
  - `price` (number, required)
  - `price_per_sqm` (number, required)
  - `with_mortgage` (boolean, required): Flag indicating whether the transaction was financed with a mortgage.
  - `distance` (number, optional, nullable): Distance in kilometers from target point to the property. Not calculated for search by polygon.
  - `location_id` (integer, required)
  - `construction_year` (integer, required)
  - `location` (object, required)
    - `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)
    - `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 [].
  - `image_url` (string (uri), required) pattern `^(?:[a-z0-9.+-]*)://(?:[^\s:@/]+(?::[^\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\.(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\[[0-9a-f:.]+\]|([a-z¡-￿0-9](?:[a-z¡-￿0-9-]{0,61}[a-z¡-￿0-9])?(?:\.(?!-)[a-z¡-￿0-9-]{1,63}(?<!-))*\.(?!-)(?:[a-z¡-￿-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\.?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\s]*)?\z`.
  - `country_code` (string, required) Values: `FR`, `IT`, `PT`, `ES`.
- `statistics` (object, required): Statistics information for the found comparables (for `operation` defined in the request).
  - `average_price` (integer, required): Average price.
  - `average_price_per_sqm` (number, required): Average price per square meter.
  - `average_time_on_the_market` (integer, required): Average number of days on the market.
  - `average_listings_per_property` (number, required): Average number of listings per property.
  - `sold_or_rented_in_last_six_months` (integer, required): Number of properties that were sold or rented during the last 6 months in the requested location.
- `estimated_prices` (object, required): Estimated prices calculated based on the found comparables (for `operation` defined in the request).
  - `fast_sell_price` (integer, required): Fast sell price.
  - `fair_market_price` (integer, required): Fair market price.
  - `out_of_market_price` (integer, required): Out of market price.
  - `fast_sell_price_per_sqm` (number, required): Fast sell price per square meter.
  - `fair_market_price_per_sqm` (number, required): Fair market price per square meter.
  - `out_of_market_price_per_sqm` (number, required): Out of market price per square meter.
- `casafari_link` (string (uri), required): Link to Comparative Market Analysis page. pattern `^(?:[a-z0-9.+-]*)://(?:[^\s:@/]+(?::[^\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\.(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\[[0-9a-f:.]+\]|([a-z¡-￿0-9](?:[a-z¡-￿0-9-]{0,61}[a-z¡-￿0-9])?(?:\.(?!-)[a-z¡-￿0-9-]{1,63}(?<!-))*\.(?!-)(?:[a-z¡-￿-]{2,63}|xn--[a-z0-9]{1,59})(?<!-)\.?|localhost))(?::[0-9]{1,5})?(?:[/?#][^\s]*)?\z`.
- `valuation_id` (integer, optional, nullable): Persistent valuation ID used to generate Smart Link or a PDF. Expires in a year.

### 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

- [What does Comparables & Valuation do?](/docs/faq/what-is-comparables-valuation)
- [How do I value a home or find comparables with Casafari MCP?](/docs/faq/example-valuation)
