Nordic Real Estate Portal Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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
maxItemsevenly 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
- Pick which countries to include (
SE,NO,DK,FI) and how many listings you want back. Leavecountriesempty to scrape all four. - Set
listingTypetosale,rent, orall—allqueries every selected platform for both sale and rental listings. - The scraper works through each platform's search results in turn, pulling listing ID, price, area, rooms, and address straight off the listing cards.
- 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}
| Field | Type | Default | Description |
|---|---|---|---|
countries | array | ["SE","NO","DK","FI"] | Country codes to scrape. Valid values: SE (Hemnet), NO (Finn.no), DK (Boligsiden), FI (Etuovi). Leave empty to scrape all. |
listingType | string | "sale" | Filter by listing type. "sale" for properties for sale, "rent" for rentals, "all" for both sale and rental listings on every selected platform. |
maxItems | integer | 10 | Maximum 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"}
| Field | Type | Description |
|---|---|---|
listing_id | string | Unique listing identifier from the source platform |
country | string | Country code: SE, NO, DK, or FI |
platform | string | Source platform: hemnet, finn, boligsiden, or etuovi |
url | string | Direct URL to the listing page |
listing_type | string | sale or rent — reflects what was actually queried for that record |
property_type | string | Property type in local language (villa, apartment, terraced house, etc.). Populated for Hemnet and Boligsiden; null on Finn.no and Etuovi |
title | string | Full listing title |
price | number | Asking price in local currency |
currency | string | Currency code: SEK, NOK, DKK, or EUR |
monthly_fee | number | Monthly housing association fee or common expenses. Populated for Hemnet and Etuovi; null on Finn.no and Boligsiden |
area_living_m2 | number | Living area in square metres |
area_total_m2 | number | Total area including auxiliary space — not currently populated |
rooms | integer | Total number of rooms |
bedrooms | integer | Number of bedrooms — not currently populated |
year_built | integer | Year the property was built — not currently populated |
year_renovated | integer | Year of last renovation — not currently populated |
energy_class | string | Energy efficiency class (A-G) — not currently populated |
tenure | string | Tenure type: owned, cooperative, or rental — not currently populated |
address | string | Street address as shown on the listing card |
city | string | City name. Populated for Hemnet; null on Finn.no, Boligsiden, and Etuovi |
postal_code | string | Postal code — not currently populated |
municipality | string | Municipality name — not currently populated |
region | string | Region or county name — not currently populated |
latitude | number | Latitude coordinate — not currently populated |
longitude | number | Longitude coordinate — not currently populated |
broker_firm | string | Brokerage firm name — not currently populated |
broker_name | string | Individual broker or agent name — not currently populated |
broker_email | string | Broker contact email — not currently populated |
broker_phone | string | Broker contact phone number — not currently populated |
days_on_market | integer | Days the listing has been active — not currently populated |
listed_at | string | Date the listing was published (ISO 8601) — not currently populated |
sold_at | string | Date the property was sold (ISO 8601) — not currently populated |
sold_price | number | Final 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, andcityare filled in on some platforms and not others (each site shows a different set of details on its search cards), and whyarea_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, andsold_priceare declared in the output schema but returnnullon 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.
priceis always a number,currencytells you the unit, and field names stay the same whether you're pulling from Sweden or Finland. - One quota, four markets — Set
maxItemsonce and it's split across every country you select, instead of running four separate jobs to balance coverage yourself.