Search Otodom real-estate listings (otodom.pl)
otodom_searchSearch property listings on otodom.pl, Poland's largest real-estate portal: flats, studios, houses, rooms, plots, commercial premises, warehouses, garages and developers' new projects, for sale or for rent. Filter by place (a city, 'city district', town, village or voivodeship, resolved by Otodom's own location search), price, area, rooms, private-owner vs agency listings and primary/secondary market; sort by newest, price or area. Returns one results page (24 by default) with each listing's price, czynsz, price per m², area, rooms, floor, place, seller type and link; pass a listing's slug to otodom_offer for full details. Fetched live from otodom.pl (typically 0.3–1 s via direct fetch; ~5–10 s when it falls back to an unblocker). Result shape: { source, fetchedAt, query, search_url, heading, resolved_location, other_locations?, total_count, page, page_size, total_pages, count, listings: [...], note?, warning? } — the list key is listings; total_count counts matches across all pages (use page for more). Each listing: { id, slug, url, title, kind, price, rent_extra, price_per_m2, currency, price_on_request, area_m2, plot_area_m2, rooms, floor, location, street, district, city, region, location_id, seller_type, agency_name, features, is_promoted, date_created, image, photos_count, description, development? }. Prices are numbers in PLN: for rentals price is the monthly rent, and rent_extra is the monthly administrative fee (czynsz) paid on top (stated on sales too); price is null with price_on_request true when the advertiser hides it. floor is 'ground', '1'…'10', '10+', 'basement' or 'attic'. kind is 'new_development' for a developer's project (its units' ranges in development), else 'listing'; seller_type is private | agency | developer. resolved_location says which place was searched — check it; other_locations lists other matches for the name (pass one's id as location). An empty match answers count: 0 with a note saying why and what to change — that is a successful result, not an error.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Results page, 1-based. Default 1. | |
| sort | No | Order: 'relevance' (Otodom's default, promoted listings first), 'newest', 'oldest', 'price_asc', 'price_desc', 'area_asc', 'area_desc'. | |
| type | Yes | Property type: 'flat' = mieszkanie, 'studio' = kawalerka (one-room flat), 'house' = dom, 'room' = pokój (rent only), 'plot' = działka (land), 'commercial' = lokal użytkowy (office, shop, premises), 'warehouse' = hala/magazyn, 'garage' = garaż/miejsce parkingowe, 'new_development' = a developer's project (inwestycja; sale only). | |
| limit | No | Listings per page; rounded up to a size Otodom serves (24, 36, 48 or 72). Default 24. | |
| market | No | Sales only: 'primary' = new-build from a developer (rynek pierwotny), 'secondary' = resale (rynek wtórny). Omit for both. | |
| area_max | No | Maximum area in m² (the plot's area for type 'plot'). | |
| area_min | No | Minimum area in m² (the plot's area for type 'plot'). | |
| location | No | Where, in Polish spelling as the site uses it: a city ('Warszawa', 'Kraków'), 'city district' ('Warszawa Mokotów', 'Gdańsk Wrzeszcz'), a town or village ('Zakopane'), or a voivodeship ('mazowieckie'). English names ('Warsaw') are not recognised. Also accepts an Otodom location id (slug path) from a previous result's `location_id`/`resolved_location.id`, e.g. 'mazowieckie/warszawa/warszawa/warszawa/mokotow'. Omit to search all of Poland. | |
| no_cache | No | Force a fresh fetch and bypass this server's result cache (5 min). Default false. | |
| price_max | No | Maximum price in PLN (the monthly rent when transaction is 'rent'). | |
| price_min | No | Minimum price in PLN (the monthly rent when transaction is 'rent'). | |
| rooms_max | No | Maximum number of rooms — types 'flat' and 'house' only (min = max for exactly N). Otodom's filter stops at '6 or more', so any bound of 6+ means 6 or more. | |
| rooms_min | No | Minimum number of rooms — types 'flat' and 'house' only. | |
| owner_type | No | 'private' = only listings posted by private owners (bez pośredników), 'agency' = only agencies and developers (sales only — Otodom has no agency-only filter for rentals), 'all' (default). | |
| transaction | Yes | 'sale' = na sprzedaż (buying), 'rent' = na wynajem (renting; prices are monthly). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| page | Yes | ||
| count | Yes | ||
| query | Yes | ||
| source | Yes | ||
| heading | No | ||
| warning | No | ||
| listings | Yes | ||
| fetchedAt | Yes | ||
| page_size | No | ||
| search_url | Yes | ||
| total_count | No | ||
| total_pages | No | ||
| other_locations | No | ||
| resolved_location | No |