Imobiliare.ro Real Estate Scraper
Pricing
from $0.55 / 1,000 results
Imobiliare.ro Real Estate Scraper
Scrape property listings from Imobiliare.ro — Romania's largest real estate portal. Extract price, size, rooms, location and images.
Pricing
from $0.55 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
9
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

Extract property listings from Imobiliare.ro — Romania's largest real estate portal with over 500,000 active listings for sale and rent.
What it does
Provide one or more Imobiliare.ro search URLs and the scraper will:
- Paginate through the result pages, skipping any listing it has already returned
- Extract price, surface area, rooms, floor, location, agency, days on market and images from each listing
- Filter by price range and days on market
- Optionally visit detail pages for the full description, bathrooms, postal code and publish date
- Deliver structured JSON ready for analysis, dashboards or databases
Why this scraper?
🎯 Purpose-built
A dedicated scraper for this portal, tuned to its locations, price formats and property types.
📦 Clean, consistent records
Every record follows the same structure, ready for export to JSON, CSV or Excel.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
propertyType | string | "apartments" | Type of property to scrape. |
minPrice | integer | (empty) | Minimum listing price in EUR. Listings without a published price are excluded when set. |
maxPrice | integer | (empty) | Maximum listing price in EUR. Listings without a published price are excluded when set. |
daysOld | integer | (empty) | Only return listings on the market for at most this many days. |
fetchDetails | boolean | false | ON: visits each listing page for the full description, bathrooms, postal code and publish date. OFF: search-card fields only (faster). |
maxItems | integer | 100 | Maximum number of listings to extract. Set to 0 for unlimited. |
startUrls | array | (empty) | Imobiliare.ro search URLs or listing (/oferta/...) URLs. If empty, operationType and propertyType build the search. |
operationType | string | "sale" | Whether to scrape sale or rental listings. |
maxPages | integer | 10 | Maximum result pages per search URL (30 listings per page). Set to 0 for unlimited. |
Start URL examples
https://www.imobiliare.ro/vanzare-apartamentehttps://www.imobiliare.ro/inchirieri-apartamentehttps://www.imobiliare.ro/vanzare-case-vile/cluj-napocahttps://www.imobiliare.ro/vanzare-apartamente/bucuresti?page=3
Output schema
Always present
| Field | Type | Description |
|---|---|---|
id | string | Unique listing ID |
url | string | Canonical listing URL |
operationType | string | "sale" or "rent" |
propertyType | string | "apartment", "house", "studio", "land", "commercial", "office" |
priceText | string | Price as displayed (e.g. "EUR 105.000") |
priceAmount | number | Numeric price value |
priceCurrency | string | Always "EUR" for Romania |
rooms | number | Number of rooms (null if not published) |
surfaceTotal | number | Total floor area in m² (null if not published) |
surfaceUnit | string | Always "m²" |
floor | string | Floor as shown on the card (e.g. "2 / 5"), null if not published |
streetAddress | string | Street and area as shown on the card |
city | string | City or Bucharest sector |
region | string | County |
agencyName | string | Listing agency (null for private sellers) |
daysOnMarket | number | Days since the listing went live |
images | array | Image URLs from the listing gallery |
country | string | Always "RO" |
source | string | Always "imobiliare.ro" |
scrapedAt | string | ISO timestamp of scrape |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
bathrooms | number | Number of bathrooms |
postalCode | string | Postal code (null if not published) |
descriptionText | string | Full listing description (plain text) |
descriptionMarkdown | string | Full description converted to Markdown |
publishDate | string | Publication date (YYYY-MM-DD) |
With fetchDetails: true, floor, streetAddress, region, agencyName and images are refreshed from the listing page.
Example output
{"id": "275272516","url": "https://www.imobiliare.ro/oferta/apartament-de-vanzare-floresti-mobilat-3-camere-275272516","operationType": "sale","propertyType": "apartment","priceText": "EUR 105.000","priceAmount": 105000,"priceCurrency": "EUR","rooms": 3,"bathrooms": 1,"surfaceTotal": 61,"surfaceUnit": "m²","floor": "0","streetAddress": "Str. Eroilor","city": "Florești","region": "Județul Cluj","postalCode": null,"country": "RO","agencyName": "Habitas Imobiliare","daysOnMarket": 12,"descriptionText": "Apartament modern cu 3 camere cu balcon – zona Lidl, str. Eroilor, Floresti...","images": ["https://i.roamcdn.net/prop/imo/..."],"publishDate": "2026-04-29","source": "imobiliare.ro","scrapedAt": "2026-04-30T10:00:00.000Z"}
Performance
| Run size | Typical time |
|---|---|
| 30 results | 1–2 minutes |
| 100 results | 2–5 minutes |
| 1,000 results | 15–30 minutes |
fetchDetails: true adds time per listing. Every run stops cleanly before its timeout and keeps everything collected so far.
Examples
1 — Apartments for sale in Romania
{"operationType": "sale","propertyType": "apartments","maxItems": 200}
2 — Houses for rent
{"operationType": "rent","propertyType": "houses","maxItems": 100}
3 — Scrape specific search URL
{"startUrls": [{ "url": "https://www.imobiliare.ro/vanzare-apartamente" }],"maxItems": 500}
4 — Daily feed of new listings in a price range
{"operationType": "sale","propertyType": "apartments","minPrice": 80000,"maxPrice": 150000,"daysOld": 1,"maxItems": 500}
Use cases
- Market analysis — track asking prices across Bucharest, Cluj, Timișoara or any Romanian city
- Investment research — identify undervalued listings, compare price/m² across neighbourhoods
- Portfolio monitoring — daily feed of new listings matching your criteria
- Lead generation — build lists of active sellers and agencies
💰 Pricing
$0.69 per 1,000 results — you only pay for successfully retrieved listings.
| Results | Cost |
|---|---|
| 100 | ~$0.07 |
| 1,000 | ~$0.69 |
| 10,000 | ~$6.90 |
| 100,000 | ~$69.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.41 per 1,000 at the highest tier. Use the Max items cap in the input to control your spend exactly.
Known limitations
- Some fields (surface, year built, energy label) are only returned when the lister publishes them — expect
nullon a share of records. - Listing photos and agent details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Price and recency filters are applied to the listings the search returns, so a narrow filter on a broad search reads more pages per result.
- Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
- Formats: results export to JSON, CSV and Excel from the dataset
Rate this actor
If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl