Otodom Property Search Scraper avatar
Otodom Property Search Scraper

Pricing

$20.00/month + usage

Go to Apify Store
Otodom Property Search Scraper

Otodom Property Search Scraper

Unlock comprehensive property data from Poland's leading real estate platform with our Otodom.pl scraper. Extract listings, prices, locations, and detailed property information for market analysis, investment research, and business intelligence.

Pricing

$20.00/month + usage

Rating

0.0

(0)

Developer

ecomscrape

ecomscrape

Maintained by Community

Actor stats

1

Bookmarked

22

Total users

2

Monthly active users

12 days ago

Last modified

Share

Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link: My profile

Professional Otodom.pl Real Estate Data Extraction Solution

Introduction

Otodom is the most popular real estate platform in Poland, serving as the primary marketplace where buyers, sellers, and renters connect for life-changing property decisions. With millions of property listings spanning apartments, houses, commercial spaces, and land parcels across Poland, Otodom.pl has become an invaluable data source for real estate professionals, investors, researchers, and market analysts.

Web scraping enables real estate businesses to collect real-time data from online resources which provides them with a large pool of insights about the real estate market, competitors, customer expectations, and economical status of certain areas and populations. Our Otodom.pl Property Search Scraper addresses the critical need for automated data extraction from this comprehensive platform, eliminating the time-consuming manual process of gathering property information and enabling data-driven decision making in the Polish real estate market.

Comprehensive Otodom.pl Data Extraction Solution

The Otodom.pl Property Search Scraper is a sophisticated data extraction tool designed specifically for Poland's premier real estate platform. This scraper efficiently navigates through property search results, extracting detailed information from multiple listing types including residential properties (apartments, houses), commercial spaces (offices, warehouses), and rental properties across all Polish regions.

Our scraper stands out through its ability to handle large-scale data extraction while maintaining data integrity and accuracy. It's particularly valuable for real estate agencies conducting market research, property developers analyzing competition, investment firms evaluating market opportunities, and researchers studying Polish housing trends. The tool supports multiple property categories and transaction types, making it versatile enough for comprehensive market analysis or targeted research projects.

The scraper is designed with scalability in mind, capable of processing thousands of listings efficiently while respecting website limitations and maintaining ethical scraping practices.

Input Configuration and Requirements

Example url 1: https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska/

Example url 2: https://www.otodom.pl/pl/wyniki/wynajem/pokoj/cala-polska?by=DEFAULT&direction=DESC

Example url 3: https://www.otodom.pl/pl/wyniki/wynajem/haleimagazyny/cala-polska?by=DEFAULT&direction=DESC

Example Screenshot of property list by query page:

Input Format

The scraper accepts configuration through a JSON object with several key parameters:

Scrape with URLs:

{
"max_retries_per_url": 2, // Maximum number of retry attempts for each URL if scraping fails
"proxy": { // Proxy configuration to avoid bot detection
"useApifyProxy": false
},
"max_items_per_url": 20, // Limit the number of items to scrape per URL
"urls": [
"https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska"
// Add URLs of property list pages you want to scrape
],
"ignore_url_failures": true // Continue scraping even if some URLs fail
}

The urls parameter: Add the URLs of the property list pages you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

The ignore_url_failures parameter: If set to true, the scraper will continue running even if some URLs fail to be scraped after reaching the maximum number of retries. This ensures that one problematic URL doesn't stop your entire scraping job.

When you provide a list of URLs for scraping, all options in the "Scrape with search filters" section will be disabled. The system will only collect data from the URLs you specified.

Scrape with Search Filters:

{
"max_retries_per_url": 2, // Maximum number of retry attempts for each search request
"proxy": { // Proxy configuration to avoid bot detection
"useApifyProxy": false
},
"max_items_per_url": 20, // Total number of items you want to scrape
"location": "mazowieckie/warszawa/warszawa/warszawa/bialoleka", // Location to search for properties
"property_type": "mieszkania", // Filter by property type
"operation_type": "sprzedaz", // Filter by operation type
"radius": "25", // Filter by distance radius
"posted_date": "7", // Filter by published date
"min_price": 10, // Minimum price filter
"max_price": 10000, // Maximum price filter
"min_area": 10, // Minimum area filter
"max_area": 1000, // Maximum area filter
"number_of_rooms": "THREE", // Filter by number of rooms
"sort_by": "LATEST-DESC", // Sort properties by specific criteria
"page": 1 // Starting page number for search results
}

