# Shared-mandate and competitor mapping for an office

> **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 Brokerage and agency network operators.** Search an office's area with Casafari, use listings_count and expand=listings to map exclusive versus shared mandates and which agencies hold them.

> How do I see which homes in my office's area are advertised by several agencies or by competitors?

## Why do offices track competitors in spreadsheets?

Each office keeps its own list of competitors' properties, copied from portals and agency websites, and nobody knows which homes are advertised by one agency alone and which are shared, reduced, reserved, withdrawn or sold. A network with many agents needs one view per area.

## How does it work step by step?

1. **Define the area.** `GET /v1/locations/search` gives the office's `location_ids` (up to 100 per search).
2. **Pull supply.** `POST /v1/property-sourcing/searches` with those ids, `operation` and `sort: "recently_updated"`; page with `GET /v1/property-sourcing/searches/{cursor}`.
3. **Classify.** `listings_count` on each result says how many places advertise the home: 1 means a single place, higher values point to a shared mandate or the same home advertised more than once.
4. **Identify agencies.** For properties worth a closer look, `GET /v1/property-sourcing/properties/{property_id}?expand=listings` names the agency, URL, price and status for each place it is advertised; `expand=history` adds the dated price and status changes.
5. **Refresh.** Re-run on a schedule and compare `prop_…` ids and statuses, or use [Alerts](https://developers.casafari.com/docs/alerts) for feeds of new properties, price changes, reservations, withdrawals and sales.

```bash
curl -X POST https://platform.casafari.com/v1/property-sourcing/searches \
  -H "Authorization: Bearer $CASAFARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location_ids": [12345], "operation": "sale", "sort": "recently_updated", "page_size": 100}'
```

## What do you get?

A deduplicated table of the properties for sale (or for rent) in the area with their agencies, the price at each, status and time on market, built from one record per home rather than one row per advertisement. Combined with [High Potential Seller Leads](https://developers.casafari.com/docs/seller-leads) in Spain, France, Italy, Germany, Greece and Andorra, it also shows which of those homes keep cutting price.

## What are the limits?

Authenticate with a platform API key from the console (see [Platform API keys](https://developers.casafari.com/docs/rest#platform-api-keys)). Guards on pay as you go and Agent are 50 distinct places a day, 20 requests a minute and 3 concurrent requests; on Free, 10 places, 10 requests a minute and 2 concurrent. A search reaches 1,000 results, so split large territories by location id. The agencies shown are those advertising the home, not a register of mandates. Reference: [Get a property](https://developers.casafari.com/docs/rest/property-sourcing/get-a-property).

## Related use cases

- [Deduplicated buyer shortlist from a plain-language brief](https://developers.casafari.com/docs/property-sourcing/use-cases/deduplicated-buyer-shortlist-from-a-brief)
- [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)
- [New-supply digest for a farm area](https://developers.casafari.com/docs/property-sourcing/use-cases/new-supply-digest-for-a-farm-area)
- [Property Sourcing FAQ](https://developers.casafari.com/docs/property-sourcing/faq)
