Nordic Real Estate Portal Scraper avatar

Nordic Real Estate Portal Scraper

Pricing

Pay per event

Go to Apify Store
Nordic Real Estate Portal Scraper

Nordic Real Estate Portal Scraper

Scrape active property listings from Hemnet (Sweden), Finn.no (Norway), Boligsiden (Denmark), and Etuovi (Finland) in one run. Returns asking price, living area, room count, property type, and address in a single unified schema across all four Nordic markets.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

17 days ago

Last modified

Categories

Share

Scrape active property listings from Hemnet (Sweden), Finn.no (Norway), Boligsiden (Denmark), and Etuovi (Finland) in a single run. Returns asking price, living area, room count, and address for each listing, normalized into one schema across all four markets.


Nordic Real Estate Portal Scraper Features

  • Covers all four major Nordic real estate markets in one actor — no juggling four separate scrapers
  • Extracts the core listing facts per property — asking price, living area, room count, and address — into a single unified schema regardless of source market
  • Filters by listing type: for-sale listings, rentals, or both. Asking for both means both — every selected platform is queried for sale and rental results
  • Respects per-country quotas, distributing maxItems evenly across selected countries
  • Handles the Cloudflare-protected portals (Hemnet, Boligsiden) automatically, along with the two JavaScript-heavy portals (Finn.no, Etuovi)
  • Returns property type where the source's search results expose it (Hemnet, Boligsiden) and monthly fee where it's shown on the card (Hemnet, Etuovi)

What Can You Do With Nordic Real Estate Data?

  • Real estate investors — Screen asking prices and living areas across four markets in one pass, before narrowing down to the listings worth a closer look
  • Market analysts — Track current asking-price and room-count distributions across Sweden, Norway, Denmark, and Finland without stitching together four separate feeds
  • Proptech builders — Feed active listings into a multi-market search or price-comparison tool
  • Relocation services — Pull current inventory across the region into a client-facing shortlist
  • Academic researchers — Snapshot pan-Nordic asking-price and floor-area data for comparative housing studies

How Nordic Real Estate Portal Scraper Works

  1. Pick which countries to include (SE, NO, DK, FI) and how many listings you want back. Leave countries empty to scrape all four.
  2. Set listingType to sale, rent, or allall queries every selected platform for both sale and rental listings.
  3. The scraper works through each platform's search results in turn, pulling listing ID, price, area, rooms, and address straight off the listing cards.
  4. Records are normalized into one schema and saved to the dataset — the same field names whether the listing came from Stockholm or Helsinki.

Input

{
"countries": ["SE", "NO", "DK", "FI"],
"listingType": "sale",
"maxItems": 50
}
FieldTypeDefaultDescription
countriesarray["SE","NO","DK","FI"]Country codes to scrape. Valid values: SE (Hemnet), NO (Finn.no), DK (Boligsiden), FI (Etuovi). Leave empty to scrape all.
listingTypestring"sale"Filter by listing type. "sale" for properties for sale, "rent" for rentals, "all" for both sale and rental listings on every selected platform.
maxItemsinteger10Maximum number of records to return across all selected countries.

Single country example:

{
"countries": ["NO"],
"listingType": "rent",
"maxItems": 100
}

Nordic Real Estate Portal Scraper Output Fields

{
"listing_id": "20043617",
"country": "FI",
"platform": "etuovi",
"url": "https://www.etuovi.com/kohde/20043617",
"listing_type": "sale",
"property_type": null,
"title": "Runeberginkatu 35, Helsinki",
"price": 385000,
"currency": "EUR",
"monthly_fee": 320,
"area_living_m2": 68.5,
"area_total_m2": null,
"rooms": 3,
"bedrooms": null,
"year_built": null,
"year_renovated": null,
"energy_class": null,
"tenure": null,
"address": "Runeberginkatu 35",
"city": null,
"postal_code": null,
"municipality": null,
"region": null,
"latitude": null,
"longitude": null,
"broker_firm": null,
"broker_name": null,
"broker_email": null,
"broker_phone": null,
"days_on_market": null,
"listed_at": null,
"sold_at": null,
"sold_price": null
}

Field coverage varies by platform. A Hemnet (Sweden) record, for example, also fills in property_type and city:

