# `area-insights_get_sales_average_prices`

> **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).

Average registered sale prices by location. Product: [Area Insights](/docs/area-insights). Annotations: Read-only.

Call it as `area-insights_get_sales_average_prices` on the Area Insights MCP server, `https://platform.casafari.com/mcp/area-insights` ([how to connect](/docs/connect)).

Over REST: no operation in the public API description does this. [MCP and REST compared](/docs/parity#area-insights).

## What does Average registered sale prices by location do?

Average registered sale price and average price per square metre in Spain, France, Italy, Poland or Portugal, one row per location inside the area: with location_ids, the locations beneath each one, each row naming its parent_location_id. Use it to compare districts or neighbourhoods. Give country and location_boundary; sold_at_range, types and price filters narrow the sales counted. A large area can return many rows. Portugal answers INE's latest median per square metre for each municipality in a circle or polygon. Sale prices, not asking prices: for asking prices use the other Area Insights tools.

## Which parameters does area-insights_get_sales_average_prices take?

- `country` (string, required): ES (Spain), FR (France), IT (Italy), PL (Poland) or PT (Portugal: INE's official median per m² by municipality and quarter; area as location_ids, a circle or a polygon, only types and sold_at_range as filters, no counts) or AT (Austria: yearly open-data prices per m² by municipality, district or state; location_ids only; no counts; not available until Casafari names its source). Values: `ES`, `FR`, `IT`, `PL`, `PT`, `AT`.
- `location_boundary` (object, required): The area: exactly one of location_ids (from Location Lookup), circle or polygon.
  - `location_ids` (integer[], optional): Location ids from Location Lookup (locations_search), all in the request's country. 1–100 items; ≥ 1.
  - `circle` (object, optional): A circle: its centre and radius in metres (1 to 50 000).
    - `coordinates` (object, required)
      - `lat` (number, required) -90–90.
      - `lon` (number, required) -180–180.
    - `radius_in_meters` (number, required) 1–50000.
  - `polygon` (object[], optional): A closed polygon: at least 4 points, the last equal to the first. 4–1000 items.
    - `lat` (number, required) -90–90.
    - `lon` (number, required) -180–180.
- `sold_at_range` (object, optional): Sale dates, YYYY-MM-DD: {"gte": "2024-01-01"}, an upper bound with lte, or both (or gt / lt).
  - `gte` (string (date), optional) pattern `^\d{4}-\d{2}-\d{2}$`.
  - `gt` (string (date), optional) pattern `^\d{4}-\d{2}-\d{2}$`.
  - `lte` (string (date), optional) pattern `^\d{4}-\d{2}-\d{2}$`.
  - `lt` (string (date), optional) pattern `^\d{4}-\d{2}-\d{2}$`.
- `types` (string[], optional): Property types, lower case, e.g. ["apartment", "penthouse"] or ["house", "villa"]. 1–40 items; at most 40 characters; pattern `^[a-z][a-z_]*$`.
- `conditions` (string[], optional): Spain, Italy and Poland only: property condition, any of used, ruin, very-good, new, other. Values: `used`, `ruin`, `very-good`, `new`, `other`. 1–5 items.
- `with_mortgage` (boolean, optional): Spain only: true for sales financed with a mortgage, false for sales without one.
- `price_range` (object, optional): Registered sale price in euros: {"gte": n, "lte": n} (or gt / lt); at least one bound.
  - `gte` (number, optional) ≥ 0.
  - `gt` (number, optional) ≥ 0.
  - `lte` (number, optional) ≥ 0.
  - `lt` (number, optional) ≥ 0.
- `price_per_sqm_range` (object, optional): Registered sale price per square metre in euros: {"gte": n, "lte": n} (or gt / lt); at least one bound.
  - `gte` (number, optional) ≥ 0.
  - `gt` (number, optional) ≥ 0.
  - `lte` (number, optional) ≥ 0.
  - `lt` (number, optional) ≥ 0.

## How do I call area-insights_get_sales_average_prices?

Required arguments only, with placeholder values; see the parameters above for real ones.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "area-insights_get_sales_average_prices",
    "arguments": {
      "country": "ES",
      "location_boundary": {
        "location_ids": [
          1
        ]
      }
    }
  }
}
```

## Related pages

- [Get Current Datetime (area-insights_get_current_datetime)](/docs/area-insights/get_current_datetime)
- [Get Time Series Data (area-insights_get_time_series_data)](/docs/area-insights/get_time_series_data)
- [Get Time Series Operations (area-insights_get_time_series_operations)](/docs/area-insights/get_time_series_operations)
- [Get Price Distribution (area-insights_get_price_distribution)](/docs/area-insights/get_price_distribution)
- [Area Insights: all its MCP tools and REST operations](/docs/area-insights)
- [Connect an MCP client](/docs/connect)
- [All Casafari MCP tools](/docs/tools)
