Platform
Get started

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.The most complete property index in Europe: a deduplicated, cleaned property graph.

How the graph is built

Area Insights · MCP tool

area-insights_get_sales_average_prices

Average registered sale prices by location

Read-only29 parameters

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

Over REST: no operation in the public API description does this. MCP and REST compared.

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?

countrystringrequired
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).
ES FR IT PL PT AT
location_boundaryobjectrequired
The area: exactly one of location_ids (from Location Lookup), circle or polygon.
3 properties
location_idsinteger[]
Location ids from Location Lookup (locations_search), all in the request's country.
1–100 items≥ 1
circleobject
A circle: its centre and radius in metres (1 to 50 000).
2 properties
coordinatesobjectrequired
2 properties
latnumberrequired
-90–90
lonnumberrequired
-180–180
radius_in_metersnumberrequired
1–50000
polygonobject[]
A closed polygon: at least 4 points, the last equal to the first.
4–1000 items
2 properties
latnumberrequired
-90–90
lonnumberrequired
-180–180
sold_at_rangeobject
Sale dates, YYYY-MM-DD: {"gte": "2024-01-01"}, an upper bound with lte, or both (or gt / lt).
4 properties
gtestring (date)
pattern ^\d{4}-\d{2}-\d{2}$
gtstring (date)
pattern ^\d{4}-\d{2}-\d{2}$
ltestring (date)
pattern ^\d{4}-\d{2}-\d{2}$
ltstring (date)
pattern ^\d{4}-\d{2}-\d{2}$
typesstring[]
Property types, lower case, e.g. ["apartment", "penthouse"] or ["house", "villa"].
1–40 itemsat most 40 characterspattern ^[a-z][a-z_]*$
conditionsstring[]
Spain, Italy and Poland only: property condition, any of used, ruin, very-good, new, other.
used ruin very-good new other
1–5 items
with_mortgageboolean
Spain only: true for sales financed with a mortgage, false for sales without one.
price_rangeobject
Registered sale price in euros: {"gte": n, "lte": n} (or gt / lt); at least one bound.
4 properties
gtenumber
≥ 0
gtnumber
≥ 0
ltenumber
≥ 0
ltnumber
≥ 0
price_per_sqm_rangeobject
Registered sale price per square metre in euros: {"gte": n, "lte": n} (or gt / lt); at least one bound.
4 properties
gtenumber
≥ 0
gtnumber
≥ 0
ltenumber
≥ 0
ltnumber
≥ 0

How do I call area-insights_get_sales_average_prices?

Required arguments only, with placeholder values. Your assistant fills them in from the parameters above.

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

Tip: add .md to any URL to read it as Markdown.