The location parameter: Enter the location to search for items. Make sure the location is accurate by selecting a location on the website and then searching. Copy the location value directly from the URL. For example, for the URL https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie,3-pokoje/mazowieckie/warszawa/warszawa/warszawa/bialoleka?distanceRadius=25&limit=36, the correct location is mazowieckie/warszawa/warszawa/warszawa/bialoleka.

The property_type parameter: Filter properties by type:

  • "mieszkania" - Mieszkania (Apartments)
  • "kawalerki" - Kawalerki (Studio apartments)
  • "domy" - Domy (Houses)
  • "inwestycje" - Inwestycje (Investments)
  • "pokoje" - Pokoje (Rooms)
  • "dzialki" - Działki (Plots)
  • "lokale-uzytkowe" - Lokale użytkowe (Commercial spaces)
  • "hale-i-magazyny" - Hale i magazyny (Halls and warehouses)
  • "garaze" - Garaże (Garages)

The operation_type parameter: Filter properties by operation type:

  • "wynajem" - Rent
  • "sprzedaz" - Buy

The radius parameter: Filter properties by distance radius:

  • "" - 0 km
  • "5" - 5 km
  • "10" - 10 km
  • "15" - 15 km
  • "25" - 25 km
  • "50" - 50 km
  • "75" - 75 km

The posted_date parameter: Filter properties by published date:

  • "" - Any
  • "1" - Last 1 day
  • "3" - Last 3 days
  • "7" - Last 7 days

The min_price parameter: Filter properties by minimum price.

The max_price parameter: Filter properties by maximum price.

The min_area parameter: Filter properties by minimum area (in m²).

The max_area parameter: Filter properties by maximum area (in m²).

The number_of_rooms parameter: Filter properties by number of rooms:

  • "" - Any
  • "ONE" - 1 room
  • "TWO" - 2 rooms
  • "THREE" - 3 rooms
  • "FOUR" - 4 rooms
  • "FIVE" - 5 rooms
  • "SIX_OR_MORE" - 6+ rooms

The sort_by parameter: Sort properties by various criteria:

  • "" - Relevance
  • "LATEST-DESC" - Latest (descending)
  • "LATEST-ASC" - Latest (ascending)
  • "PRICE-ASC" - Price (ascending)
  • "PRICE-DESC" - Price (descending)
  • "AREA-ASC" - Area (ascending)
  • "AREA-DESC" - Area (descending)

The page parameter: Specify the page number to start scraping from, useful for continuing interrupted scrapes or targeting specific result ranges.

When using search filters for scraping, you need to leave the urls field empty in the "Scrape with URLs" configuration.

General Options:

The max_items_per_url parameter: Limit the number of items per URL or search filters you want to scrape. The default value is 20, providing a manageable batch size while allowing for comprehensive data collection.

The max_retries_per_url parameter: Limit the number of retries for each URL or search filters if the scrape is detected as a bot or the page fails to load. The default value is 2, providing a good balance between thoroughness and efficiency.

The proxy parameter: Proxy configuration is essential for maintaining anonymity and avoiding detection. Select proxies to be used by your scraper.

Comprehensive Output Data Structure

You get the output from the Otodom.pl Property Search Scraper stored in a tab. The following is an example of the Information Fields collected after running the Actor.

