Otodom Listings Scraper avatar

Otodom Listings Scraper

Pricing

from $1.00 / 1,000 search listings

Go to Apify Store
Otodom Listings Scraper

Otodom Listings Scraper

The Otodom Listings Scraper extracts real estate listings from Otodom.pl, capturing prices, price per m², areas, rooms, locations, agencies, photos, and full property details with GPS coordinates and contact phone numbers — ideal for market analysis, price monitoring and real estate lead generation.

Pricing

from $1.00 / 1,000 search listings

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

8

Total users

2

Monthly active users

10 days ago

Last modified

Security

Limited permissions

Share

🏠 Otodom Scraper: Polish Property Listings, Prices and Price per m²

Export Otodom.pl real estate listings as clean JSON, CSV or Excel. The Otodom Listings Scraper returns each listing's price, price per m², area, rooms, floor, street, district, agency or developer and photos, from any Otodom search you set up in your browser. Use it to track apartment prices (ceny mieszkań) in Warsaw or any Polish city, to watch new listings, or as a simple alternative to an Otodom API.

🎯 Use Cases

  • Track apartment prices (ceny mieszkań): schedule a daily run on a search such as flats for sale in Warsaw and build your own price and price-per-m² history.
  • Warsaw price per m² analysis: compare cena za m² by district, number of rooms or market (primary vs secondary) across thousands of listings.
  • New listing alerts: run a sorted-by-newest search every hour and send fresh listings to your team or CRM.
  • Developer and agency research: see which developers and agencies list the most units, at which prices, and in which investments.
  • Poland property market datasets: collect listings across cities and property types for reports, valuation models or academic research.
  • Lead lists for real estate services: with full details on, get agency and developer contact phone numbers and office addresses.

✨ Features

  • Prices as numbers: total price, price per m² and rent (czynsz) as { value, currency }.
  • Property facts: area in m², land area for houses and plots, number of rooms and floor as numbers.
  • Location: street, city, district and province for every listing.
  • Advertiser: agency or developer name and ID, a private-owner flag, and the investment (development) a unit belongs to.
  • Photos: main image plus the full image list and total photo count.
  • Any Otodom search: flats, houses, rooms, plots, commercial premises, garages, for sale or for rent, with every filter, sort order and page from the URL.
  • Optional full details: the full description, GPS coordinates, all characteristics (heating, building type, year built, ownership, …), floor plans, market type and contact phone numbers.
  • No duplicates: a listing found by two searches is saved and billed once.
  • Fair billing: removed or expired listings are skipped and not billed, and the run stops cleanly at your maximum cost per run.

