ActorStack.dev

How to scrape Imobiliare.ro after its bot protection arrived

Imobiliare.ro put DataDome in front of its searches in October 2026. What changed for a scraper, what the listing rows contain, the 9,990-result ceiling, the location trap, and how private sellers are handled.

By Oswaldo Carabano7 min read

Short answer

Imobiliare.ro can still be scraped without a login, but since October 2026 not with plain HTTP: the portal put DataDome bot protection in front of every search and listing page, which answered 403 to plain clients from data-centre and residential IPs alike. The Imobiliare.ro Scraper now opens a real browser session through residential IPs outside Romania, reads results inside it, and drops any route that is served a CAPTCHA instead of solving it. A listing row carries a median of 66 filled fields, measured on 480 listings, and a single search pages through at most 9,990 results, so larger searches are split by sub-location.

Key points

  • Imobiliare.ro answered plain HTTP clients with 403 from both data-centre and residential IPs once DataDome protection was added in October 2026.
  • The Imobiliare.ro Scraper opens a real browser session at the start of each run, which typically takes 20 to 60 seconds, and drops any route served a CAPTCHA.
  • Imobiliare.ro pages through at most 9,990 results per search, while Bucharest apartments for sale alone held about 26,000 listings.
  • An unknown location slug makes imobiliare.ro return the entire country with HTTP 200, so a scraper has to detect the substitution itself.
  • Private persons were 81 of 480 advertisers measured on imobiliare.ro, and up to 55% on Bucharest rentals.
On this page8 sections

Imobiliare.ro is one of Romania's main property portals: apartments, studios, houses, land, commercial space and offices, for sale and for rent, in every county. Until October 2026 it could be read with plain HTTP requests. Then it could not, and that change shapes everything else about scraping it.

What changed in October 2026

In early October imobiliare.ro put DataDome bot protection in front of all searches and listing pages. Plain HTTP clients started receiving HTTP 403 — from Apify's data-centre IPs and from residential IPs alike. The home page, the RSS feed and the sitemaps stayed open, but none of them carry listing data.

The Imobiliare.ro Scraper answered with a different route, not a workaround of a login: there is still no account and no session cookie of anyone's. Each run opens a real browser session through residential IPs that exit outside Romania, racing two routes and keeping the one that passes, and then reads the results from inside that page. If a route is served a CAPTCHA, the Actor drops it. It never solves one, and if every route were served one, the run would stop and say so.

The cost of that is time and memory: the session takes 20 to 60 seconds to open, and the default memory is 4 GB. The default 100-listing run finished in 48 seconds on build 0.2.7, with a peak of 1,254 MB.

What a listing row holds

From search results alone, a listing row carries a median of 66 filled fields, measured on 480 listings across 14 searches on 23 September 2026:

FieldFill rate (n = 480)
price, currency, description, images100%
price_period99.4%
days_on_market98.8%
surface_m294.2%
usable_surface_m282.5%
year_built78.8%
rooms78.5% (100% on apartments and houses)
metro_distance_m23.1% (44% on Bucharest rentals)
previous_price4.6%

That sample predates the bot protection. A smaller re-measurement on the browser-based build 0.2.7 on 6 October gave a median of 74 fields on 100 listing rows — higher, but on a fifth of the sample, so the 480-row figure stays the published one. Why the smaller, better number does not replace it is the subject of measured fill rates, not promises.

Step 1 — choose a location the site knows

The location is the path segment of an imobiliare.ro search URL: bucuresti, bucuresti/sector-1, judetul-cluj/cluj-napoca, judetul-timis/timisoara. Empty means all of Romania.

input.json
{
  "offerType": "rent",
  "propertyType": "apartments",
  "location": "judetul-cluj/cluj-napoca",
  "sort": "latest",
  "maxItems": 60
}

Filters follow the same rule as on Fotocasa: only those verified to change the result are offered. A maximum price of 100,000 EUR cut Bucharest apartments for sale from 25,983 to 5,733.

Step 2 — plan around 9,990 results

The site pages through at most 9,990 results for one search, at 30 per page. Bucharest apartments for sale held about 26,000 when measured, so one search reaches well under half of them. Above the ceiling the Actor continues by sub-location — Bucharest by sector, for example — and maxItems stays a hard cap on what is delivered.

Step 3 — listing pages and coordinates

Coordinates do not need listing pages. One extra request per search reads the portal's map, which knows every listing on searches under 10,000 results, at no extra charge. On a Cluj-Napoca search that gave coordinates on 60 of 60 rows; on a Bucharest search of about 26,000 it gave 74 of 100, because the map returns at most 10,000 pins.

