Stop scraping JS-walled, stale, duplicated portal pages. Query Placy's MCP rail for clean, deduplicated, licensed European property inventory — with a qualified-lead handoff back to the human.
3 of 88portals worldwide use a proper listing schema
1MCP integration — search, detail, lead handoff
Placy audit, 2026
mcp · placy rail · search_listings
> tools/call search_listings
{ "query": "2-bed near a metro, Lisbon",
"filters": { "max_price": 400000 } }
< 200 OK · result 1 of 12
{ "@type": "RealEstateListing",
"name": "Two-bed, Campo de Ourique",
"offers": { "price": 385000, "priceCurrency": "EUR" },
"floorSize": { "value": 74, "unitCode": "MTK" },
"status": "available",
"provenance": { "source": "licensed", "optIn": true } }
A sample call against the rail — schema.org listing, live status, provenance on the record.
For AI platforms
One rail. Every source.Real, live listings.
Stop scraping stale, JS-walled portal pages. Query one MCP rail for clean, deduplicated, licensed European inventory — with a qualified-lead handoff back to the human.
3 of 88portals worldwide use a proper listing schema
Placy audit, 2026
mcp · placy rail · search_listings
> tools/call search_listings
{ "query": "2-bed near a metro, Lisbon",
"filters": { "max_price": 400000 } }
< 200 OK · result 1 of 12
{ "@type": "RealEstateListing",
"name": "Two-bed, Campo de Ourique",
"offers": { "price": 385000 },
"floorSize": { "value": 74 },
"status": "available",
"provenance": { "optIn": true } }
A sample call against the rail — schema.org listing, live status, provenance on the record.
For AI platforms
One rail. Every source.Real, live listings.
Clean, deduplicated, licensed European property inventory — one MCP rail with search, listing detail, and a qualified-lead handoff back to the human. No scraping, no stale pages.
Because "read the live page" breaks exactly where European property lives. Listings are JavaScript-walled, duplicated across agencies and portals, stale within days, and render-gap-blind to any non-rendering agent. And roughly half of the portals we audited are live-blocked by a WAF — regardless of what their robots.txt says.
blocked
js-walled
blocked
readable
js-walled
blocked
js-walled
blocked
js-walled
blocked
readable
js-walled
blocked
js-walled
blocked
js-walled
blocked
js-walled
readable
blocked
js-walled
blocked
js-walled
blocked
js-walled
blocked
readable
js-walled
blocked
js-walled
A grid of 30 audited European portals: 87% shown as struck-through grey blocks (invisible or blocked to a non-rendering agent), the small remainder as readable black-bordered blocks.
87%1of audited EU portals invisible or blocked to a non-rendering agent
3 of 881portals worldwide use the proper RealEstateListing schema
Structured, licensed, and live beats scraped, stale, and unauthorized.
The pattern already has a price tag in retail: catalog-powered AI search converts roughly 2×2 better than AI working off scraped pages.
¹ Audited by Placy, 2026.² Shopify Q1 FY2026 earnings. AI is still <1% of retail traffic, so the 2x rides a small base. The direction — structured beats scraped — is what's proven.
The rail's surface
02
What you get
MCP tools
Call the rail in-conversation
An MCP server + registry your agents call directly: search_listings, listing detail, and a qualified-lead handoff. Structured answers, not HTML to parse. One integration lights up every market on the rail — no separate deal per portal.
Live status
A status state-machine, not a stock count
available
under_offer
sold_stc
sold
price_reduced · withdrawn
Target ≤15-min status cadence — price and status changes push as first-class incremental events.
Canonical listings
One property, one ID
The same flat is often posted by five agencies across five portals. The rail resolves those into one canonical property ID — deduplicated, enriched, with each agency exposed as an offer and provenance on every record.
Verified-agent identity
Web Bot Auth at the door
Verified-agent identity via Web Bot Auth admits good agents and blocks scrapers. You authenticate once as who you are; the rail stays clean for everyone querying it.
What's deliberately not here
03
Scoped to discovery and lead handoff.
Property is a high-value, regulated, no-cart purchase — so there is deliberately no checkout on the rail. AI finds and filters. A human confirms. The rail surfaces the match, then routes the human to a qualified-lead action — book a viewing, request details — attributed back to the agency.
The rail ends at a human handshake: discovery happens in the assistant, the viewing happens in person.
Clean human hand-off; no transaction liability on your surface.
44%3would pay extra for a human to verify an AI housing decision
³ Cotality 2026, four-country survey including the UK — the leading indicator, not a Europe figure.
Placy exposes an MCP server + registry your agents call in-conversation — search, listing detail, and a qualified-lead handoff. One integration lights up all coverage; you don't negotiate a separate deal per portal.
Why not read the live pages ourselves?
Because European listings are JavaScript-walled, duplicated, stale, and roughly half of portals are live-blocked by a WAF. "Read the live page" breaks exactly there. Placy gives you clean, deduplicated, live, licensed data instead — with a canonical ID per property. The audit numbers are up-page.
How fresh is the data?
Status and price changes push as first-class incremental events, at a target ≤15-min cadence, through a real-estate status state-machine — available, under offer, sold subject to contract, sold. Stale data is the thing the rail is built to eliminate.
How do you keep out scrapers while letting us in?
Verified-agent identity via Web Bot Auth — the emerging open standard — admits good agents and blocks the rest.
Integrate Placy.One integration. Every source. Live, licensed, deduplicated.