Otodom Scraper avatar

Otodom Scraper

Pricing

from $1.50 / 1,000 offer scrapeds

Go to Apify Store
Otodom Scraper

Otodom Scraper

Extract Polish real-estate listings from Otodom.pl with prices, locations, property details, images and seller information. Filter by location, map area, property type, budget, rooms and building features.

Pricing

from $1.50 / 1,000 offer scrapeds

Rating

0.0

(0)

Developer

simoit

simoit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

Otodom.pl Real Estate Scraper

Fast and reliable Apify Actor for scraping public property listings from Otodom.pl, Poland's largest real-estate portal. Collect apartments, houses and land listings with prices, locations, technical details, images and seller data.

Features

  • Sale and rental listings for apartments, houses, plots, rooms, garages and commercial properties.
  • Search by Otodom location ID or map-drawn GeoJSON polygon.
  • Fast listing mode or detail mode with concurrent page enrichment.
  • Multi-page pagination with maxItems and ID/URL deduplication.
  • Price, area, rooms, market, buildingType, extras, build-year and publication filters.
  • Clean descriptions and AI decision signals for renovation, tenants, auctions, financing and commission.
  • Coordinates, image URLs, seller/agency data and publicly exposed phone numbers.
  • Automatic proxy rotation, retries and browser-like requests are enabled by default; no proxy setup is required.

Input parameters

ParameterTypeDefaultDescription
locationstringWarsawProvince/city such as mazowieckie/warszawa; full Otodom IDs are also accepted
geometryobjectGeoJSON Polygon or MultiPolygon from map drawing
transactionstringsellsell or rent
estatestringflatflat, house, terrain, room, garage or commercial
buildingTypearrayValues such as BLOCK, TENEMENT
extrasarrayValues such as GARAGE
priceMin / priceMaxintegerPrice range in PLN
areaMin / areaMaxnumberArea range in m²
roomsMin / roomsMaxintegerRoom range from 1 to 6
buildYearintegerMinimum construction year
postedDatestringOtodom publication-date filter
maxItemsinteger50Maximum results across pages (1–1000)
extractDetailsbooleantrueVisit detail pages for full enrichment
maxConcurrencyinteger5Parallel detail requests (1–20)

Otodom pages contain 20 listings. The Actor follows additional pages until the limit is reached or no more results are available.

Listing mode output

With extractDetails: false, each item includes id, title, url, price, currency, price_per_square_meter, area, rooms, market, city, street, image_url, owner/promotion flags and created_at.

Detail mode output

With extractDetails: true, each item also has details containing:

  • description_preview and decision_signals
  • characteristics, attributes, features and additional_information
  • images, images_total, coordinates and address
  • seller type, name, agency, phone and has_phone_number

Public phone example:

{
"id": "67962236",
"title": "3 rooms, balcony, near M2 metro",
"price": 474999,
"currency": "PLN",
"area": 47.5,
"rooms": 3,
"city": "Warszawa",
"details": {
"description_preview": "Apartment requires renovation...",
"decision_signals": [{"type": "requires_renovation", "evidence": "..."}],
"coordinates": {"latitude": 52.287846, "longitude": 21.044584},
"seller": {
"type": "agency",
"name": "Example Agency",
"agency": "Example Agency",
"phone": "+48123456789",
"has_phone_number": true
}
}
}

Masked/private phone numbers are returned as null; the Actor does not bypass Otodom contact controls.

Usage examples

Apartments for sale in Warsaw

{
"location": "mazowieckie/warszawa",
"transaction": "sell",
"estate": "flat",
"priceMax": 1000000,
"roomsMin": 2,
"roomsMax": 4,
"maxItems": 100,
"extractDetails": true
}

Rental apartments in Krakow

{
"location": "malopolskie/krakow",
"transaction": "rent",
"estate": "flat",
"priceMax": 4000,
"maxItems": 50,
"extractDetails": true
}

Fast listing-only scrape

{
"location": "mazowieckie/warszawa",
"estate": "flat",
"maxItems": 500,
"extractDetails": false
}

Map-drawn area

{
"location": "cala-polska",
"geometry": {
"type": "Polygon",
"coordinates": [[[21.01,52.24],[21.06,52.24],[21.06,52.28],[21.01,52.24]]]
},
"maxItems": 50
}

How to run

  1. Open the Actor in Apify Console and click Start.
  2. Fill in the Input form, or paste one of the JSON examples above.
  3. Choose Run and open the default Dataset when the run finishes.

For a first run, use maxItems: 20 and extractDetails: false. Enable extractDetails when you need descriptions, images, coordinates and seller information. The Actor handles pagination and deduplicates listings by URL.

Proxy rotation, retries and request pacing are automatic. You do not need to provide proxy credentials or any environment variables.

Pricing and billing

The Actor is billed automatically through Apify per returned listing. Every run has a minimum charge of 20 events: 11 results consume 20 events, while 21 results consume 21 events. A run with no matching listings also consumes 20 events.

On the free plan you can start 3 searches per calendar month, with up to 20 listings per search. Paid Apify plans can run larger searches according to the same minimum-charge billing shown in the Console.

Invalid filters are reported directly in the run output. If Otodom is temporarily unavailable, Apify marks the run as failed and can retry it.