Find leads · Use case
How do I find properties with price reductions, especially repeated cuts?
Every price change is recorded in Casafari's property graph. With New Market Leads, create a feed with POST /alerts-api/feeds or query POST /api/v1/listing-alerts/search for price-cut alerts in your area. Then fetch each property with GET /api/v1/properties/search/{property_id} and count consecutive reductions in sale_price_history to spot repeated cuts.
Products: New Market Leads, Property Sourcing, Area Insights, Comparables & Valuation
Short answer
The property graph records every price change of every property, with dates. It keeps them in sale_price_history, and in rent_price_history for rentals.
A New Market Leads feed turns each price cut in your area into an alert. Repeated cuts are not a search filter: you count them from a property's history. Area Insights and comparables then show whether the whole area is moving or only that seller.
Steps
Create a feed for price cuts in your area (alert_subtypes) or search alerts with alert_date_from
- Self-serve: create a feed with
POST /alerts-api/feeds(feed_name,filters) for your area, property type and price cuts. Putalert_subtypesset toprice_decreasedinfilters, withlocation_ids,typesandbusiness_type. The other keys are on the Create feed page. Set a webhook withPUT /alerts-api/webhooksbefore the first feed: without one, creating a feed answers409withNo webhook configured.price_decreasedcombines withprivate,bankandauction. - Casafari client accounts: call
POST /api/v1/listing-alerts/searchwithlocation_ids,operation,types,alert_subtypesset to the price-decrease subtype, andalert_date_from/alert_date_to(YYYY-MM-DD). Note the property each alert refers to.
Shortlist with POST /api/v2/properties/search using days_on_market_from and updated_date_from
- With a Casafari client account (the self-serve Property Sourcing search has no time-on-market or update-date filter): search the same area with
location_ids,types,days_on_market_fromandupdated_date_from(YYYY-MM-DDTHH:mm:ss). For example,days_on_market_from180 keeps properties on the market for about six months or more.updated_date_fromkeeps those whose record changed recently. Addprice_from/price_toto match a budget.
Fetch each property with GET /api/v1/properties/search/{property_id} and count consecutive reductions in sale_price_history
- For each candidate, call
GET /api/v1/properties/search/{property_id}. - Sort
sale_price_historyby date and count how many changes in a row lowered the price. The entry fields are on the Get property by ID (v1) page. - Two or more consecutive reductions mark a repeated-cut lead.
Check the area with area-insights_get_time_series_data, data_point price_down
- Self-serve over MCP: resolve the area with
locations_search. - Call
area-insights_get_time_series_datawithcustom_location_boundary.location_ids,type_group,business_typesale,data_pointprice_down,date_intervalmonth,date_range.minand analias.
If cuts are rising across the whole area, one seller's cuts say less about that seller.
On a target, read total_sale_price_change and last_sale_price_reduction from comparables_get_comparables
- Self-serve over MCP: call
comparables_get_comparableswith these inputs:location_boundary.circle.target_point.addressand adistancein kilometresoperationsalecomparables_typescomparables_count(1 to 50)sold_or_rented_after: null, so only active properties are considered
- Read the price fields of each result:
total_sale_price_changeandlast_sale_price_reduction(both in percent) andsale_price_last_change. This covers the neighbours, and the target itself if it appears among the results. - Compare the asking price with the response's
estimated_prices.
Example: houses in Marbella with two or more cuts
A Casafari client account first pulls this year's price-cut alerts for houses in Marbella. Replace <MARBELLA_LOCATION_ID> with the location id. Replace <PRICE_DECREASE_SUBTYPE> with the value listed on the Search alerts (v1) page.
{
"operation": "sale",
"location_ids": [<MARBELLA_LOCATION_ID>],
"types": ["house", "villa", "townhouse"],
"alert_subtypes": [<PRICE_DECREASE_SUBTYPE>],
"alert_date_from": "2026-01-01"
}Next, it calls GET /api/v1/properties/search/{property_id} for each property in the alerts. It keeps those whose sale_price_history shows two or more consecutive reductions.
For context, ask an assistant connected to Casafari's MCP servers: "How many price cuts were there on houses for sale in Marbella each month this year? Among comparable houses within 2 km of Avenida Ricardo Soriano, Marbella, which have cut their price?" It calls:
locations_searchwith Marbella.area-insights_get_time_series_datawithtype_grouphouse,data_pointprice_downanddate_intervalmonth.comparables_get_comparableswith the address,distance2,operationsale,comparables_types["house", "villa", "townhouse"],comparables_count20 andsold_or_rented_afternull.
How to read the result
sale_price_last_change: change_date, old_value, new_value
sale_price_last_change gives the date of the last price change (change_date) and the price before and after it (old_value, new_value). If new_value is lower, the last change was a cut. last_sale_price_reduction gives the size of that cut in percent, and total_sale_price_change gives the total change in percent.
Several cuts plus long days on market: a negotiable seller
A property with two or more consecutive cuts that has also stayed on the market a long time points to a seller ready to negotiate. It is a signal, not proof. Check it against the area's price_down trend and against fair_market_price from estimated_prices before you make an offer or pitch a new strategy.
Limits
No search filter for the number of cuts: count them from the history
No operation in the sources filters by the number of price cuts. You count them yourself from sale_price_history or rent_price_history.
/alerts-api/* feeds are self-serve on the Casafari API and MCP Platform. The property search and fetch, POST /api/v2/properties/search and GET /api/v1/properties/search/{property_id}, are available to Casafari clients over REST with their Casafari account. New users have Property Sourcing on the self-serve platform, a different API without these date filters, and High Potential Seller Leads (GET /v1/seller-leads), which lists homes whose asking price was cut repeatedly around a point, in Spain, France, Italy, Germany, Greece and Andorra. POST /api/v1/listing-alerts/search is for Casafari client accounts. area-insights_get_time_series_data and comparables_get_comparables are self-serve over MCP, and comparables over REST too.
The alert_subtypes values
alert_subtypes in a feed's filters accepts new, price_increased, price_decreased, reserved, delisted and sold. A feed has no key for the number of consecutive cuts either, so every price_decreased alert is one cut and you count repeats yourself.
The history shows what the price did, not why. No refresh frequency, quotas or prices are published; ask Casafari.
Ask in Claude or ChatGPT
Property Sourcing has an MCP server, https://platform.casafari.com/mcp/property-sourcing, so an assistant can run this from a chat. In Claude or ChatGPT, add a custom connector with that URL; in Claude Code: claude mcp add --transport http casafari-property-sourcing https://platform.casafari.com/mcp/property-sourcing. Sign in with your Casafari Platform account in the browser (a new account starts on the Free plan). Then ask, for example:
Flats in Madrid under €650K, 2+ bedrooms: show each with every agency advertising it and its price history.
The assistant finds the place with locations_search (free), searches with property-sourcing_search (50 tokens a page, property-sourcing_next_page for more), reads each home with property-sourcing_get_property (10 tokens: every agency and portal advertising it and its asking price history) and turns a pasted portal or agency link into its home with property-sourcing_resolve_listing (25 tokens). Prices are asking prices. See Property Sourcing.
Questions
Can I get price-cut alerts over MCP?
No. Price-cut alerts belong to New Market Leads, which is offered over the REST API only. Over Casafari's MCP servers, two tools help. area-insights_get_time_series_data with data_point price_down counts price decreases in an area over time. comparables_get_comparables returns total_sale_price_change, last_sale_price_reduction and sale_price_last_change for properties around a point. Both are self-serve.
Does a price cut alert fire once per property or once per advertisement?
Alerts follow the property graph, where every advertisement of a property is merged into one record with its full history. A price change is therefore reported for the property, not once for each agency or portal advertising it. This is why Casafari counts properties, not advertisements, and why a lead list built from alerts does not repeat the same home.
Can I see rent price cuts too?
Yes. The graph keeps rent_price_history alongside sale_price_history. With operation rent, comparables_get_comparables returns total_rent_price_change, last_rent_price_reduction and rent_price_last_change. area-insights_get_time_series_data with business_type rent and data_point price_down gives the area trend. POST /api/v1/listing-alerts/search also takes an operation field for rent alerts.
How do I combine price cuts with below-market pricing?
Run comparables_get_comparables around the property and compare its asking price with fair_market_price in estimated_prices. Set exclude_outliers to false so underpriced properties stay in the results, then read is_outlier. A property with repeated cuts that now sits below the fair market price is both a motivated seller and a possible bargain. area-insights_get_price_distribution adds the area's price bands.