Understand an area · Use case
Is it a buyer's or a seller's market in this area?
Casafari Area Insights shows whether an area favours buyers or sellers through activity time series. Run ma_get_time_series_data once each for new, sold_or_rented, available_on_market, price_up and price_down on the same area and filters. New supply outpacing sales, with more cuts than rises, points to a buyer's market; the reverse points to a seller's market.
Products: Area Insights
Short answer
Area Insights offers five activity data points:
new: newly advertised properties.sold_or_rented: properties sold or rented.available_on_market: properties on the market.price_up: price increases.price_down: price decreases.
All five come from the status and price changes recorded in Casafari's property graph. Each property record keeps every price change, status change, appearance and removal, with dates. Read the five series together to judge whether stock is building or being absorbed, and whether sellers are cutting or raising prices.
Steps
Resolve the area and anchor dates
- Call
ma_get_location_typeaheadwith an English place name, for exampleBarcelona, and keep thelocation_id. - Call
ma_get_current_datetimeto turn "the last two years" into a concretedate_range.
Run ma_get_time_series_data once per data_point with identical filters
- Call
ma_get_time_series_datafive times. Keeptype_group,business_type,custom_location_boundary,date_interval,date_rangeand every filter identical, and change onlydata_point. The tool's own notes recommend reusing the same filters with differentdata_pointvalues, for example to compare new supply with sold properties.
Compute trend_strength, slope_per_period and delta_pct with ma_get_time_series_operations
- For each series, call
ma_get_time_series_operationswith the same object assegment. Setoperationsto["trend_strength", "slope_per_period", "delta_pct"]. You can addinc_stepsanddec_stepsto count rising and falling periods.
Map where cuts concentrate with ma_get_heatmap and data_point price_down
- Call
ma_get_heatmapwith the city'slocation_idanddata_pointprice_down. It returns one value per district, so you can see where cuts concentrate.
Over REST, POST /market-analytics-api/analysis for a market analysis of the same boundary
- Send
POST /market-analytics-api/analysiswith the samecustom_location_boundary, plusbusiness_type,typesand any range filters. The response fields are documented on the operation page; this page does not repeat them.
Example: apartments for sale in Barcelona, monthly
Prompt to the assistant: "Is the Barcelona apartment market cooling? Compare new supply with sales and price cuts with price rises, month by month since 2024."
The assistant calls ma_get_location_typeahead (Barcelona), then ma_get_current_datetime, then four series requests. The four requests are identical except for data_point:
{
"request_data": {
"alias": "Barcelona apartments, sale",
"type_group": "apartment",
"business_type": "sale",
"custom_location_boundary": {"location_ids": [BARCELONA_LOCATION_ID]},
"data_point": "new",
"date_interval": "month",
"date_range": {"min": "2024-01-01"}
}
}It then lines the series up by date_start:
| Pair | Series A | Series B | What the gap shows |
|---|---|---|---|
| Supply vs absorption | new | sold_or_rented | Whether stock is building or being absorbed |
| Price pressure | price_down | price_up | Whether sellers are adjusting downwards |
Finally it adds available_on_market as the stock line and delta_pct for each series. The figures come from the live calls; these docs publish none.
How to read the result
New supply rising faster than sold_or_rented: stock builds
When new runs above sold_or_rented month after month, and available_on_market climbs, supply is outpacing absorption. That favours buyers and supports harder negotiation. The opposite pattern, with falling stock, favours sellers.
price_down outnumbering price_up: sellers adjusting
A rising count of price_down against price_up shows asking prices meeting resistance. Check where it happens with the price_down heatmap before generalising to the whole city.
Counts are properties, not advertisements
The property graph merges every advertisement of the same property into one record. So a home advertised by three agencies counts once in new, available_on_market and the other counts. See Why Casafari counts properties.
Limits
Availability:
- All Area Insights MCP tools, plus the REST operations
POST /market-analytics-api/time-seriesandPOST /market-analytics-api/analysis, are available to Casafari clients with their Casafari account. - Self-serve access for new users is coming soon.
Coverage and data:
- The tool descriptions name no specific market.
- Activity counts come from advertised properties and their status changes. They are not registry or notarial records.
Pricing, quotas and refresh:
- The sources give no figures for pricing, quotas or refresh frequency. Ask Casafari.
One data_point per request
Each ma_get_time_series_data or ma_get_time_series_operations request carries a single data_point, type_group and business_type. A five-signal view therefore takes five series requests, plus one operations request per series.
REST analysis body fields are the ones published on its operation page
The POST /market-analytics-api/analysis request body accepts these fields:
custom_location_boundary,business_type,types.conditions,energy_ratings,orientations,views,directions,floors,characteristics.price_range,rooms_range,bedrooms_range,bathrooms_range,total_area_range,plot_area_range,construction_year_range.
Its response is described only on the operation page.
Questions
What does sold_or_rented count exactly?
sold_or_rented counts the properties sold or rented in each period, as the tool description puts it. The count comes from status changes to sold or rented recorded in Casafari's property graph, and each property counts once. It is not registry or notarial data. The docs publish no further detail on how a status change is confirmed, so treat the count as activity in advertised properties.
Can I separate sales from rentals?
Yes. Every Area Insights time series request takes business_type, either sale or rent. With sale, the series describe the sales market; with rent, they describe the rental market. Each request covers one of the two, so run the same set of data points twice to compare the markets. Keep every other filter identical so the two views stay comparable.
Can I filter to new-build or very-good condition?
Yes, by property condition. Set conditions to ["new"] or ["very-good"]. The allowed values are used, ruin, very-good, new and other, as returned by GET /api/v1/references/conditions. Note that this is a condition filter, not a new-development flag. The Area Insights time series schema has no separate new-development field.
How is a property counted if several agencies advertise it?
Once. Casafari deduplicates advertisements from agency websites and portals and merges them into one record per property, with its full price and status history. Area Insights counts those property records, so a home advertised by several agencies adds one to new, available_on_market or price_down, not one per advertisement. See /docs/faq/count-properties-not-advertisements.