Otodom Scraper — Polish Real Estate Listings & Property Prices
Pricing
Pay per usage
Otodom Scraper — Polish Real Estate Listings & Property Prices
Scrape property listings, prices, photos, and details from Otodom.pl — Poland's largest real estate portal. Supports sale and rental listings.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Studio Amba
Actor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Otodom Scraper
Scrape property listings from Otodom.pl — Poland's largest real estate portal — with prices, locations, photos, and full property details for apartments, houses, plots, and commercial properties.
What is Otodom Scraper?
Otodom Scraper extracts structured real estate data from Otodom.pl, Poland's #1 property platform with over 200,000 active listings. Otodom is part of the OLX Group (Prosus/Naspers) and dominates the Polish real estate market for both sale and rental properties.
- Monitor the Polish property market: track asking prices, listing volumes, and price-per-m2 trends across all 16 voivodeships and major cities (Warsaw, Krakow, Wroclaw, Gdansk, Poznan, Lodz, Katowice)
- Generate real estate leads: extract agency names, contact details, and listing volumes to identify active agents and agencies in any Polish city
- Build property datasets: collect comprehensive listing data including GPS coordinates, images, property specifications, and full descriptions for analysis or integration
- Compare sale and rental markets: run separate scrapes for sale vs. rent to analyze yield potential and market dynamics by location
- Track new developments: filter by primary market to monitor developer projects, pricing strategies, and inventory levels
The scraper uses Playwright (headless browser) to reliably handle Otodom's anti-bot protection and extracts structured data from the site's Next.js rendering pipeline.
What data does Otodom Scraper extract?
| Field | Type | Description |
|---|---|---|
title | String | Listing headline |
price | Number | Asking price in PLN |
currency | String | Currency code (PLN) |
listingType | String | sale or rent |
propertyType | String | apartment, house, room, plot, commercial, warehouse, garage |
address | String | Full address (street, district, city, province) |
city | String | City name |
postalCode | String | Polish postal code |
latitude | Number | GPS latitude |
longitude | Number | GPS longitude |
bedrooms | Number | Number of rooms |
bathrooms | Number | Number of bathrooms (detail pages) |
surface | Number | Living area in m2 |
landSurface | Number | Plot/terrain area in m2 |
buildYear | Number | Year of construction |
imageUrl | String | Primary listing photo URL |
imageUrls | Array | All listing photo URLs |
description | String | Full listing description text |
agencyName | String | Listing agency or seller name |
agencyUrl | String | Agency profile URL on Otodom |
url | String | Direct link to the listing |
scrapedAt | String | ISO timestamp of when the data was collected |
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | Array | No | Specific Otodom search or listing URLs to scrape |
searchQuery | String | No | Free-text search (e.g. 'balkon parking') |
location | String | No | City/region path (e.g. 'mazowieckie/warszawa'). Empty = all Poland |
listingType | String | No | sale (default) or rent |
propertyType | String | No | apartment (default), house, room, plot, commercial, warehouse, garage |
maxResults | Integer | No | Maximum listings to return (default: 100) |
proxyConfiguration | Object | No | Proxy settings (Apify Proxy enabled by default) |
Example output
{"title": "Mieszkanie 3-pokojowe, Mokotow, 65m2","price": 850000,"currency": "PLN","url": "https://www.otodom.pl/pl/oferta/mieszkanie-3-pokojowe-mokotow-65m2-ID4xAbC","scrapedAt": "2026-04-03T12:00:00.000Z","listingType": "sale","propertyType": "apartment","address": "Pulawska, Mokotow, Warszawa, mazowieckie","city": "Warszawa","postalCode": "02-508","latitude": 52.1935,"longitude": 21.0370,"bedrooms": 3,"bathrooms": 1,"surface": 65,"landSurface": null,"buildYear": 2018,"imageUrl": "https://ireland.apollo.olxcdn.com/v1/files/...","imageUrls": ["https://ireland.apollo.olxcdn.com/v1/files/...","https://ireland.apollo.olxcdn.com/v1/files/..."],"description": "Sprzedam przestronne mieszkanie 3-pokojowe na Mokotowie...","agencyName": "ABC Nieruchomosci","agencyUrl": "https://www.otodom.pl/pl/biuro/abc-nieruchomosci"}
Cost estimate
This actor uses Playwright (headless browser), which consumes more compute than HTTP-only scrapers. Approximate costs:
- ~100 listings: 0.05-0.10 USD (1 search page + pagination)
- ~1,000 listings: 0.30-0.60 USD (28+ search pages)
- ~5,000 listings: 1.50-3.00 USD (140+ search pages)
Costs depend on proxy type (datacenter vs. residential) and retry rate.
Tips for best results
- Use location filters to narrow results — scraping all of Poland produces huge result sets
- Residential proxies give the best success rate if you encounter blocks
- Start with a small
maxResults(50-100) to validate your filters before running large scrapes - Provide
startUrlsfor maximum control — paste any Otodom search URL with your exact filters applied
Limitations
- Otodom uses anti-bot protection; occasional retries may be needed
- Bathroom count and build year are only available when visiting detail pages (not from search results alone)
- Maximum ~10,000 results per run to stay within reasonable costs
- Data is scraped from the public website and may change without notice