includeDetails adds creation, publication and modification dates (60 of 60), bathrooms (58 of 60), street address (44 of 60), every characteristic and amenity, and the agency's legal name and address (51 of 60). A listing page costs about 20 times the bandwidth of a search result and is slower behind the protection, so it is off by default. With listing pages the median was 82 fields on 60 rows in the 6 October re-measurement — the lower of the two measurements taken.

Private sellers and the GDPR

Private persons were 81 of the 480 advertisers measured, 16.9%, and up to 55% on Bucharest rentals. On their rows the advertiser name is the person's own name, and 7.8% of those 81 descriptions contained a phone number.

By default the Actor nulls the name, account and agency fields on those rows, strips phone numbers and e-mails from the title and description, and flags the row seller_contact_redacted. Any seller type it cannot classify is treated as private. Agencies and developers are always delivered in full. It never presses the portal's “show phone” button for anyone. includePrivateSellerContact exists for users who have a lawful basis to process that data under the GDPR; Romania's supervisory authority is the ANSPDCP.

robots.txt and the terms

The robots.txt fetched on 10 October 2026 has 69 Disallow and 11 Allow lines. It allows search pages 2 to 10 and disallows the rest:

www.imobiliare.ro/robots.txt — excerpt
Disallow: /*page=*
Disallow: /*price=*
Disallow: /*sort=*
Disallow: /api/
Disallow: /map/*
Allow: /*?page=2$
...
Allow: /*?page=10$

The Actor pages beyond page 10, uses filter and sort parameters, and reads the map for coordinates. It does not apply robots.txt as a filter, and this page says so rather than leaving it to be discovered. That is a different position from the one described in reading robots.txt as a specification, and the difference is stated here rather than left to be assumed.

The site's terms and conditions contain one explicit clause against automated extraction, in the section on ImoAI, the portal's AI assistant: it forbids crawling or scraping ImoAI's answers. The Actor does not use ImoAI and never creates an account.

What a run costs

$0.0012 per listing, $0.0025 per listing page, $0.0012 per agency, and a start fee of $0.005 per GB of memory — $0.02 at the default 4 GB, which covers opening the browser session. A thousand listings costs $1.22 including the start; with listing pages, $3.72. Duplicates and error rows are not charged, and a maximum-cost setting stops the run cleanly without delivering a row it did not charge.

For how Imobiliare.ro compares with the Spanish and Korean portals, see the three portals compared.

Frequently asked questions

Why does the Imobiliare.ro Scraper use a browser when the Fotocasa one does not?
Imobiliare.ro answers plain HTTP clients with 403 since its October 2026 bot protection, while Fotocasa's search endpoint still answers them. The browser is the cost of reaching the same public pages a visitor sees, not a way around a login.
Can I scrape a single imobiliare.ro listing URL?
Not as a start URL: the Imobiliare.ro Scraper accepts search pages only and rejects a listing URL with an uncharged error row. Listing pages are reached by turning on `includeDetails` for the listings a search returns.
How long does a small Imobiliare.ro run take?
The default 100-listing run finished in 48 seconds on build 0.2.7 at 4 GB on the Apify platform, most of it spent opening the browser session rather than reading results.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 10 Oct 2026
    Imobiliare.ro Scraper — Actor README and input schemaActorStack / Apify Store
  2. Site declarationchecked 10 Oct 2026
    www.imobiliare.ro/robots.txtImobiliare.ro
  3. Operator claimchecked 10 Oct 2026
    Termeni și condițiiImobiliare.ro
  4. Law or regulatorchecked 10 Oct 2026
    Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter PersonalANSPDCP (Romania)
  5. Law or regulatorchecked 18 Aug 2026
    Art. 14 GDPR — Information to be provided where personal data have not been obtained from the data subjectRegulation (EU) 2016/679
A laptop screen showing a plain text-mode terminal with a command prompt.
PropertyGuide

How to scrape Fotocasa

A working method for extracting Spanish property listings from Fotocasa: picking a location from its ID tree, filters that actually filter, the pagination wall at page 392, and when a detail page is worth 65 times the bandwidth.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
PropertyGuide

Property portals compared

Fotocasa, Imobiliare.ro and Zigbang publish listing data in three different shapes, behind three different access models, with three different robots.txt files. What each one gives you, where each one stops, and what the measured fill rates actually say.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
PropertyGuide

Zigbang API

Zigbang has no public listings API. What its public data contains, how monthly rent, jeonse and sale are represented, the land-registry keys on every detail page, the licensed agents behind the listings, and what Zigbang's robots.txt says.

7 min