Otodom Commercial Scraper - Offices, Warehouses & Plots avatar

Otodom Commercial Scraper - Offices, Warehouses & Plots

Pricing

from $20.00 / 1,000 result scrapeds

Go to Apify Store
Otodom Commercial Scraper - Offices, Warehouses & Plots

Otodom Commercial Scraper - Offices, Warehouses & Plots

Scrape commercial real estate from Otodom.pl: commercial premises (lokale użytkowe), offices, retail units, warehouses and plots for sale or rent across Poland. Prices, price per m2, surfaces, locations and agency details.

Pricing

from $20.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Otodom Commercial Scraper

Extract commercial real estate listings from Otodom.pl, Poland's largest property portal. This scraper covers the commercial branches of the site: lokale użytkowe (commercial premises), biura (offices), lokale handlowo-usługowe (retail and service units), hale i magazyny (warehouses and industrial halls) and działki (plots of land, a common investment category in Poland).

For each listing you get the price, price per square meter, surface, location down to district level, agency details and photos, as structured JSON.

What data does it extract?

FieldDescription
titleListing title
segmentCommercial segment: premises, office, retail, warehouse, plot
propertyTypeOtodom category slug: lokal, haleimagazyny, dzialka
listingTypesale or rent
pricePrice in PLN. Null when the advertiser hides it (price on application)
currencyPLN
priceUnitWhat the price means: PLN/miesiąc for rent (total per month), PLN for sale
pricePerSqmPrice per square meter where quoted
pricePerSqmUnitPLN/m2/miesiąc for rent, PLN/m2 for sale
additionalRentAdditional monthly charge (czynsz) where quoted
priceHiddenTrue when the price is on application
surfaceArea in m2 (plot area for działki)
terrainSurfaceSeparate land area in m2 where quoted
floorFloor code as reported by Otodom (GROUND, SECOND, ...)
street, city, district, provinceLocation, down to district level
latitude, longitudeGPS coordinates (detail pages)
imageUrl, imageUrlsListing photos
agencyName, agencyUrlListing agency
isPrivateOwnerTrue for private (non-agency) listings
datePublishedFirst publication date
urlFull listing URL
source, scrapedAtProvenance

A note on prices: hidden prices are normal in commercial real estate. When an advertiser quotes no price, the scraper reports price: null and priceHidden: true. It never invents a number.

How to scrape Otodom commercial real estate data

  1. Set Search Location to a Polish city or region, for example Warszawa, Kraków or Trójmiasto. The scraper resolves the name through Otodom's own location search, so results are scoped to that place, not a free-text match.
  2. Pick a Segment:
    • premises — all lokale użytkowe (about 7,800 listings countrywide)
    • office — offices (biura), a use-type filter within premises
    • retail — retail and service units (handlowo-usługowe)
    • warehouse — hale i magazyny
    • plot — działki (land)
  3. Pick a Listing Type: rent (wynajem) or sale (sprzedaż).
  4. Set Max Results and run. Results land in the dataset as structured JSON and can be exported as JSON, CSV or Excel.

You can also paste Otodom URLs directly into Start URLs — both search-result pages and individual listing pages work. Start URLs override the search inputs.

Example: offices for rent in Warsaw

{
"searchQuery": "Warszawa",
"segment": "office",
"listingType": "rent",
"maxResults": 100
}

Example: plots for sale in Kraków

{
"searchQuery": "Kraków",
"segment": "plot",
"listingType": "sale",
"maxResults": 200
}

Example output item

{
"title": "Lokal użytkowy 32 m² w Ursusie",
"segment": "premises",
"propertyType": "lokal",
"listingType": "rent",
"price": 2400,
"currency": "PLN",
"priceUnit": "PLN/miesiąc",
"pricePerSqm": 75,
"pricePerSqmUnit": "PLN/m2/miesiąc",
"additionalRent": null,
"priceHidden": false,
"surface": 32,
"terrainSurface": null,
"floor": "SECOND",
"street": "ul. Gilarska",
"city": "Warszawa",
"district": "Targówek",
"province": "mazowieckie",
"agencyName": "Example Nieruchomości",
"url": "https://www.otodom.pl/pl/oferta/lokal-uzytkowy-32-m-w-ursusie-ID4CdXf",
"source": "otodom.pl",
"scrapedAt": "2026-08-18T14:00:00.000Z"
}

Who is this for?

  • Investors and analysts tracking commercial rents and land prices per city or district
  • Brokers and agencies monitoring competing supply in a market
  • Proptech and data teams feeding Polish commercial supply into models and dashboards
  • Site-selection teams comparing retail and office availability across locations

Plots (działki) deserve a mention: land is a mainstream investment asset in Poland, and this scraper returns plot listings with price per m2, which makes cross-city comparisons straightforward.

Cost of usage

Pricing is per result: you pay a small fixed amount per listing extracted, plus a small actor-start fee. A run of 100 listings typically completes in a few minutes. The scraper uses a real browser with Polish residential proxies (Otodom sits behind Cloudflare), which is included in the per-result price.

One thing to know: a run's usage cost only settles after the run has SUCCEEDED. Failed runs are not charged per result.

Tips

  • Keep the default proxy settings (Polish RESIDENTIAL). Otodom blocks datacenter IPs.
  • premises is the widest segment; use office or retail when you want the use-type filter applied server-side instead of filtering afterwards.
  • The scraper reads Otodom's embedded JSON payloads, not the rendered HTML, so fields arrive typed and stable.
  • District-level filtering: pass a district name as the location (for example Mokotów) — Otodom's location search resolves districts too.
  • For monitoring, schedule the actor and dedupe on url downstream; datePublished tells you what is new.

Limitations

  • Coordinates are only available when scraping listing detail URLs; search results carry location names without GPS.
  • Otodom quotes commercial rents as total PLN per month. Per-m2 rents appear in pricePerSqm where the advertiser provides the surface.
  • The maxResults cap is a hard stop; the run finishes as soon as the cap is reached.

This scraper extracts publicly available listing data only. It collects no personal data beyond the agency name the advertiser publishes with the listing. You are responsible for how you use the data; check Otodom's terms of service and applicable law for your use case.

Support

Found an issue or missing a field? Open an issue on the actor's Issues tab and it will be looked at quickly.