{
"listing_id": "18442201rum3-45-stockholm-sodermalm-gotgatan",
"country": "SE",
"platform": "hemnet",
"url": "https://www.hemnet.se/bostad/lagenhet-3rum-sodermalm-stockholms-kommun-gotgatan-18442201",
"listing_type": "sale",
"property_type": "Lägenhet",
"title": "Götgatan 45",
"price": 4950000,
"currency": "SEK",
"monthly_fee": 3200,
"area_living_m2": 72,
"rooms": 3,
"address": "Götgatan 45",
"city": "Södermalm, Stockholms kommun"
}
FieldTypeDescription
listing_idstringUnique listing identifier from the source platform
countrystringCountry code: SE, NO, DK, or FI
platformstringSource platform: hemnet, finn, boligsiden, or etuovi
urlstringDirect URL to the listing page
listing_typestringsale or rent — reflects what was actually queried for that record
property_typestringProperty type in local language (villa, apartment, terraced house, etc.). Populated for Hemnet and Boligsiden; null on Finn.no and Etuovi
titlestringFull listing title
pricenumberAsking price in local currency
currencystringCurrency code: SEK, NOK, DKK, or EUR
monthly_feenumberMonthly housing association fee or common expenses. Populated for Hemnet and Etuovi; null on Finn.no and Boligsiden
area_living_m2numberLiving area in square metres
area_total_m2numberTotal area including auxiliary space — not currently populated
roomsintegerTotal number of rooms
bedroomsintegerNumber of bedrooms — not currently populated
year_builtintegerYear the property was built — not currently populated
year_renovatedintegerYear of last renovation — not currently populated
energy_classstringEnergy efficiency class (A-G) — not currently populated
tenurestringTenure type: owned, cooperative, or rental — not currently populated
addressstringStreet address as shown on the listing card
citystringCity name. Populated for Hemnet; null on Finn.no, Boligsiden, and Etuovi
postal_codestringPostal code — not currently populated
municipalitystringMunicipality name — not currently populated
regionstringRegion or county name — not currently populated
latitudenumberLatitude coordinate — not currently populated
longitudenumberLongitude coordinate — not currently populated
broker_firmstringBrokerage firm name — not currently populated
broker_namestringIndividual broker or agent name — not currently populated
broker_emailstringBroker contact email — not currently populated
broker_phonestringBroker contact phone number — not currently populated
days_on_marketintegerDays the listing has been active — not currently populated
listed_atstringDate the listing was published (ISO 8601) — not currently populated
sold_atstringDate the property was sold (ISO 8601) — not currently populated
sold_pricenumberFinal sold price in local currency — not currently populated

Coverage note: Nordic Real Estate Portal Scraper reads each platform's listing search results — it does not open individual listing pages. That's why property_type, monthly_fee, and city are filled in on some platforms and not others (each site shows a different set of details on its search cards), and why area_total_m2, bedrooms, year_built, year_renovated, energy_class, tenure, postal_code, municipality, region, latitude, longitude, broker_firm, broker_name, broker_email, broker_phone, days_on_market, listed_at, sold_at, and sold_price are declared in the output schema but return null on every record today. If your workflow needs any of those fields, file an issue and tell us which ones.


FAQ

How do I scrape all four Nordic real estate markets at once?

Nordic Real Estate Portal Scraper runs all four by default. Set countries to ["SE","NO","DK","FI"] (or leave it empty) and the scraper visits each platform in sequence, distributing maxItems evenly across the selected countries.

What data can I get from Hemnet, Finn.no, Boligsiden, and Etuovi?

Nordic Real Estate Portal Scraper returns what's visible on each platform's search results: price, currency, living area, room count, address, and listing type on every record, plus property type and monthly fee where the source site shows them on the card. See the Coverage note above for the fields it doesn't return yet.

Does it include sold prices or broker contact details?

No. Nordic Real Estate Portal Scraper extracts active listing search results, not individual listing pages or historical sales data. sold_price, sold_at, broker_name, broker_email, and broker_phone are declared in the schema but return null on every record.

How much does it cost to run?

Nordic Real Estate Portal Scraper uses pay-per-event pricing at ~$0.002 per listing. A run returning 1,000 listings across all four countries costs roughly $2 plus the Apify compute overhead.

Can I filter by listing type?

Set listingType to "sale" for properties for sale, "rent" for rentals, or "all" to include both — "all" queries every selected platform for sale and rental listings. Rental inventory varies by platform.


Need More Features?

Need additional fields, different markets, or a custom filter? File an issue or get in touch.

Why Use Nordic Real Estate Portal Scraper?

  • Pan-Nordic coverage — Four countries, four platforms, one actor. No integrating four separate scrapers.
  • Unified schema — Output fields are consistent regardless of source. price is always a number, currency tells you the unit, and field names stay the same whether you're pulling from Sweden or Finland.
  • One quota, four markets — Set maxItems once and it's split across every country you select, instead of running four separate jobs to balance coverage yourself.