[ // List of property information
{
"id": 67153886,
"title": "Piękne 2 pokojowe mieszkanie w Top lokalizacji",
"slug": "piekne-2-pokojowe-mieszkanie-w-top-lokalizacji-ID4xLNc",
"estate": "FLAT",
"development": null,
"development_id": 0,
"development_title": "",
"development_url": "",
"transaction": "SELL",
"location": {
"map_details": {
"radius": 0,
"__typename": "MapDetails"
},
"address": {
"street": {
"name": "ul. Płocka",
"number": "",
"__typename": "Street"
},
"city": {
"name": "Warszawa",
"__typename": "City"
},
"province": {
"name": "mazowieckie",
"__typename": "Province"
},
"__typename": "Address"
},
"reverse_geocoding": {
"locations": [
{
"id": "mazowieckie",
"full_name": "mazowieckie",
"name": "mazowieckie",
"location_level": "voivodeship",
"__typename": "BasicLocationObject"
},
{
"id": "mazowieckie/warszawa/warszawa/warszawa",
"full_name": "Warszawa, mazowieckie",
"name": "Warszawa",
"location_level": "city_or_village",
"__typename": "BasicLocationObject"
},
{
"id": "mazowieckie/warszawa/warszawa/warszawa/wola",
"full_name": "Wola, Warszawa, mazowieckie",
"name": "Wola",
"location_level": "district",
"__typename": "BasicLocationObject"
},
{
"id": "mazowieckie/warszawa/warszawa/warszawa/wola/mlynow",
"full_name": "Młynów, Wola, Warszawa, mazowieckie",
"name": "Młynów",
"location_level": "residential",
"__typename": "BasicLocationObject"
}
],
"__typename": "ReverseGeocoding"
},
"__typename": "LocationDetails"
},
"images": [
{
"medium": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6IjZyNGh3MjNoa2ZxNzMtRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.A1kQJfmoZFlByHsXRWe-xauAfIpPItbnDpmFhCO7cxY/image;s=655x491;q=80",
"large": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6IjZyNGh3MjNoa2ZxNzMtRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.A1kQJfmoZFlByHsXRWe-xauAfIpPItbnDpmFhCO7cxY/image;s=1280x1024;q=80",
"__typename": "AdImage"
},
{
"medium": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6InNxcXg0ZDA2MG5yaDEtRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.b_oLYNvBEeIPZ7TUDy-VpnkaQPyaM0L-TYmQdQv-5FU/image;s=655x491;q=80",
"large": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6InNxcXg0ZDA2MG5yaDEtRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.b_oLYNvBEeIPZ7TUDy-VpnkaQPyaM0L-TYmQdQv-5FU/image;s=1280x1024;q=80",
"__typename": "AdImage"
},
{
"medium": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6Imtsd2k2Zzg2dDZqMzItRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.qsF6qb_HqedKek9pCWlmMLsFrl1e-EXO8xzLCqpytjM/image;s=655x491;q=80",
"large": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6Imtsd2k2Zzg2dDZqMzItRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsInMiOiIxNCIsInAiOiIxMCwtMTAiLCJhIjoiMCJ9XX0.qsF6qb_HqedKek9pCWlmMLsFrl1e-EXO8xzLCqpytjM/image;s=1280x1024;q=80",
"__typename": "AdImage"
}
],
"total_possible_images": 8,
"is_exclusive_offer": false,
"is_private_owner": false,
"is_promoted": false,
"source": "urn:partner:esticrm",
"agency": {
"id": 10447022,
"name": "Familia Estate",
"slug": "familia-estate-ID10447022",
"image_url": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6IncxN3BlbHpnYWc2MS1BUEwifQ.rZoQfWr63gDJQuWmY2fuw7kjPcAofKURyA15bIZLxdo/image;s=800x600;q=90",
"type": "AGENCY",
"branding_visible": true,
"highlighted_ads": false,
"enhanced_branding_features": [],
"__typename": "AgencyListingDetails"
},
"open_days": "",
"total_price": {
"value": 695000,
"currency": "PLN",
"__typename": "Money"
},
"rent_price": {
"value": 0,
"currency": "PLN",
"__typename": "Money"
},
"price_from_per_square_meter": null,
"price_per_square_meter": {
"value": 23013,
"currency": "PLN",
"__typename": "Money"
},
"area_in_square_meters": 30.2,
"terrain_area_in_square_meters": null,
"rooms_number": "TWO",
"hide_price": false,
"floor_number": "FIRST",
"investment_state": null,
"investment_units_area_in_square_meters": null,
"people_per_room": null,
"date_created": "2025-08-20 18:26:13",
"created_at_first": "2025-08-20T18:26:10Z",
"investment_units_number": null,
"investment_units_rooms_number": null,
"investment_estimated_delivery": null,
"pushed_up_at": null,
"special_offer": null,
"short_description": "We speak PL, UA, RU, ENG Na sprzedaż: świeżo wyremontowane 2-pokojowe mieszkanie w kamienicy z lat 50 - ul. Płocka, Warszawa WolaPowierzchnia: 30,2 m²Piętro: 1Forma własności: pełna własność z księgą ...",
"href": "[lang]/ad/piekne-2-pokojowe-mieszkanie-w-top-lokalizacji-ID4xLNc",
"from_url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska"
}, // ... Many other property details
]

