CasafariMCP
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

ma_get_time_on_market_distribution

Get Time on Market Distribution

Read-only45 parametersTyped response

Over REST: POST /market-analytics-api/distributions/time-on-market (equivalent). MCP and REST compared.

Description

Returns a distribution of properties by their time on the market, grouped by price intervals. Each record contains average listing duration and property count.

Business Context

Useful for evaluating market liquidity and demand efficiency, identifying price segments where listings sell faster or remain longer.

Parameters

NameTypeRequiredDescription
request_dataMCPTimeOnMarketDistributionRequestSchemaYesDefines filters for listing duration analysis.
Filter highlights
  • type_group: property type group
  • business_type: "sale" or "rent"
  • price_range: price interval boundaries
  • date_range: date range for the active listing period
  • exclude_outliers: optional flag to exclude statistical outliers

Returns

json
[
  {
    "lower_bound": 100000,
    "upper_bound": 199999,
    "days_on_market": 45,
    "months_on_market": 1.5,
    "properties_count": 120
  }
]
FieldTypeDescription
lower_boundintLower price limit
upper_boundintUpper price limit
days_on_marketintAverage number of active days
months_on_marketfloatAverage duration in months
properties_countintNumber of listings in the group

Example Request

json
{
  "custom_location_boundary": {
    "circle": {
      "target_point": {"latitude": 41.3851, "longitude": 2.1734},
      "distance": 20000
    }
  },
  "type_group": "apartment",
  "business_type": "sale",
  "price_range": {"min": 100000, "max": 1000000},
  "date_range": {"min": "2024-01-01", "max": "2024-12-31"},
  "exclude_outliers": true
}

Parameters

request_dataobjectrequired
18 properties
type_groupstringrequired
Estate type group.
apartment house
business_typestringrequired
Operation type for which the property is available.
sale rent
price_rangeobjectnullable
2 properties
minintegernullable
1–2147483647
maxintegernullable
1–2147483647
price_per_sqm_rangeobjectnullable
2 properties
minintegernullable
1–2147483647
maxintegernullable
1–2147483647
rooms_rangeobjectnullable
2 properties
minintegernullable
1–15000
maxintegernullable
1–15000
bedrooms_rangeobjectnullable
2 properties
minintegernullable
0–15000
maxintegernullable
0–15000
bathrooms_rangeobjectnullable
2 properties
minintegernullable
1–15000
maxintegernullable
1–15000
total_area_rangeobjectnullable
2 properties
minintegernullable
1–1000000
maxintegernullable
1–1000000
plot_area_rangeobjectnullable
2 properties
minintegernullable
1–1000000
maxintegernullable
1–1000000
construction_year_rangeobjectnullable
2 properties
minintegernullable
1–3000
maxintegernullable
1–3000
characteristicsobjectnullable
2 properties
must_havestring[]
Include only properties that have all these characteristics.
balcony elevator no_elevator garage garden parking storage swimming_pool terrace rental_license furniture rented_out life_annuity
excludestring[]
Exclude properties that contain any of these characteristics.
balcony elevator no_elevator garage garden parking storage swimming_pool terrace rental_license furniture rented_out life_annuity
conditionsstring[]
Property conditions, as returned by the GET /api/v1/references/conditions endpoint.
used ruin very-good new other
at least 1 item
privateboolean
Whether the property is listed by a private individual, as opposed to an agent or a professional.
bankboolean
Whether the property is owned by the bank.
auctionboolean
Whether the property is the subject of an auction.
default false
exclude_outliersboolean
Exclude properties that are significantly underpriced or overpriced compared to similar properties.
default true
custom_location_boundaryobjectrequired
2 properties
location_idsinteger[]
List of location IDs.
1–10 items1–2147483647
circleobject
Circle boundary to search within.
2 properties
distanceintegerrequired
Maximum distance in meters from the requested target_point to the properties.
50–50000
target_pointobjectrequired
Target point coordinates to search around.
2 properties
latitudenumberrequired
-90–90
longitudenumberrequired
-180–180
date_rangeobject
Filter properties based on the start date of their last active period on the market.
2 properties
minstring (date)required
Start date in the format YYYY-MM-DD.
maxstring (date)nullable
End date in the format YYYY-MM-DD.

Response

Returned as result.

Show the response shape (5 fields)
lower_boundintegerrequired
The lower price bound of the distribution unit.
upper_boundintegerrequired
The upper price bound of the distribution unit.
days_on_marketintegerrequired
The average days on the market.
months_on_marketnumberrequired
The average months on the market.
properties_countintegerrequired
The number of properties that participated in the distribution.

Example call

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": "ma_get_time_on_market_distribution",
    "arguments": {
      "request_data": {
        "type_group": "apartment",
        "business_type": "sale",
        "custom_location_boundary": {
          "location_ids": [
            1
          ]
        }
      }
    }
  }
}

Questions about this

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