Scrapers.lat logo scrapers.lat
Real estate

Otodom Poland Real Estate Listings & Agent Contacts Scraper

Scrape Otodom Poland property listings for sale or rent with price in PLN, price per m2, area, rooms, floor, district and city, geo coordinates and the advertiser agency, agent name and phone. Filter by transaction, property type and location. Export to JSON, CSV or Excel.

49 fields per record JSON · CSV · Excel · API Pay per use
otodom-poland-realestate-scraper.json 200 OK
{
  "id": 68079271,
  "title": "36 m²/ 2 pokoje/ ogródek 34 m² - gotowe do zam…",
  "transaction": "sprzedaz",
  "propertyType": "apartment",
  "price": 599000,
  "priceCurrency": "PLN",
  "rentPrice": 650,
  "pricePerM2": 16638.89,
  "area": 36
}
What you get

Every run returns clean, typed records, ready for your CRM, spreadsheet or database.

  • One clean record per result, deduped and normalized
  • Stable schema in JSON, CSV or Excel, or read it via the Apify API
  • Pay per use in the cloud, nothing to install or maintain
Fields it returns
IdTitleTransactionProperty TypePricePrice CurrencyRent PricePrice Per M2AreaRoomsFloor LabelCityDistrictNeighborhood
Sample output

A real example record, exactly the shape you receive.

IdTitleTransactionProperty Type
6807927136 m²/ 2 pokoje/ ogródek 34 m² - …sprzedazapartment
663483493-pokojowe mieszkanie 55m2 + balk…sprzedazapartment
68195561Bohdanowicza Os. Oświata _Ochota_…sprzedazapartment
663432332-pokojowe mieszkanie 39m2 + balk…sprzedazapartment
GET /otodom-poland-realestate-scraper
{
  "id": 68079271,
  "title": "36 m²/ 2 pokoje/ ogródek 34 m² - gotowe do zam…",
  "transaction": "sprzedaz",
  "propertyType": "apartment",
  "price": 599000,
  "priceCurrency": "PLN",
  "rentPrice": 650,
  "pricePerM2": 16638.89,
  "area": 36
}

Frequently asked questions

How do I target a specific city or district?

Use the location slug. It follows province, county, commune, city and optionally a district, for example `mazowieckie/warszawa/warszawa/warszawa/mokotow`. You can also pass just a province like `mazowieckie` for a wider search.

Do I get the agent phone number?

Yes. With enrichment on, each record includes the advertiser phone, the agent phone and the agency phone where the listing exposes them, plus the agency name and address.

Can I scrape rentals as well as sales?

Yes. Set the transaction to wynajem for rentals or sprzedaz for sales. The rent price is captured separately for rental listings.

How fresh is the data?

Listings are read live at run time, so each record reflects what is published at the moment of the run (see observedAt).

Ready when you are.

Run the scraper live on Apify right now, or have us build one tailored to exactly what you need.