ActorStack.dev

Property portal data from Spain, Romania and Korea, 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.

By Oswaldo Carabano7 min read

Short answer

Fotocasa (Spain), Imobiliare.ro (Romania) and Zigbang (South Korea) can all be read without an account, but by three different routes: Fotocasa and Zigbang through public JSON endpoints with no browser, Imobiliare.ro through a real browser session since it added DataDome bot protection in October 2026. Measured fill rates differ in sample and shape — a median of 45 of 78 fields on 3,184 Fotocasa listings, 66 fields on 480 Imobiliare.ro listings, and price, area and coordinates on 718 of 718 Zigbang listings. Prices are not comparable across the three: Spanish and Romanian rows are EUR asking prices, while Korean rows split into monthly rent, jeonse deposits and sale prices in KRW.

Key points

  • Fotocasa and Zigbang answer plain HTTP requests without a browser, while Imobiliare.ro has required a real browser session through residential IPs since October 2026.
  • Each portal bounds a search differently: Fotocasa stops at page 392, Imobiliare.ro at 9,990 results, and a Zigbang search is bounded by its radius and a 10,000-row cap per run.
  • Private advertisers were 11.7% of 2,164 Fotocasa listings and 16.9% of 480 Imobiliare.ro listings, while all 718 Zigbang detail pages measured carried a broker registration number.
  • Zigbang's robots.txt disallows everything for unnamed crawlers, Imobiliare.ro's allows only search pages 2 to 10, and Fotocasa's listing API host returns 404 for robots.txt.
  • A Korean jeonse deposit is not a rent and not a price, so a Zigbang average that mixes deal types measures nothing.
On this page7 sections

Three national property portals, three Actors, and almost nothing in common below the surface. Fotocasa in Spain, Imobiliare.ro in Romania and Zigbang in South Korea all show a signed-out visitor a list of properties with a price, a size and a map pin. How that list reaches a scraper, how deep it goes, who the advertiser is and what the price even means differ on every axis. This guide puts the three side by side so the differences are decisions rather than surprises.

Three portals, three access routes

Fotocasa loads its search results from a JSON endpoint on a separate host, web.gw.fotocasa.es, which answered without authentication, cookies or special headers when measured. The Fotocasa Scraper reads that endpoint with plain HTTP, no browser, no proxy by default.

Zigbang is an app-first rental platform whose website reads a public JSON API on apis.zigbang.com. The Zigbang Scraper reads it the same way — plain HTTP, no login — and in 54 platform runs it was never refused.

Imobiliare.ro used to be the same story and stopped being so in October 2026, when the portal put DataDome bot protection in front of every search and listing page. Plain clients now get HTTP 403 from data-centre and residential IPs alike, so the Imobiliare.ro Scraper opens a real browser session through residential IPs and reads results inside it. It does not solve CAPTCHAs; a route that gets one is dropped. The details are in the Imobiliare.ro guide.

What each portal publishes

Fill rates below are from each Actor's own measurement, with its sample. They describe the shape of each portal's data on the day measured, not a ranking — the samples were taken on different dates with different search mixes. Why the sample size travels with every number is explained in measured fill rates, not promises.

FieldFotocasa (n = 3,184)Imobiliare.ro (n = 480)Zigbang (n = 718)
Price100%, EUR100%, currency per row100% for the deal type, KRW
Surface99.9%94.2% total, 82.5% usable100%, m² and pyeong
Rooms67.9%78.5%Room layout on detail pages, 100%
Coordinates100%From the map: 60/60 and 74/100 on two searches100%, map point
Numeric floor45.7%About 99% on apartments72.8%
Fields per row (median)45 of 7866Not published with a sample

Each portal also has something the others do not. Fotocasa gives an eight-level location tree with a numeric ID at every level and tags photos by the room they show. Imobiliare.ro gives year built, construction stage and days on market. Zigbang gives the parcel number Korean land registers use and the registration number of the licensed broker behind every listing.

Where a single search stops

None of the three hands over its whole inventory to one query, and each stops differently:

  • Fotocasa stops returning new listings after page 392 — about 11,760 at 30 per page — and then repeats the same 30 with HTTP 200. The Actor detects the end by duplicate IDs and splits large searches along the location tree.
  • Imobiliare.ro pages through at most 9,990 results per search. Bucharest apartments for sale alone held about 26,000, so the Actor continues by sub-location.
  • Zigbang is searched by a centre and a radius, from 0.2 to 20 km, with a cap of 10,000 rows per run. Coverage is a question of choosing the area well.

