Otodom
Otodom is Poland’s largest property portal, read through the JSON data routes its own pages load — typically in under a second. Search flats, studios, houses, rooms, plots, premises, garages or developers’ projects, for sale or rent, by place, price, area, rooms, owner and market. Each listing carries its price and the monthly czynsz on top, price per m², floor and seller, and the result names the place it searched. Open any listing for building facts, heating, condition, energy certificate, coordinates, description and photos — never phone numbers.
Thirty seconds, any client.
claude mcp add --transport http otodom https://mcp.wondel.ai/otodom/mcp One command in your terminal — the server is available in every Claude Code session.
https://mcp.wondel.ai/otodom/mcp Works on every Claude plan that supports custom connectors.
{
"mcpServers": {
"otodom": {
"url": "https://mcp.wondel.ai/otodom/mcp"
}
}
} Add to .cursor/mcp.json, VS Code's mcp.json, or any client that takes an mcpServers map.
npx mcp-remote https://mcp.wondel.ai/otodom/mcp For stdio-only clients: mcp-remote bridges the remote endpoint to a local process. Streamable HTTP-capable clients can hit the URL directly.
This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.
2 tools, fully typed.
Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.
otodom_search One results page (24 by default, up to 72) of flats, studios, houses, rooms, plots, premises, warehouses, garages or developers’ projects for sale or rent: price, czynsz, price per m², area, rooms, floor, place, seller and link. An empty match returns count 0 with a note.
| Param | Type | Description |
|---|---|---|
| transaction * | enum | sale = na sprzedaż (buying); rent = na wynajem (renting — prices are monthly). salerent |
| type * | enum | Property type: flat = mieszkanie, studio = kawalerka, house = dom, room = pokój (rent only), plot = działka (land), commercial = lokal użytkowy, warehouse = hala/magazyn, garage = garaż/miejsce parkingowe, new_development = a developer’s project (sale only). flatstudiohouseroomplotcommercialwarehousegaragenew_development |
| location | string | In Polish spelling, as the site writes it: a city ("Warszawa"), a "city district" ("Warszawa Mokotów"), a town or village ("Zakopane") or a voivodeship ("mazowieckie"). English names aren’t recognized. Also takes an Otodom location id from a previous result, e.g. "mazowieckie/warszawa/warszawa/warszawa/mokotow". Omit for all of Poland. |
| price_min | number | Minimum total price in PLN (monthly rent when transaction is rent). |
| price_max | number | Maximum total price in PLN (monthly rent when transaction is rent). |
| area_min | number | Minimum area in m² (the plot’s area for type plot). |
| area_max | number | Maximum area in m² (the plot’s area for type plot). |
| rooms_min | integer | Minimum rooms, 1–20 — flats and houses only. |
| rooms_max | integer | Maximum rooms, 1–20 — flats and houses only (min = max for exactly N). Otodom’s filter stops at “6 or more”, so any bound of 6+ means 6 or more. |
| owner_type | enum = all | private = private owners only (bez pośredników); agency = agencies and developers only — sales only, as Otodom has no agency-only filter for rentals. allprivateagency |
| market | enum | Sales only: primary = new build from a developer (rynek pierwotny), secondary = resale (rynek wtórny). Omit for both. primarysecondary |
| sort | enum = relevance | Result order. relevance is Otodom’s default, with promoted listings first. relevancenewestoldestprice_ascprice_descarea_ascarea_desc |
| page | integer = 1 | Results page, 1-based. |
| limit | integer = 24 | Listings per page, 1–72 — rounded up to a size Otodom serves (24, 36, 48 or 72). |
| no_cache | boolean = false | Force a fresh fetch, bypassing this server’s 5-minute result cache. |
otodom_offer One listing or developer project in full: price, czynsz and deposit, price per m², area, rooms, floor, year built, building, heating, ownership, condition, energy certificate, availability, address with coordinates, seller, features, description and photos. Never phone numbers.
| Param | Type | Description |
|---|---|---|
| offer * | string | The listing’s slug from otodom_search (ends in -ID<code>, e.g. "mieszkanie-4-pokojowe-w-mokotowie-z-balkonem-ID4sFig") or its otodom.pl URL (/pl/oferta/… or /pl/inwestycja/…). |
| no_cache | boolean = false | Force a fresh fetch, bypassing this server’s 5-minute result cache. |
Prompts that just work.
Three-room flats for sale in Kraków Podgórze under 900,000 zł from private owners, newest first.
otodom_searchFlats to rent in Gdańsk Wrzeszcz under 4,000 zł — which are cheapest once czynsz is added?
otodom_searchWhat heating, building year and energy certificate does this Otodom listing have?
otodom_offerWhat comes back
otodom_search · live response, captured 2026-09-24 from production, abridged
{
"source": "otodom.pl via direct",
"fetchedAt": "2026-09-24T00:49:41.948Z",
"query": { "transaction": "rent", "type": "flat", "location": "Warszawa Mokotów", "price_max": 5000, "rooms_min": 2, "rooms_max": 2, "sort": "newest", … },
"resolved_location": { "id": "mazowieckie/warszawa/warszawa/warszawa/mokotow", "name": "Mokotów", "full_name": "Mokotów, Warszawa, mazowieckie", "level": "district" },
"search_url": "https://www.otodom.pl/pl/wyniki/wynajem/mieszkanie,2-pokoje/mazowieckie/warszawa/warszawa/warszawa/mokotow?limit=24&priceMax=5000…",
"heading": "Mieszkania dwupokojowe na wynajem: Mokotów, Warszawa, mazowieckie",
"total_count": 627,
"page": 1,
"page_size": 24,
"total_pages": 27,
"count": 24,
"listings": [
{
"id": 68454816,
"slug": "mieszkanie-dla-podroznika-mokotow-wierzbno-ID4DedV",
"title": "Mieszkanie Dla Podróżnika | Mokotów Wierzbno",
"price": 4500,
"rent_extra": 1300,
"price_per_m2": 72.35,
"currency": "PLN",
"area_m2": 62.2,
"rooms": 2,
"floor": "3",
"location": "Wierzbno, Mokotów, Warszawa, mazowieckie",
"seller_type": "agency",
"features": ["parking_spot", "secure_building"],
…
},
…
]
}
Fetching tools share one envelope — source says where the data came from,
fetchedAt says when, query echoes what you asked.
For rentals, price is the monthly rent and rent_extra the czynsz paid on top.
Compact JSON in one text block, exactly how agents like it.
Add Otodom
to your agent.
mcp.wondel.ai/otodom/mcp Authless · Read-only public data · Streamable HTTP at /mcp