Find leads · Use case
How do I track what competing agencies are selling, reserving and removing in my area?
Casafari's property graph links each property to the agencies and agents advertising it. Over the REST API, get exact names from GET /api/v1/references/agencies and count a competitor's stock with POST /api/v2/properties/search and with_agencies. Then follow its reservations, removals and sales with New Market Leads alerts filtered by agency.
Products: References, Property Sourcing, New Market Leads, Comparables & Valuation, AgentGraph AI
Short answer
The property graph links each property to the agencies and agents that advertise it, with one record per property. That lets you do three things for each competitor:
- count its active stock in an area
- see how much of that stock it holds exclusively
- follow every reservation, removal from the market and sale on its properties through New Market Leads alerts
Steps
Find exact names with GET /api/v1/references/agencies, GET /api/v1/references/agents and GET /api/v1/references/sources
- Look up each competitor's name as Casafari stores it:
- agencies with
GET /api/v1/references/agencies - agents with
GET /api/v1/references/agents - portals and other sources with
GET /api/v1/references/sources
- agencies with
with_agencies and without_agencies take these agency, company or source names, and listing_agents takes the agent names. Query parameters are on each operation page.
Count stock: POST /api/v2/properties/search with location_ids and with_agencies, listing_agents, exclusive
- For each competitor, call
POST /api/v2/properties/searchwithlocation_idsfor your area. Setwith_agenciesto the agency's name, orlisting_agentsfor one agent. - Run the same search with
exclusive: true. That returns the properties available on the market exclusively from a single agency.
Follow changes: POST /api/v1/listing-alerts/search with with_agencies for reservations, removals from the market and sales
- Call
POST /api/v1/listing-alerts/searchwithlocation_ids,with_agencies,alert_date_fromandalert_date_to. - Set
alert_subtypesto the reservation, removal and sale events. The exact values are on the Search alerts (v1) page. - Use
statusesto filter by current status, for example reserved or sold.
Automate: a feed on POST /alerts-api/feeds
- Set a webhook with
PUT /alerts-api/webhooks, then create a feed withfeed_nameandfilters(business_typerequired); a feed created before any webhook answers409withNo webhook configured.filtershas no key for an agency name. Its only agency condition ishas_agency_name, true or false. A feed therefore cannot follow one competitor. See the Create feed page.
Example: agencies active in Estoril
- Get the Estoril location id with
POST /api/v1/references/locations(name"Estoril") orPOST /api/v1/references/locations/typeahead(country_codes["PT"],name"Estoril"). - Pick the agencies to compare from
GET /api/v1/references/agencies. - For each agency, send this to
POST /api/v2/properties/search, then send it again with"exclusive": true:
{
"search_operations": ["sale"],
"location_ids": [<ESTORIL_LOCATION_ID>],
"with_agencies": ["<AGENCY_NAME>"]
}The accepted values for search_operations are on the Search properties (v2) page.
- For the period you want to review, send
POST /api/v1/listing-alerts/searchwith the samelocation_idsandwith_agencies, plusalert_date_fromandalert_date_to.
Build a league table with one row per agency and these columns: active properties for sale, of which exclusive, reservations, removals from the market and sales in the period. The figures come from your own responses; this page shows no sample numbers.
An assistant on the Casafari MCP server cannot answer "List the agencies active in Estoril and how many properties each has". References, Property Sourcing and alerts are REST only.
In Germany, AgentGraph AI answers this kind of question over MCP:
agentgraph_area_benchmarkshows how the market splits between independents, franchises, banks and online brokerages, and names the biggest networks.agentgraph_screen_agenciesranks the agencies active in an area.
How to read the result
Shared versus exclusive properties
Each property is one record, so a home advertised by several agencies appears once in each of those agencies' results. Subtract the exclusive count from the total to get the properties a competitor shares with others.
A high exclusive share means mandates held alone. Shared stock is contested, and a removal or sale on it may have gone to another agency.
sale_active_listings_count on a property shows how many agencies advertise it
sale_active_listings_count is the number of active advertisements a property has on the sales market. It is a field of the comps_get-comparables output, which is available over MCP around a point. The same output includes average_listings_per_property in its statistics.
A count above one means several agencies or portals advertise the same home. Whether POST /api/v2/properties/search returns this field is shown on its operation page.
Limits
Agency names must match the References list
with_agencies, without_agencies and listing_agents accept the names returned by the References operations. Spelling a name your own way will not match. The graph sees only what is advertised, so mandates that are never advertised do not appear.
Not available over MCP outside Germany's AgentGraph AI
References and Property Sourcing operations, and POST /api/v1/listing-alerts/search, are for Casafari client accounts. /alerts-api/feeds is for Casafari client accounts too.
For agency screening in Germany, AgentGraph AI is available over MCP to Casafari clients with MCP access; its tools' descriptions name Germany as their market. For the property search, /alerts-api/feeds and AgentGraph AI, self-serve access for new users is coming soon. No refresh frequency, quotas or prices are published; ask Casafari.
Questions
Can I see which agent has a property?
Yes, where an agent is named. The graph links properties to agents. GET /api/v1/references/agents gives the names Casafari stores, and listing_agents on POST /api/v2/properties/search or POST /api/v1/listing-alerts/search returns properties or alerts for those agents. In Germany, agentgraph_screen_agents notes that only advertisements naming an agent count, and that agency websites name them more often than portals.
Can I get competitor activity as a webhook?
Not by agency name. A feed on POST /alerts-api/feeds, delivered through PUT /alerts-api/webhooks, sends alerts for its filters, but filters only has has_agency_name, no agency names. Casafari client accounts can filter alerts by agency on demand with with_agencies on POST /api/v1/listing-alerts/search.
Can I exclude my own agency from results?
Yes. without_agencies excludes the agencies, companies or sources you name. It works on POST /api/v2/properties/search, POST /api/v1/listing-alerts/search and comps_get-comparables, using names from GET /api/v1/references/agencies. In Germany, AgentGraph AI's screens take client_brand, which keeps your own network's offices and agents out of competitor-franchise matches, and an exclude_brands filter.
Is there an equivalent for Germany over MCP?
Yes. AgentGraph AI is offered over the Casafari MCP server and covers Germany. agentgraph_screen_agencies and agentgraph_screen_agents rank agencies and agents in an area. agentgraph_territory_map shows network shares by district. agentgraph_area_benchmark describes the market split. A watchlist, re-measured every day, reports changes through agentgraph_watchlist_changes.