The scraper returns comprehensive property data in a structured format, with each property represented as a detailed record containing over 30 data fields:

Core Property Information

  • ID: Unique identifier for each property listing
  • Title: Property headline as displayed on Otodom.pl
  • Slug: URL-friendly version of the property title
  • Href: Direct link to the full property listing page

Location and Development Details

  • Location: Geographic information including city, district, and address details
  • Estate: Property type classification (apartment, house, commercial, etc.)
  • Development: Name of the housing development or complex (if applicable)
  • Development ID, Development Title, Development URL: Structured information about larger development projects

Transaction and Pricing Information

  • Transaction: Type of transaction (sale, rent, etc.)
  • Total Price: Complete property price in Polish Złoty (PLN)
  • Rent Price: Monthly rental cost for rental properties
  • Price Per Square Meter: Calculated price per square meter for easy comparison
  • Price From Per Square Meter: Starting price per square meter for developments
  • Hide Price: Boolean indicating if price is hidden in the original listing

Property Specifications

  • Area in Square Meters: Total interior space of the property
  • Terrain Area in Square Meters: Outdoor space or land area associated with the property
  • Rooms Number: Total number of rooms in the property
  • Floor Number: Which floor the property is located on (for apartments)
  • People Per Room: Occupancy information (particularly relevant for rentals)

Investment and Development Data

  • Investment State: Construction or renovation status of the property
  • Investment Units Area in Square Meters: Total area for investment properties
  • Investment Units Number: Number of units in investment packages
  • Investment Units Rooms Number: Room distribution in investment properties
  • Investment Estimated Delivery: Projected completion date for under-construction properties

Marketing and Source Information

  • Is Exclusive Offer: Boolean indicating exclusive listing status
  • Is Private Owner: Distinguishes between private owners and agency listings
  • Is Promoted: Indicates if the listing has paid promotion
  • Source: Platform or source of the original listing
  • Agency: Real estate agency handling the property (if applicable)
  • Special Offer: Any special promotional offers or conditions

Visual and Additional Content

  • Images: Array of property photo URLs
  • Total Possible Images: Count of available images for the property
  • Short Description: Brief property description or highlights
  • Open Days: Scheduled viewing times and dates

Temporal Data

  • Date Created: When the listing was first published
  • Created At First: Initial creation timestamp
  • Pushed Up At: Last time the listing was promoted or refreshed

This comprehensive data structure enables detailed market analysis, price comparison studies, location-based research, and investment opportunity assessment across the Polish real estate market.

Step-by-Step Usage Guide

Option 1: Scraping with URLs

1. Configuration Setup

Begin by preparing your input JSON with the appropriate search URLs from Otodom.pl. Navigate to the Otodom.pl website and perform your desired property searches (by location, price range, property type, etc.), then copy the resulting search page URLs. Add these URLs to the urls array in your configuration.

2. Proxy Configuration

Configure proxies to ensure reliable data extraction. Choose a proxy country that aligns with your research needs – for Polish market analysis, European proxies typically work well. The proxy configuration helps avoid detection and maintain consistent access.

3. Execution Parameters

Set reasonable limits for max_items_per_url based on your data needs and available processing time. For comprehensive market studies, consider multiple smaller batches rather than one large extraction to ensure data quality and avoid overwhelming the target server.

