Otodom Scraper: Poland Property Listings & Price Monitor
Pricing
from $0.96 / 1,000 results
Otodom Scraper: Poland Property Listings & Price Monitor
Scrape Otodom.pl property listings in Poland. Returns price, area, rooms, location, advertiser and URLs from any search. Monitor mode tracks new and price-changed listings.
Pricing
from $0.96 / 1,000 results
Rating
0.0
(0)
Developer
Redomic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Features
Share
Otodom Scraper: Polish Property Listings and Price Monitor
Export flats, houses and plots for sale or rent from Otodom.pl, Poland's biggest property portal, to a spreadsheet or an API. Each row gives you the price in PLN, price per m², area, rooms, floor, build year, city and district, the market (new or resale), the agency or private owner, and the photos. Run it on a schedule and you get only the new listings and price changes since the last run.
Who uses it
- Investors and agents pricing flats by district, size and build year.
- Developers watching what new-build competitors ask per m².
- Analysts and proptech products that need fresh Polish listing data every day.
What you get
Flats for sale across Poland, from the default input on 15 November 2026:
| Listing | Price (PLN) | PLN per m² | Area (m²) | Rooms | Built | City | District | Market |
|---|---|---|---|---|---|---|---|---|
| 2 pokoje, 41,4 m², Muranów, ul. Niska | 775,000 | 18,720 | 41.4 | 2 | 1956 | Warszawa | Wola | resale |
| Wygodne 2 pokoje z ogródkiem | 754,560 | 19,200 | 39.3 | 2 | 2026 | Warszawa | Włochy | new |
| Komfortowe mieszkanie 2-pokojowe | 580,000 | 15,960 | 36.34 | 2 | 2020 | Gdańsk | Orunia Górna | resale |
| Apartament premium w kamienicy z windą | 1,069,000 | 18,630 | 57.38 | 2 | 2024 | Wrocław | Stare Miasto | resale |
| 4 niezależne pokoje, Stare Miasto | 1,231,000 | 21,982 | 56 | 4 | 1968 | Kraków | Stare Miasto | resale |
Each row also carries the floor and the building's total floors, monthly charges (czynsz), heating, building type and material, ownership type, elevator, energy certificate, available-from date, the street, GPS coordinates, the agency name, the listing and update dates, the description and the photos.
Two modes
| Mode | What you get | Good for |
|---|---|---|
search (default) | Every listing that matches your filters | Price surveys, exports |
monitor | Only listings that are new, changed price or disappeared since the last run | Alerts, tracking a district or an agency |
Set agencyPortfolio: true to get one row per agency or developer instead: how many listings they have, their median price per m², and the listing links.
Price
$1.20 per 1,000 listings. There's no start fee. In monitor mode you pay only for new and changed listings, so a quiet day costs nothing. 100 listings cost $0.12.
How to run it
Two- and three-room flats for sale in Warsaw's Mokotów and Wola, under 900,000 PLN:
{"location": "mazowieckie/warszawa/warszawa","districts": ["mokotow", "wola"],"dealType": "sale","propertyType": "flat","roomsMin": 2,"roomsMax": 3,"priceMax": 900000,"maxItems": 200}
You can also paste any search URL from otodom.pl into startUrls and keep the filters you set on the site.
Flats within 3 km of a point, for a hyperlocal alert:
{"location": "mazowieckie/warszawa/warszawa","lat": 52.2297,"lng": 21.0122,"radiusKm": 3,"maxItems": 200}
For a daily alert, save a search as a task with "mode": "monitor" and schedule it. The first run records what's listed today. After that you get only new listings, changed prices and removed ads. Add droppedOnly: true to get price drops only.
Input
| Field | Default | What it does |
|---|---|---|
startUrls | all flats for sale in Poland | Otodom search URLs. |
location | cala-polska | The location part of an Otodom URL, for example malopolskie/krakow/krakow. |
districts | none | District names or slugs within the location. |
dealType | sale | sale or rent. |
propertyType | flat | flat, house, room, plot, commercial, garage or hall. |
market | both | PRIMARY (new build) or SECONDARY (resale). |
advertiserType | all | private, agency or developer. |
priceMin, priceMax | none | Total price in PLN. |
pricePerM2Min, pricePerM2Max | none | Price per m² in PLN. |
areaMin, areaMax | none | Area in m². |
roomsMin, roomsMax | none | Number of rooms. |
floorMin, floorMax | none | Floor number (-1 cellar/basement, 0 ground floor). Non-numeric floors are excluded. |
buildYearMin, buildYearMax | none | Construction year. Listings without a known build year are excluded when set. |
postedWithinDays | none | Listings posted or updated in the last 1, 3, 7, 14 or 30 days. |
sortBy | Otodom's order | newest, oldest, price_asc, price_desc, area_asc or area_desc. Decides which listings you get when you cap maxItems. |
lat, lng, radiusKm | none | Keep listings within this distance of a point. Each row gets distanceKm. |
fetchDetails | true | Open each listing for GPS, build year, floors, monthly charges and building details. Turn it off for faster, lighter rows. |
includeNoPrice | false | Also return listings without a price. |
mode | search | search or monitor. |
droppedOnly | false | In monitor mode, return only price drops. |
agencyPortfolio | false | One row per agency or developer. |
maxItems | 24 | The most listings to return. |
Output fields
id, url, title, dealType, propertyType, market, priceAmount, priceCurrency, pricePerM2, areaM2, rooms, floor, totalFloors, buildYear, monthlyCharges, heating, buildingType, buildingMaterial, windowsType, ownership, constructionStatus, elevator, energyCertificate, availableFrom, features, region, city, district, street, lat, lng, advertiserType, agencyName, createdAt, modifiedAt, description, photos, imagesCount, scrapedAt.
Monitor rows add changeType, the previous price and the price difference.
FAQ
Do I get phone numbers or email addresses? No. The Actor never collects contact details, and it removes phone numbers and emails from descriptions.
Why are some fields empty?
GPS, build year, floors, monthly charges, elevator, energy certificate and available-from date come from each listing's own page, and only when the advertiser fills them in. Set fetchDetails: false if you only need the search-card fields.
Why don't I see new-build project pages? Otodom mixes development project cards into its results. They aren't individual listings, so the Actor leaves them out.
Is there an Otodom API? Not a public one for listings. This Actor reads Otodom's public pages without logging in.
Something looks wrong in my results. Open an issue on the Issues tab with your input and we'll look at it.
Po polsku
Eksportuj ogłoszenia z Otodom.pl do arkusza: cena, cena za m², metraż, pokoje, piętro, rok budowy, miasto, dzielnica, rynek pierwotny lub wtórny i ogłoszeniodawca. W trybie monitor dostajesz tylko nowe ogłoszenia, zmiany cen i usunięte oferty od ostatniego uruchomienia.
Use it from AI agents (MCP) and Python
AI agents. Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client through the Apify MCP server. The agent reads the input schema, so a plain request is enough.
{"mcpServers": {"otodom-scraper": {"url": "https://mcp.apify.com?tools=redomic/otodom-scraper","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Python. pip install apify-client, then:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("redomic/otodom-scraper").call(run_input={"location": "cala-polska", "dealType": "sale", "propertyType": "flat"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
More from us
- Allabolag Scraper - Swedish Company Data: Scrape allabolag.se for Swedish company financials, industry, status and board role titles by search, org number or URL
- Ashby Jobs Scraper with Salaries: Ashby jobs scraper for any startup careers board (OpenAI, Ramp, Notion and thousands more), with salary ranges as numbers: min, max, currency, period, plus equity and bonus flags
- ATS Jobs Search: Greenhouse, Lever & Ashby Jobs API: Search 300,000+ open jobs from 11,000+ companies on Greenhouse, Lever and Ashby in one run
- Blocket Scraper: Car Monitor: Blocket scraper: each run returns up to 2,500 Blocket Bil and Torget listings as flat rows with price, make, model, year, mileage, VIN, inspections and seller
- Closed Jobs Tracker: Filled Roles & Time-to-Fill: Search closed jobs from 11,000+ companies with closedOn, daysOpen and time-to-fill signals
- Google Jobs Scraper - Job Postings API: Google Jobs and job postings scraper: get job title, company, location, posted date, salary, full description and every apply link for any search
- Google Trends API: Trending Now & Interest Over Time: Trending-now searches and new-trends alerts/monitoring per country with the news behind them, plus interest over time, interest by region, and related and rising queries for any keyword
- GovDeals Scraper: Search and monitor GovDeals government surplus auctions
- Greenhouse Jobs Monitor & Scraper: Monitor Greenhouse jobs from any company careers board (Airbnb, Stripe, Discord and thousands more)
- Job Postings Dataset: 320k+ Open Jobs, Updated Daily: 320,000+ open jobs from 10,000+ company career sites (Greenhouse, Lever, Ashby), updated daily with first-seen and closed dates
- Lever Jobs Scraper with Salaries: Lever jobs scraper for any company's careers page (Palantir, Spotify, Zoox, Shield AI and thousands more): flat rows with title, team, location, workplace, commitment, apply link, salary as numbers and the full description merged
- Marktplaats.nl Scraper: Scrape Marktplaats.nl listings into clean rows: title, price in EUR, condition, seller, location, images
- Otomoto.pl Scraper: Scrape Otomoto.pl Polish car listings: one run returns used-car rows with price, make, model, year, mileage, fuel, gearbox, seller and URL
- Personio Jobs Scraper: Scrape open jobs from Personio company career pages (jobs.personio.de/.com XML feeds)
- Salary Data API: Pay Ranges by Job Title & Level: Get salary benchmarks (p10-p90, annualised, with n) and pay ranges from 150,000+ employer-posted jobs across 11,000+ companies, updated daily
- SIRET Company Scraper: Search French companies by name, SIREN or SIRET
- SUUMO Scraper - Japan Property Listings: Scrape SUUMO Japan property listings from search URLs for rentals and sales
- Talabat Scraper — Menus, Prices & Delivery Fees: Talabat menus, prices and delivery fees as flat rows in 8 MENA markets
- Workday Jobs Scraper: Search and monitor public Workday (myworkdayjobs.com) job postings