
Otodom, Imovirtual & Storia Scraper
hipersoft/olx-realestate-scraper
Scrape real estate listings from Otodom.pl (Poland), Imovirtual.com (Portugal) and Storia.ro (Romania): flats, houses, land, commercial and rooms for sale or rent. Price, price per m², area, rooms, floor, address, agency, photos, date.
Total users
2Monthly users
1Total runs
29Per listing
$0.002Last rebuilt
Oct 26, 2026Overview
Otodom, Imovirtual & Storia Scraper extracts real estate listings from three leading national property portals: Otodom.pl (Poland), Imovirtual.com (Portugal) and Storia.ro (Romania). It covers flats, houses, land, commercial premises and rooms, for sale or rent. Each listing includes the price, price per m², area, plot area, rooms, floor, street, city, region, location path, agency or private owner, development, tags, photo and posting date. Paste any search link or use the built-in filters, then export to CSV, Excel or JSON.
What does it do?
- 🇵🇱 Otodom.pl: Poland's #1 property portal (150,000+ flats for sale alone).
- 🇵🇹 Imovirtual.com: Portugal's leading property portal.
- 🇷🇴 Storia.ro: Romania's leading property portal.
- 🔗 Any search link with your filters (city, district, price, rooms, area, market…), or simple site/deal/type/price filters.
- 📐 Price per m² and area for every listing, ready for price analytics.
- 🏢 Agency or private owner, plus new-development name and link.
- ♾️ Deep pagination: collect thousands of listings per search.
What data can you scrape?
| Field | Example |
|---|---|
title, propertyType, transaction |
Nowe 2 pokoje z tarasem, FLAT, RENT |
price, currency |
3,250 PLN |
pricePerM2 |
88.7 |
extraRentFee |
Additional monthly fees (Poland) |
areaM2, plotAreaM2 |
36.64 m² |
rooms, floor |
2, 0 |
street, city, region, locationPath |
Tarnogórska, Warszawa, mazowieckie |
sellerType, agencyName |
agency, homfi sp. z o.o. |
development, developmentUrl |
New-build project |
tags |
TERRACE, GROUND_FLOOR… |
imageUrl, imageCount |
Photo and number of photos |
postedAt, url |
Posting date and link |
Use cases
- Real estate investors: compare price per m² across cities, districts and countries.
- Agencies and developers: monitor competitor stock, prices and new developments.
- Rental market analysis: track rents and yields in Warsaw, Lisbon, Bucharest and beyond.
- Proptech and valuation models: training data with prices, areas, rooms and locations.
- Lead generation: lists of agencies and private-owner listings.
- Alerts: schedule runs to catch new listings and price changes.
How to use it
- Click Try for free to open the scraper in Apify Console.
- Run a search on otodom.pl, imovirtual.com or storia.ro and copy the results link, or choose a site, deal, property type and price range.
- Set Max listings and click Start.
- Download the listings as CSV, Excel or JSON.
Input example
{
"startUrls": [
"https://www.otodom.pl/pl/wyniki/wynajem/mieszkanie/mazowieckie/warszawa/warszawa/warszawa",
"https://www.imovirtual.com/pt/resultados/comprar/apartamento/lisboa"
],
"maxItems": 2000
}
Output example
{
"id": "68379037",
"site": "otodom",
"country": "PL",
"url": "https://www.otodom.pl/pl/ad/nowe-2-pokoje-z-tarasem-ID4CUwH",
"title": "Nowe 2 pokoje z tarasem",
"transaction": "RENT",
"propertyType": "FLAT",
"price": 3250,
"currency": "PLN",
"pricePerM2": 88.7,
"areaM2": 36.64,
"rooms": 2,
"floor": 0,
"street": "Tarnogórska",
"city": "Warszawa",
"region": "mazowieckie",
"locationPath": ["mazowieckie", "Warszawa", "Targówek", "Zacisze"],
"sellerType": "agency",
"agencyName": "homfi sp. z o.o.",
"tags": ["TERRACE", "GROUND_FLOOR"],
"postedAt": "2026-09-03T14:25:11Z"
}
How much does it cost?
The scraper uses pay-per-listing pricing: a small fixed price per listing, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More real estate data
- Cian.ru Scraper: Russian real estate.
- Redfin Scraper: US homes for sale.
- Otomoto, Autovit & StandVirtual Scraper: car listings from the same countries.
FAQ
Which sites are supported? Otodom.pl, Imovirtual.com and Storia.ro. Mix links from all three in one run.
How do I scrape one city? Search for the city on the website, copy the results link and paste it into Search links.
Are rents monthly?
Yes. For rentals, price is the monthly rent. On Otodom, extraRentFee holds the additional monthly fees when listed.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate it with other apps? The scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Original clean-room implementation. Returns only public data; you are responsible for compliance with each site's terms. Not affiliated with Otodom, Imovirtual, Storia or OLX Group.
Input
| Field | Type | Description |
|---|---|---|
startUrlsSearch links | array | Search result links from otodom.pl, imovirtual.com or storia.ro with any filters (city, district, price, rooms…), e.g. https://www.otodom.pl/pl/wyniki/wynajem/mieszkanie/mazowieckie/warszawa/warszawa/warszawa. When empty, the filters below are used. |
siteSite | string · otodom, imovirtual, storia | Which marketplace to search (whole country). Default: "otodom" |
dealTypeDeal | string · sale, rent | Sale or rent. Default: "sale" |
propertyTypeProperty type | string · flat, house, land, commercial, room | Type of property. Default: "flat" |
priceFromPrice from | integer | Minimum price in the site's currency (PLN for Otodom, EUR for Imovirtual and Storia). Default: 0 |
priceToPrice to | integer | Maximum price. 0 means no limit. Default: 0 |
maxItemsMax listings | integer | Stop after this many listings. 0 means all. Default: 200 |
proxyConfigurationProxy configuration | object | Not required for normal use. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~olx-realestate-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [
"https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/mazowieckie/warszawa/warszawa/warszawa"
],
"maxItems": 100
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/olx-realestate-scraper").call(run_input={
"startUrls": [
"https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/mazowieckie/warszawa/warszawa/warszawa"
],
"maxItems": 100
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/olx-realestate-scraper').call({
"startUrls": [
"https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/mazowieckie/warszawa/warszawa/warszawa"
],
"maxItems": 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Listing One property listing in the dataset. | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.