Otodom Scraper - Poland Real Estate Listings & Phones
Pricing
from $1.39 / 1,000 listings
Otodom Scraper - Poland Real Estate Listings & Phones
Every listing an otodom.pl search reports, with phone numbers. Flats, houses, plots, rooms, commercial premises and new developments for sale or rent across Poland: price per m², monthly fee, area, rooms, floor, coordinates, photos and agency details. Search by city or paste an otodom link.
Pricing
from $1.39 / 1,000 listings
Rating
0.0
(0)
Developer
ClearPath
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
From Clearpath, creators of ImmoScout24 Pro, Leboncoin Immobilier, Sahibinden Real Estate and Zillow. 1.2 million+ combined lifetime runs across these four real-estate scrapers.
Why choose this actor?
- Nationwide collection. A local run over flats for sale across Poland saved 152,123 listings in summary mode (
includeDetails: false). Collect a city, a region or a nationwide search in one dataset. - Seller contacts and property detail. Full details add source-provided phones, contact people and agency information, plus floor plans and tour links where available, with no extra detail charge. Keep price per m², area, rooms, monthly fees, coordinates and photos together.
- Keep your search criteria. Choose locations and filters, or paste an Otodom search link to retain its criteria. Search sale or rental listings across nine property categories.
Quick input
Try 20 flats for sale across Poland in summary mode:
{"locations": [],"transaction": "sale","propertyType": "flat","maxItems": 20,"includeDetails": false}
Open actor input. Empty locations with no listing links searches all Poland. Leave Maximum results empty for an uncapped search, subject to your run budget and time limit. Set includeDetails to true for contact and detailed property data. Export JSON, CSV or Excel; JSON preserves nested contacts, images and location data.
| Clearpath Real Estate | |
Poland, you are here | Germany, property listings |
France, seller contacts | Turkey, seller contacts |
Copy to your AI assistant
clearpath/otodom-scraper on Apify returns otodom.pl (Poland) property listings, one row each and every listing a search reports: price, price per m², monthly fee, area, rooms, floor, building details, address with coordinates, description and photos; with includeDetails=true (the default, no extra charge) also phone numbers, contact people, agency licence and office phones, floor plans and tour links. Search with locations (city, district or region names; empty with no startUrls means all of Poland), transaction (sale or rent) and propertyType (flat, studio, house, investment for whole new developments, room, plot, commercial, hall, garage), plus optional filters such as priceMin/priceMax, areaMin/areaMax, rooms (strings "1" to "10" or "more"), market, sellerType, postedWithinDays and radiusKm (strings), keyword and sortBy; or put otodom search or listing links in startUrls to keep their own filters. Omit maxItems to get every listing; maxItemsPerSearch caps each location. Charges: $1.99 per 1,000 listings on the free plan plus $0.0099 per run start, see https://apify.com/clearpath/otodom-scraper/pricing. Full input and output: https://api.apify.com/v2/actors/clearpath~otodom-scraper/builds/default. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
How to scrape otodom.pl listings
- Enter one or more Locations: a city (
Warszawa,Kraków,Gdynia), a district with its city (Mokotów, Warszawa) or a region (pomorskie). Polish letters are optional. Each location is its own search. - Pick Sale or rent and a Property type, then any filters.
- Set Maximum results, or leave it empty for every listing. Start the run and download the dataset.
You can also paste otodom.pl links into Otodom links: a search result page keeps all the filters and the sort order you set on the site, and a single listing link returns that one listing.
| Input | Default | What it does |
|---|---|---|
locations | all of Poland | Cities, districts, regions or location paths from an otodom link. Empty, with no links, searches the whole country. |
districts | none | Narrows each location to these districts, for example ["Mokotów", "Wola"] for Warszawa. |
startUrls | none | otodom.pl search links (filters kept) or listing links. |
transaction | sale | sale or rent. |
propertyType | flat | flat, studio, house, investment (new developments), room, plot, commercial, hall, garage. |
priceMin, priceMax | none | Total price in PLN, or monthly rent for rentals. |
pricePerSquareMeterMin, pricePerSquareMeterMax | none | Price per m² in PLN. |
areaMin, areaMax | none | Floor area in m². |
rooms | any | Any of "1" to "10" and "more". |
buildYearMin, buildYearMax | none | Construction year range. |
market | all | primary (new build), secondary (resale) or all. |
sellerType | all | private, agency, developer or all. |
postedWithinDays | any age | "1", "3", "7", "14" or "30". |
radiusKm | "0" | Adds listings up to "5", "10", "15", "25", "50" or "75" km outside each location. |
keyword | none | Only listings whose description mentions this word, for example balkon. |
sortBy | default | newest, oldest, price_lowest, price_highest, area_smallest, area_largest, price_per_m_lowest, price_per_m_highest. |
includeDetails | true | Phones, contacts, agency details, features, floor plans, tour links and listing status. |
maxItems | every listing | Total cap across all searches. |
maxItemsPerSearch | none | Cap per location or link, so one large city does not use up the total. |
Filters narrow the result, so none is set unless you choose it. The investment property type returns whole new developments; the individual flats inside them are already included under flat.
Examples
Two Warsaw districts, 2 or 3 rooms, resale only, newest first:
{"locations": ["Warszawa"],"districts": ["Mokotów", "Wola"],"rooms": ["2", "3"],"market": "secondary","sortBy": "newest","maxItems": 200}
Flats for rent in Kraków from private owners, posted in the last 7 days:
{"locations": ["Kraków"],"transaction": "rent","sellerType": "private","postedWithinDays": "7"}
A search you already set up on otodom.pl, plus one listing:
{"startUrls": [{ "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/pomorskie/gdynia/gdynia/gdynia?priceMax=900000&areaMin=40" },{ "url": "https://www.otodom.pl/pl/oferta/2-pokoje-do-remontu-gdynia-ul-slaska-ID4D0Pg" }]}
Houses for sale within 25 km of Gdańsk:
{"locations": ["Gdańsk"],"propertyType": "house","radiusKm": "25"}
What data do you get from otodom.pl?
Each row is one listing, with the same fields on every row. A field the listing does not have is null or an empty list.
- Listing: id, otodom offer code, link, title, property type, sale or rent, market, status, created, updated and bumped dates, promoted, exclusive and premium flags.
- Price: price and currency, price per m², monthly fee (czynsz), deposit, negotiable flag, price on request.
- Property: area, plot area, rooms, floor, building floors, build year, building type and material, ownership, condition, heating, windows, energy class, lift, parking, available from, extras, equipment, security, utilities, surroundings.
- Location: one-line address, province, county, municipality, city, district, neighbourhood, street, house number, postal code, latitude and longitude, whether the pin is exact, and every location level with otodom's location id.
- Contacts: phone and all phones found, contact person, contact people with phones, assigned agent, seller type (private, agency, developer), agency id, name, profile link, logo, licence number, office phones and address.
- Media and text: photos in four sizes, photo ids, floor plans, video, 3D tour, walk-around and local plan links, full description as text and as formatted HTML, features grouped as on the listing page, highlight tags.
- New developments: development name and link for units inside one, and for whole developments their stage, completion date, unit count, units still available, unit area and room range and starting price per m².
- Run context: which of your locations or links found the row, the equivalent otodom search link, rank in that search (empty for the few listings on very large searches that otodom's result order skips), a change fingerprint and the collection time.
Every coded value, such as buildingType: "block" or heating: "urban", comes with a readable label next to it, and attributes keeps otodom's complete raw attribute map.
Here is a real row from a Gdynia run. Phone numbers and the contact person's surname are masked in this example, and the images, imageVariants, imageIds and agencyFeatures lists are shortened (this listing has 14 photos and 44 agency features).
{"id": 68365591,"offerCode": "ID4CR0P","url": "https://www.otodom.pl/pl/oferta/gdynia-dzialki-lesne-zadbane-2-pok-z-balkonem-ID4CR0P","slug": "gdynia-dzialki-lesne-zadbane-2-pok-z-balkonem-ID4CR0P","title": "Gdynia Działki Leśne. Zadbane 2-pok z balkonem","listingKind": "listing","estate": "FLAT","estateLabel": "Flat","transaction": "sale","market": "secondary","marketLabel": "Secondary market (resale)","price": 599000,"priceCurrency": "PLN","priceFormatted": "599 000 PLN","pricePerSquareMeter": 12744.68,"pricePerSquareMeterFormatted": "12 745 PLN/m²","pricePerSquareMeterFrom": null,"isPriceHidden": false,"isPriceNegotiable": false,"monthlyFee": 430,"deposit": null,"areaSquareMeters": 47,"terrainAreaSquareMeters": null,"rooms": 2,"roomsLabel": "2","floor": 2,"floorLabel": "Floor 2","buildingFloors": 4,"buildYear": 1987,"buildingType": "block","buildingTypeLabel": "Block of flats","buildingMaterial": null,"buildingMaterialLabel": null,"ownershipType": "full_ownership","ownershipTypeLabel": "Full ownership","condition": "ready_to_use","conditionLabel": "Ready to move in","heating": "urban","heatingLabel": "District heating","heatingTypes": [],"windowsType": null,"windowsTypeLabel": null,"energyCertificate": null,"hasElevator": false,"parking": null,"availableFrom": null,"extras": ["Balcony","Basement","Separate kitchen"],"equipment": ["Fridge","Oven","Stove","Tv","Washing machine"],"security": ["Entryphone"],"utilities": [],"surroundings": [],"peoplePerRoom": null,"features": ["domofon / wideofon","lodówka","piekarnik","kuchenka","telewizor","pralka","balkon","piwnica","oddzielna kuchnia"],"featuresByCategory": [{"category": "Zabezpieczenia","values": ["domofon / wideofon"]},{"category": "Wyposażenie","values": ["lodówka","piekarnik","kuchenka","telewizor","pralka"]},{"category": "Informacje dodatkowe","values": ["balkon","piwnica","oddzielna kuchnia"]}],"tags": [{"value": "SEPARATE_KITCHEN","label": "Separate kitchen","weight": 50},{"value": "BALCONY","label": "Balcony","weight": 35},{"value": "BASEMENT","label": "Basement","weight": 25}],"description": "Słoneczne, zadbane mieszkanie z widokiem na las przy ul.Tatrzańskiej.\nMieszkanie dwustronne z dużym balkonem, pokoje samodzielne(ok.18,8m i 11,10m), jasna kuchnia(ok. 7,90m), łazienka razem z WC( ok.3,2m). Okna PCV, na podłodze w pokojach parkiet w bardzo dobrym stanie, w łazience , kuchni i przedpokoju glazura.Wszystkie media opomiarowane czynsz 430zł/830zł. Do mieszkania przynależy piwnica.W pełni umeblowane i wyposażone, w cenie pozostaje zabudowa kuchni wraz ze sprzętem AGD (lodówka z zamrażarką, zmywarka, kuchenka gazowa z piekarnikiem elektrycznym, pochłaniacz), umeblowanie pokoi i zabudowa przedpokoju( dwie szafy). Budynek docieplony z zadbaną klatką schodową. Wydanie szybkie.\nDoskonała lokalizacja, dzielnica otoczona lasem blisko Centrum Gdyni, komunikacji miejskiej i sieci usługowo-handlowej.","shortDescription": "Słoneczne, zadbane mieszkanie z widokiem na las przy ul.Tatrzańskiej.\nMieszkanie dwustronne z dużym balkonem, pokoje samodzielne(ok.18,8m i 11,10m), jasna kuchnia(ok. 7,90m), łazienka razem z WC( ok.3...","descriptionHtml": "<p></p><p><strong>Słoneczne, zadbane mieszkanie z widokiem na las przy ul.Tatrzańskiej.</strong></p><p>Mieszkanie dwustronne z dużym balkonem, pokoje samodzielne(ok.18,8m i 11,10m), jasna kuchnia(ok. 7,90m), łazienka razem z WC( ok.3,2m). Okna PCV, na podłodze w pokojach parkiet w bardzo dobrym stanie, w łazience , kuchni i przedpokoju glazura.Wszystkie media opomiarowane czynsz 430zł/830zł. Do mieszkania przynależy piwnica.W pełni umeblowane i wyposażone, w cenie pozostaje zabudowa kuchni wraz ze sprzętem AGD (lodówka z zamrażarką, zmywarka, kuchenka gazowa z piekarnikiem elektrycznym, pochłaniacz), umeblowanie pokoi i zabudowa przedpokoju( dwie szafy). Budynek docieplony z zadbaną klatką schodową. Wydanie szybkie.</p><p>Doskonała lokalizacja, dzielnica otoczona lasem blisko Centrum Gdyni, komunikacji miejskiej i sieci usługowo-handlowej.</p>","address": "Tatrzańska, Działki Leśne, Gdynia, pomorskie","province": "pomorskie","county": null,"municipality": null,"city": "Gdynia","district": "Działki Leśne","subdistrict": null,"street": "Tatrzańska","streetNumber": null,"postalCode": null,"latitude": 54.515453,"longitude": 18.52446,"locationRadiusMeters": 0,"locationHierarchy": [{"id": "pomorskie","name": "pomorskie","level": "voivodeship","fullName": "pomorskie"},{"id": "pomorskie/gdynia/gdynia/gdynia","name": "Gdynia","level": "city_or_village","fullName": "Gdynia, pomorskie"},{"id": "pomorskie/gdynia/gdynia/gdynia/dzialki-lesne","name": "Działki Leśne","level": "district","fullName": "Działki Leśne, Gdynia, pomorskie"}],"images": ["https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6Ing0aWtkeGp2bGJtdDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNiIsImEiOiIwIiwicCI6IjEwLC0xMCJ9XX0.kRMxlz98hfBFHURGx0Y62nO3jyhafu8hoFOgcN2NZY4/image","https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6ImJhZDR4dmJwaGF6NDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNiIsImEiOiIwIiwicCI6IjEwLC0xMCJ9XX0.IlgRrRMHjK08C9D0VMlfLNi9LNLWhdNW-t0vgSdjN24/image"],"imageVariants": [{"thumbnail": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6Ing0aWtkeGp2bGJtdDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.4lOqJTefQ_ovoMCYpCksmp-SXfoT5DDm8z01JgcDbBE/image;s=184x138;q=80","small": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6Ing0aWtkeGp2bGJtdDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.4lOqJTefQ_ovoMCYpCksmp-SXfoT5DDm8z01JgcDbBE/image;s=314x236;q=80","medium": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6Ing0aWtkeGp2bGJtdDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.4lOqJTefQ_ovoMCYpCksmp-SXfoT5DDm8z01JgcDbBE/image;s=655x491;q=80","large": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6Ing0aWtkeGp2bGJtdDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.4lOqJTefQ_ovoMCYpCksmp-SXfoT5DDm8z01JgcDbBE/image;s=1280x1024;q=80"},{"thumbnail": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6ImJhZDR4dmJwaGF6NDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.vbQeOA8svuHzhMrixjQZltU5brpeQ0uYaIoAMN_eLRw/image;s=184x138;q=80","small": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6ImJhZDR4dmJwaGF6NDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.vbQeOA8svuHzhMrixjQZltU5brpeQ0uYaIoAMN_eLRw/image;s=314x236;q=80","medium": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6ImJhZDR4dmJwaGF6NDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.vbQeOA8svuHzhMrixjQZltU5brpeQ0uYaIoAMN_eLRw/image;s=655x491;q=80","large": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6ImJhZDR4dmJwaGF6NDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.vbQeOA8svuHzhMrixjQZltU5brpeQ0uYaIoAMN_eLRw/image;s=1280x1024;q=80"}],"imageIds": ["x4ikdxjvlbmt3-APL","bad4xvbphaz43-APL"],"mainImage": "https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6Ing0aWtkeGp2bGJtdDMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNiIsImEiOiIwIiwicCI6IjEwLC0xMCJ9XX0.kRMxlz98hfBFHURGx0Y62nO3jyhafu8hoFOgcN2NZY4/image","imageCount": 14,"floorPlans": ["https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6IjZ4MWpjc2t6YnI3ZzMtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.E5y2G9DSpiFo64uMWHiVkb3ZJywka2SuVc8ONNeOyIQ/image"],"videoUrl": null,"virtualTourUrl": null,"walkaroundUrl": null,"localPlanUrl": null,"sellerType": "agency","advertiserType": "business","isPrivateOwner": false,"contactName": "Jolanta P.","contactImageUrl": null,"phone": "+48 605 XXX XXX","phones": ["+48 605 XXX XXX"],"contacts": [],"assignedAgent": null,"agencyId": "4149240","agencyName": "Nieruchomości Ewa Krzesińska","agencyUrl": "https://www.otodom.pl/pl/shop/nieruchomosci-ewa-krzesinska-ID4149240","agencyLogo": "","agencyLicenseNumber": "875","agencyPhones": ["+48 501 XXX XXX"],"agencyAddress": "Aleja Piłsudskiego 56/2, 81-388, Gdynia, pomorskie","agencyFeatures": ["N3DESTATE","ACADEMY","AD_HOMEPAGE_1_SCHEDULE","ADDITIONAL_CONTACT_FORMS_AD_PAGE"],"createdAt": "2026-08-31T10:55:06Z","modifiedAt": "2026-10-02T14:26:35Z","pushedUpAt": "2026-10-02T14:26:35Z","isPromoted": false,"isExclusiveOffer": false,"isPremium": false,"openDay": null,"specialOffer": null,"developmentId": null,"developmentTitle": null,"developmentUrl": null,"investmentState": null,"investmentStateLabel": null,"investmentEstimatedDelivery": null,"investmentUnitsCount": null,"investmentAvailableUnits": null,"investmentUnitsAreaFrom": null,"investmentUnitsAreaTo": null,"investmentUnitsRoomsMin": null,"investmentUnitsRoomsMax": null,"status": "active","statusLabel": "Active","source": "urn:site:local","sourceLabel": "otodom","sourceType": "IMPORT","sourceTypeLabel": "Imported from the advertiser's property software","externalId": "KE06688","referenceId": null,"attributes": {"build_year": "1987","building_floors_num": "4","building_ownership": "full_ownership","building_type": "block","construction_status": "ready_to_use","equipment_types": ["fridge","oven","stove","tv","washing_machine"],"extras_types": ["balcony","basement","separate_kitchen"],"floor_no": "floor_2","heating": "urban","m": "47","market": "secondary","price_per_m": "12744.68","rooms_num": "2","security_types": ["entryphone"]},"searchQuery": "Gdynia","searchUrl": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/pomorskie/gdynia/gdynia/gdynia","position": 409,"detailsIncluded": true,"scrapedAt": "2026-10-06T06:58:26.446870Z","fingerprint": "1d7500b05f65c371"}
How much does it cost?
You pay per listing saved, with no extra charge for full details.
| Event | When charged | Price |
|---|---|---|
| Listing scraped | Once per listing saved | $1.99 per 1,000 |
| Actor start | Once per run (per GB of memory, default 1 GB) | $0.0099 |
| Result | Once per row stored | $0.00001 |
1,000 listings cost $1.99 + $0.0099 + $0.01 = $2.01 on the free plan. Paid Apify plans pay less per listing: $1.79 per 1,000 on Bronze, $1.69 on Silver and $1.39 on Gold and above.
Set Maximum results to control the cost of a run. A search with no matching listings only costs the start fee.
FAQ
Does it return every listing a search has? Yes. The run reads the total that otodom.pl reports for your search and returns every listing in it, also for very large searches such as all flats for sale in Poland. Listings that appear in two of your searches are saved once.
Do I get phone numbers?
Yes, with Include phone numbers and full details on (the default). Agency listings also carry the contact person, the agency's licence number, office phones and address. A few listings publish no phone number; those rows have phone: null.
Can I scrape a search I set up on otodom.pl? Paste its link into Otodom links. Filters and sort order are taken from the link; if one filter cannot be applied, the run log names it and the search runs without it. You can mix links with typed locations in one run.
Does it cover rentals, houses, plots and new developments? Yes: flats, studios, houses, rooms, plots, commercial premises, halls and warehouses, garages and new developments, for sale and for rent.
How do I track new listings or price changes?
Schedule the actor in Apify Console, for example daily with sortBy: "newest" and postedWithinDays: "1" for new listings. To spot changes, compare fingerprint between runs: it changes when the price, description, photos or status change.
Do I need an otodom account, cookies or a login? No. There is nothing to set up.
Why did I get fewer listings than I expected? Check the run log: it states how many listings otodom.pl reported for each search. Your filters and Maximum results narrow that number. A location the site does not know is named in the log, and the other searches still run.
Which export format should I use? CSV and Excel are convenient for prices, areas and contacts. JSON keeps nested data such as photo sizes, contact lists and location levels intact.
Support
Found a bug or need a field? Open an issue in the Issues tab or write to max@mapa.slmail.me. We reply quickly.
Collects publicly visible listing data from otodom.pl. You are responsible for using contact data in line with GDPR and otodom.pl's terms.