4. Best Practices

  • Run extractions during off-peak hours to minimize impact on the website
  • Monitor the extraction process for any errors or blocked requests
  • Validate the extracted data for completeness and accuracy
  • Store the data in appropriate formats (CSV, JSON, or database) for further analysis
  • Enable ignore_url_failures to ensure one problematic URL doesn't stop your entire scraping job

5. Error Handling

Common issues include temporary website unavailability, proxy rotation needs, and rate limiting. The built-in retry mechanism handles most temporary issues, but be prepared to adjust proxy settings or extraction timing if persistent issues occur.

Option 2: Scraping with Search Filters

1. Define Search Criteria

Instead of providing URLs, configure your search filters to automatically generate property listings. This method is ideal when you want to systematically explore properties based on specific criteria without manually creating search URLs.

2. Set Location and Property Type

Configure the core search parameters:

  • Location: Copy the location path directly from Otodom.pl URL (e.g., mazowieckie/warszawa/warszawa/warszawa/bialoleka)
  • Property Type: Select from options like "mieszkania" (apartments), "domy" (houses), "dzialki" (plots), etc.
  • Operation Type: Choose between "wynajem" (rent) or "sprzedaz" (buy)

3. Apply Advanced Filters

Refine your search with optional filters:

  • Price Range: Set min_price and max_price to define your budget constraints
  • Area: Use min_area and max_area to specify property size requirements in m²
  • Rooms: Filter by number_of_rooms (e.g., "THREE" for 3-room properties)
  • Distance: Use radius to expand search area from the specified location (5-75 km)
  • Recency: Set posted_date to find properties posted within specific timeframes (1, 3, or 7 days)

4. Configure Sorting and Pagination

Optimize your data collection:

  • Sorting: Use sort_by to order results by latest, price, or area (ascending/descending)
  • Pagination: Set page to start from a specific result page, useful for resuming interrupted scrapes

5. Execute and Monitor

Launch the scraper with your filter configuration. The scraper will automatically construct search URLs based on your criteria and extract property listings. Monitor the extraction process and adjust filters as needed for optimal results.

6. Best Practices for Filter-Based Scraping

  • Start with broader filters and progressively narrow down to understand data availability
  • Test filter combinations on the website first to ensure they return expected results
  • Use multiple scraping sessions with different filter sets for comprehensive market coverage
  • Combine price ranges and location filters strategically to avoid missing properties
  • Regularly update your filters to capture new listings based on posted_date parameter

7. Data Validation and Quality Control

After extraction, verify that:

  • Property data matches your filter criteria
  • Price ranges align with configured min_price and max_price
  • Location data corresponds to your specified location parameter
  • Room counts and area measurements fall within expected ranges
  • No duplicate listings appear across multiple filter configurations

Business Applications and Strategic Value

The Otodom.pl Property Search Scraper delivers significant value across multiple real estate industry applications. By automating the extraction of data from websites, real estate web scraping tools provide firms with access to real-time information on property listings, pricing trends, and neighborhood statistics, enhancing market analysis accuracy and strategic decision-making capabilities.

Real estate agencies can leverage this tool for competitive analysis, tracking market prices, and identifying emerging trends in specific Polish regions. Property developers can monitor competing projects, analyze pricing strategies, and assess market demand for different property types. Investment firms benefit from comprehensive market data that supports portfolio decisions and risk assessment in the Polish real estate market.

The time savings are substantial – what would take hundreds of hours of manual research can be accomplished in a few hours of automated extraction, freeing up valuable human resources for analysis and strategic planning rather than data gathering.

Conclusion and Next Steps

The Otodom.pl Property Search Scraper represents a powerful solution for anyone requiring comprehensive Polish real estate market data. By providing structured, detailed property information at scale, this tool enables data-driven insights that can transform your approach to the Polish real estate market.

Ready to unlock the full potential of Polish property market data? Start by identifying your specific research needs and configure the scraper to target the most relevant property segments and geographic areas for your analysis.

Related Actors

  • Otodom.pl Property Details Scraper: A specialized data extraction tool engineered to harvest detailed property information from Otodom's dominant Dutch real estate marketplace.

Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about Otodom.pl Property Search Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.