The pattern is the same one Zonaprop's coverage ceiling forces in Argentina: coverage comes from more, narrower searches, never from paging deeper into a broad one.

What each robots.txt says

The three files, fetched on 10 October 2026, say three very different things, and the three Actors do not treat them the same way. This project's general position is in reading robots.txt as a specification; what follows is what these three Actors actually do, stated plainly.

  • Fotocasa. The robots.txt on www.fotocasa.es has 297 Disallow lines, including every search page from /l/2 onward. The listing API host web.gw.fotocasa.es returned 404 for robots.txt, which under RFC 9309 means a crawler may access any resource there. Listings come from that host. Detail pages come from www, where paths under Madrid, Barcelona and Valencia are disallowed; the Actor honours that only when respectRobotsTxt is on, and it is off by default.
  • Imobiliare.ro. The file allows search pages 2 to 10 and disallows deeper pages, any filter or sort parameter, /api/ and /map/*. The Actor pages beyond page 10, uses filters and sort orders, and requests the map for coordinates: it does not apply robots.txt as a filter.
  • Zigbang. Both www.zigbang.com and apis.zigbang.com disallow everything for user agents other than a list of named search engines, and the main file opens with a notice that crawling is prohibited without express written permission. The Actor does not apply robots.txt as a filter.

Private advertisers and personal data

An agency's phone is published for the purpose of being called. A private seller's is not the same kind of data, and the three portals have very different shares of private sellers:

  • Fotocasa: 11.7% of 2,164 listings sampled in rural provinces, where private advertisers concentrate. Fotocasa published a phone for none of the 253 private advertisers in that sample, and the Actor redacts their contact fields anyway — including phone numbers typed into the description.
  • Imobiliare.ro: 81 of 480 advertisers (16.9%), reaching 55% on Bucharest rentals. Name, account and any phone or e-mail in the text are hidden by default.
  • Zigbang: 718 of 718 detail pages carried a brokerage registration number. No private advertiser was observed; if one appears, their contacts are removed by default.

The reasoning under the GDPR, Article 14 in particular, is the same one set out for personal data in classifieds.

Why the prices do not compare

Fotocasa and Imobiliare.ro rows are asking prices, almost always in euros, with a sale price or a rent per period. That is already two quantities that should never share a mean.

Zigbang adds a third. A Korean listing is monthly rent (월세: a deposit plus a monthly payment), jeonse (전세: a large returnable deposit and no monthly rent) or sale (매매). A jeonse deposit of several hundred million won is neither a rent nor a price, and averaging it with either produces a number that describes nothing. Keep deal_type as a grouping column, always.

Which portal answers which question

Frequently asked questions

Do the three property Actors use an official portal API?
No. The Fotocasa, Imobiliare.ro and Zigbang Actors read the same public data the websites load for a signed-out visitor, which is why each one documents the endpoint behaviour it measured rather than a published contract.
Which of the three portals is the most expensive to scrape?
Per 1,000 listings without detail pages, Fotocasa costs $0.95, Imobiliare.ro $1.22 including its start fee at the default 4 GB, and Zigbang $1.90. Detail pages change the order: $6 per 1,000 on Fotocasa, $2.50 on Imobiliare.ro and $0.75 on Zigbang.
Can I merge Fotocasa, Imobiliare.ro and Zigbang listings into one table?
Only on the fields that mean the same thing — coordinates, surface, rooms, a listing URL. Price needs the currency and, for Korea, the deal type kept as separate columns, because a jeonse deposit and a Spanish asking price are different quantities.

Sources

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

  1. Operator claimchecked 10 Oct 2026
    Fotocasa Scraper — Actor README and input schemaActorStack / Apify Store
  2. Operator claimchecked 10 Oct 2026
    Imobiliare.ro Scraper — Actor README and input schemaActorStack / Apify Store
  3. Operator claimchecked 10 Oct 2026
    Zigbang Scraper — Actor README and input schemaActorStack / Apify Store
  4. Site declarationchecked 10 Oct 2026
    www.fotocasa.es/robots.txtFotocasa (Adevinta)
  5. Site declarationchecked 10 Oct 2026
    www.imobiliare.ro/robots.txtImobiliare.ro
  6. Site declarationchecked 10 Oct 2026
    www.zigbang.com/robots.txtZigbang
  7. Platform docschecked 10 Oct 2026
    RFC 9309 — Robots Exclusion ProtocolIETF / RFC Editor
  8. 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

How to scrape Imobiliare.ro

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.

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