🛠️ How It Works

  1. Set up your search on otodom.pl: pick the location, property type, price range, area, rooms or any other filters, then copy the URL from your browser. You can also paste single listing URLs (https://www.otodom.pl/pl/oferta/...).
  2. Set Max items and decide whether you need full listing details.
  3. Run the scraper and download the results as JSON, CSV, Excel or HTML, or pull them through the API.

⚙️ Input

FieldWhat it does
Start URLsOtodom search URLs with any filters, sort order and page, or single listing URLs. Empty = apartments for sale in Warsaw.
Max itemsMaximum number of listings to save across all start URLs. Default 50.
Scrape full listing detailsVisit each listing for the full description, GPS, all characteristics and contact phones. Default off.
{
"startUrls": [
{ "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/mazowieckie/warszawa/warszawa/warszawa" },
{ "url": "https://www.otodom.pl/pl/wyniki/wynajem/mieszkanie/malopolskie/krakow/krakow/krakow" }
],
"maxItems": 500,
"scrapeDetails": false
}

A URL with page=3 starts from page 3 of those results. Several start URLs in one run cover several cities or property types at once.

💰 Pricing

Pay only for the listings you get. No monthly rental.

EventPriceWhat you get
Search listing$0.001 per listing ($1.00 per 1,000)One listing with the fields in the sample below
Listing detail$0.004 per listing ($4.00 per 1,000)Everything above plus description, GPS, characteristics and contact phones
Actor start$0.00005 per runCharged once when the run starts

With full details on, each listing is billed once as a listing detail, not as both. If a detail page can't be loaded, the listing is saved with its search fields and billed as a search listing.

Examples: 50 Warsaw flats from search results = $0.05 · 1,000 listings = $1.00 · 1,000 listings with full details = $4.00.

📊 Sample Output Data

A search listing from a real run (long strings and lists trimmed):

{
"id": 66343498,
"url": "https://www.otodom.pl/pl/oferta/4-pokojowe-mieszkanie-103m2-loggia-bez-prowizji-ID4umYq",
"title": "4-pokojowe mieszkanie 103m2 + loggia Bez Prowizji",
"estate": "FLAT",
"transaction": "SELL",
"price": { "value": 2409453, "currency": "PLN" },
"rentPrice": null,
"pricePerSquareMeter": { "value": 23392.75, "currency": "PLN" },
"areaInSquareMeters": 103,
"terrainAreaInSquareMeters": null,
"roomsNumber": 4,
"floorNumber": 1,
"street": "ul. Jagiellońska",
"city": "Warszawa",
"district": "Praga-Północ",
"province": "mazowieckie",
"isPrivateOwner": false,
"isPromoted": false,
"agency": { "id": 10556604, "name": "Mennica Polska", "slug": "mennica-polska-ID10556604" },
"shortDescription": "4-pokojowe mieszkanie numer P3.1.02.05 na 1. piętrze w budynku P3 w Inwestycji Bulwary Praskie…",
"dateCreated": "2026-10-21 16:33:57",
"pushedUpAt": "2026-10-21T16:34:01+02:00",
"image": "https://ireland.apollo.olxcdn.com/v1/files/…/image;s=1280x1024;q=80",
"images": ["https://ireland.apollo.olxcdn.com/v1/files/…/image;s=1280x1024;q=80", "…"],
"totalPossibleImages": 8,
"development": {
"id": 66343104,
"title": "Bulwary Praskie",
"url": "https://www.otodom.pl/pl/oferta/bulwary-praskie-ID4umS4"
},
"scrapedAt": "2026-10-21T14:34:34.321Z"
}

floorNumber is 0 for the ground floor and -1 for a cellar. pushedUpAt is when the advertiser last bumped the listing to the top. development links a unit to its developer's investment page, and is null for resale listings.

With Scrape full listing details on, each row also has description, latitude, longitude, characteristics (for example building_type, construction_status, heating, build_year), market (PRIMARY or SECONDARY), advertiserType, advertType, floorPlans, videos, owner and contact (name and phones), the agency's address and phones, and createdAt / modifiedAt timestamps.

🔁 Schedule and Integrate

For price tracking, run the same search once a day: every run is a dated snapshot, and together they form your Otodom price history. For new listing alerts, sort the search by newest and run it every hour with a small Max items. Set it up in Apify Schedules, then send results to Google Sheets, Zapier, Make, n8n or a webhook with Apify integrations, so new listings land where your team already works.

🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:

{
"startUrls": [{ "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/mazowieckie/warszawa/warszawa/warszawa" }],
"maxItems": 20
}

❓ FAQ

Does Otodom have an official API? Otodom offers integrations for real estate agencies and developers to publish and manage their own listings, not a public API for reading search results. This Actor needs no key or account and returns the public data a visitor sees: prices, price per m², areas, locations, advertisers and photos.

How do I track apartment prices (ceny mieszkań) in Warsaw? Set up the search on otodom.pl, paste its URL here and schedule a daily run. Keep each run's dataset, or append them to a Google Sheet, and compare price and pricePerSquareMeter by id over time.

Do I need an Otodom account? No.

Why is a field empty? Fields are null when the listing doesn't have them: rentPrice when no rent is given, terrainAreaInSquareMeters for flats, development for resale listings, agency for private owners, and price when the advertiser hides it ("zapytaj o cenę").

How many listings can I get? Up to Max items per run across all start URLs, from every results page of the search. Large cities have tens of thousands of listings; narrow the filters or split by district for big exports.

Can I get contact phone numbers? Yes, with full details on: agency and developer phones and office addresses. Contact details may be personal data under GDPR, so collect them only when you have a legitimate purpose.