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.
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?
- Find the area.
GET /v1/locations/searchreturns location ids for the town or neighbourhood; a search takes 1 to 100location_ids. - Send the brief.
POST /v1/property-sourcing/searches/describewith the brief asdescription(split into phrases at commas, semicolons and "and") or as up to 20tags, pluslocation_idsand an optionalpriceorprice_per_sqmrange; see the reference. - 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. - Page. Pass the cursor to
GET /v1/property-sourcing/searches/{cursor}within one hour; nothing is stored. - Deepen. For the final shortlist,
GET /v1/property-sourcing/properties/{property_id}?expand=listings,historyreturns bathrooms, areas, construction year, energy rating, condition, description, every place the home is advertised with its price, and the dated price and status changes.
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.