# Deduplicated buyer shortlist from a plain-language brief

> **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. Every property is one record with its full price and market history. [How the property graph is built](/docs/property-graph).

**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](https://www.caixabankresearch.com/en/sectoral-analysis/real-estate/spains-housing-market-enters-new-expansionary-phase).

## 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](https://developers.casafari.com/docs/rest/property-sourcing/search-properties-by-description).
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](https://developers.casafari.com/docs/rest/property-sourcing/resolve-a-link-or-reference-to-its-property) 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](https://developers.casafari.com/docs/property-sourcing/faq#time-on-market-and-original-price).

## 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](https://developers.casafari.com/docs/property-sourcing).

## Related use cases

- [Price-per-sqm value screen across European markets](https://developers.casafari.com/docs/property-sourcing/use-cases/price-per-sqm-value-screen-across-markets)
- [Resolve client-forwarded links to one property record](https://developers.casafari.com/docs/property-sourcing/use-cases/resolve-client-forwarded-links)
- [Shared-mandate and competitor mapping for an office](https://developers.casafari.com/docs/property-sourcing/use-cases/shared-mandate-and-competitor-mapping)
- [New-supply digest for a farm area](https://developers.casafari.com/docs/property-sourcing/use-cases/new-supply-digest-for-a-farm-area)
- [How do I build property search into my application with the Casafari REST API?](https://developers.casafari.com/docs/use-cases/property-search-api-for-your-app)
- [Property Sourcing FAQ](https://developers.casafari.com/docs/property-sourcing/faq)
