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

Property Sourcing · Use cases

Deduplicated buyer shortlist from a plain-language brief

For Buyer's agents and relocation advisers. Turn a client's brief into one deduplicated property record per home with Casafari's describe search, matched tags and price per sqm.

How do I turn a client's brief into a shortlist of matching properties without duplicates?

Why does a client's brief take hours to run?

A brief arrives as words: "top floor, terrace, lift, near the beach, under 600k". Checkbox filters rarely fit those words, and the same home shows up once per agency advertising it, so the shortlist fills with duplicates and you cannot tell a fresh property from one that has been reduced three times. Relocation demand adds volume: foreign buyers accounted for 14.1% of all home sales in Spain, against a 10.5% historical average for 2006-2024, according to CaixaBank Research.

How does it work step by step?

  1. Find the area. GET /v1/locations/search returns location ids for the town or neighbourhood; a search takes 1 to 100 location_ids.
  2. Send the brief. POST /v1/property-sourcing/searches/describe with the brief as description (split into phrases at commas, semicolons and "and") or as up to 20 tags, plus location_ids and an optional price or price_per_sqm range; see the reference.
  3. Rank. Each result has matched_tags, so you can order by how many phrases matched and show the client why a home is on the list.
  4. Page. Pass the cursor to GET /v1/property-sourcing/searches/{cursor} within one hour; nothing is stored.
  5. Deepen. For the final shortlist, GET /v1/property-sourcing/properties/{property_id}?expand=listings,history returns bathrooms, areas, construction year, energy rating, condition, description, every place the home is advertised with its price, and the dated price and status changes.
bash
curl -X POST https://platform.casafari.com/v1/property-sourcing/searches/describe \
  -H "Authorization: Bearer $CASAFARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location_ids": [12345], "description": "top floor, terrace, lift and near the beach", "page_size": 100}'

What do you get?

One record per property with id (prop_…), type, operation, price (amount, currency, per_sqm; a price of 0 is null and means on request), bedrooms, living_area_sqm, location (id, name, coordinates), first_seen, listings_count and matched_tags. When a client later sends a link, Resolve maps it to its property id, so you can see at once whether it is already on the shortlist. For time on market and earlier asking prices, see the FAQ on time on market.

What are the limits?

One search reaches at most 1,000 results (100 on Free) in pages of up to 100 (25 on Free). Each page costs 100 units and each property read 10 units, at EUR 0.04 a unit. Free accounts may query 10 distinct places a day; pay as you go and Agent, 50. No seller contact details are returned. Coverage and entitlement are described on the Property Sourcing hub.

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