Casafari
The property graph
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.
Listings
One property record
Apartment · for sale · Ruzafa, Valencia
- Mar 2025On the market€459,000
- May 2025Price cut€449,000
- Jul 2025Delisted on one portal
- Sep 2025Price cut€420,000
- Oct 2025Reserved
Illustration with sample figures.
16 countries
One schema and one location tree in every market.
Residential and commercial
Apartments to villas, offices, retail, hotels, warehouses, plots, garages, buildings and new developments.
Sale and rent
Both operations on the same property record.
Full history
Every price change, status change, appearance and delisting, with dates.
More than listings
Listings are where Casafari starts, not what it delivers. A listing is one advertisement of a property on one source: an agency's own website or a portal. The same flat is usually advertised several times, by more than one agency and on more than one portal, at prices and with descriptions that do not always agree. Counting listings counts advertisements, not properties.
Casafari takes those listings, structures them, cleans them and deduplicates them, and merges every listing of a property into one record. The records, the listings behind them, the agencies and agents that advertise them, their places and their history form the property graph: the most complete property index in Europe.
How the graph is built
- 1Collect
Listings from agency websites and portals in 16 countries, as they appear and as they change.
- 2Structure
Every listing into one schema: type, operation, price, area, rooms, features, condition, energy rating and location.
- 3Clean
Values normalised, places resolved to the location tree and to coordinates, outliers flagged.
- 4Deduplicate
The same property, advertised by several agencies and portals, recognised as one.
- 5Merge into the graph
One record per property, linking its listings, agencies, agents, location and history.
The history of every property
Because every listing of a property lands on the same record, the record keeps what happened to it, across every source:
- Price changes, for sale and for rent: every change, with the old price, the new one and the dates.
- Status changes: active, reserved, on hold, sold, rented.
- Listing and delisting: when the property came on the market, on which sources, and when each listing was taken down.
- Time on the market: for each property, and as distributions for an area.
Alerts deliver the same history as it happens: new properties, price rises and cuts, reservations, delistings and sales, for any set of filters.
Every asset class, for sale and for rent
Residential and commercial property alike, in one taxonomy, with country-specific types mapped onto it:
- Residential: apartments, studios, duplexes, penthouses, houses, villas, townhouses, chalets, bungalows, country houses, country estates, palaces and rooms.
- Commercial: offices, retail, restaurants, hotels, industrial premises, warehouses, workshops and other commercial property.
- Buildings: apartment buildings, office buildings and mixed-use buildings.
- Land: urban and rural plots.
- Parking: garages and parking spaces.
- New developments: apartment and house developments.
Each record carries the operations it is offered for, sale and rent, so one property for sale and to let is still one property.
16 countries, one schema
The API covers Andorra, Austria, Belgium, France, Germany, Greece, Italy, Luxembourg, Monaco, Poland, Portugal, San Marino, Spain, Switzerland, the United Arab Emirates and the United States. Every market is structured the same way: the same property types, the same fields, and one location tree from country down to neighbourhood, with coordinates. A question asked about Lisbon, Madrid or Munich is answered in the same shape.
What it means for an agent
- Count properties, not advertisements. A property on three portals and two agency websites is one property, so totals, supply and averages are not inflated by duplicates.
- History comes with the record. Price cuts, time on the market and delistings are on the property; there is no need to stitch advertisements together.
- One shape everywhere. The same request works in every country the graph covers.
- Built on it: Properties, Comparables & Valuation, Area Insights, Alerts and AgentGraph AI.
Where it shows in the reference
The API's field and operation names keep the word listing, because that is what they hold: listing_id is the id of one advertisement, listings are the ones merged into a property. The tools' and operations' own descriptions are quoted as each team publishes them.
| In the API | What it is |
|---|---|
property_id | The property: one record in the graph. |
listings | The listings merged into the property, each with its source, agency, price and dates. |
primary_listing_id | The listing chosen to represent the property. |
sale_price_history, rent_price_history | Every price change, with the old price, the new one and the dates. |
sale_active_listings_count, rent_active_listings_count | How many live listings the property has right now, for sale and for rent. |
average_listings_per_property | In comparables statistics: how many listings, on average, each comparable property merges. |
POST /api/v1/properties/match-by-listings | Send listing ids, get back the property each one belongs to. |
Alert subtypes new, price_up, price_down, reserved, delisted, sold | The history as it happens, delivered to a feed or a webhook. |