Hemnet Scraper [Only $1.2/1k💰] | Slutpriser | Sweden Prices
Pricing
from $1.20 / 1,000 results
Hemnet Scraper [Only $1.2/1k💰] | Slutpriser | Sweden Prices
Scrape Sweden's largest property portal hemnet.se: asking prices, sold prices (slutpriser), price per m², broker and agency data, coordinates, and images. No browser needed. Export JSON/CSV.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Hemnet Scraper — Swedish Property Prices & Sold Prices (Slutpriser)
Scrape hemnet.se — Sweden's largest property portal — without an official API. Extract asking prices, sold prices (slutpriser), price per m², rooms, living area, monthly fee, broker and agency, coordinates, and images from Swedish real estate listings for market analysis, valuations, and broker lead generation.
Main Use Cases
- Swedish property price monitoring — track asking and sold prices across municipalities, property types, and price bands
- Sold price analysis (slutpriser) — compare final sale price vs asking price with
priceChangeSekandpriceChangePercentfor valuation comps - Price per m² benchmarking (kr/m²) — compare
squareMeterPriceSekacross Stockholm, Göteborg, Malmö, and every Swedish kommun - Broker & agency lead generation — collect
brokerNameandbrokerAgencyNamewith listing details for Swedish realtor prospecting - Swedish real estate market research — build a time series of
askingPriceSek,finalPriceSek,daysOnHemnet, andsoldAtfor trend analysis - Nordic proptech & housing datasets — seed a Sweden house-price dataset with structured JSON rows for apps, dashboards, and models
What Data Does the Hemnet Scraper Extract?
One dataset row per listing, with all fields as clean types — prices in SEK integers, areas in m², ISO 8601 timestamps, and real image URLs.
For-sale rows include: askingPriceSek, feeSek, runningCostsSek, squareMeterPriceSek, numberOfRooms, livingAreaSqm, landAreaSqm, streetAddress, area, municipality, region, latitude, longitude, housingForm, tenure, constructionYear, energyClass, daysOnHemnet, brokerName, brokerAgencyName, description, labels, mainImageUrl, imageCount, imageUrls.
Sold rows (slutpriser) add: finalPriceSek, priceChangeSek, priceChangePercent, soldAt.
The actor covers all Hemnet sections: /bostader (for sale), /salda/bostader (sold prices), and /kommande/bostader (upcoming) — driven by the section in your search URL or searchMode.
How It Works — No Browser, Three Data Surfaces
Hemnet is a Next.js + Apollo GraphQL app fronted by Cloudflare Bot Management. Trying to render it with a headless browser does not help — the challenge is an IP-reputation problem, not a JS-rendering problem. The actor instead reads data surfaces in order of cost, cheapest first:
- Embedded JSON blob (primary). Every SSR page ships
<script id="__NEXT_DATA__">with a full Apollo cache (__APOLLO_STATE__) containing listing nodes and search results. Parsed directly — no browser, no DOM scraping. - Internal GraphQL API (fallback).
POST https://www.hemnet.se/graphqlserves anonymous read queries (searchForSaleListings,searchSales,listing(id),soldListing(id)) via CSRF-token auth, reverse-engineered from the SSR cache. - Static HTML / ld+json (last resort). If both JSON surfaces are missing, rows are parsed from
application/ld+json, OpenGraph tags, and headings.
Every row carries a parser field (next-data | graphql | dom-fallback) so you can verify which surface produced it. Requests ride the Apify proxy (Swedish residential recommended) with TLS fingerprinting — this is what clears the Cloudflare challenge. No login, no API key, no account.
Find Sold Prices in Sweden (Slutpriser)
Sold-price data is the differentiator. Search /salda/bostader URLs or use searchMode: "sold" and get finalPriceSek, the over/under-asking gap (priceChangeSek, priceChangePercent), and soldAt per listing — the raw material for current-market valuations and "vad blev slutpriset?" comps.
Build Swedish Property Datasets by Municipality
Use locationIds with place names (Stockholm, Göteborg, Malmö, Uppsala...) or raw Hemnet location IDs (e.g. 17744 = Stockholms län) to run full-country searches; pagination is automatic until maxItems or the search's result cap (~2 500) is reached. For precise filters (price band, rooms, property type) build the search on hemnet.se and paste the URL.
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
urls | array of {url} | No | — | Hemnet search or listing URLs (/bostader, /salda/bostader, /kommande/bostader). Section is read from each URL. |
locationIds | string[] | No | [] | Free-text places (Stockholm, Göteborg...) or raw Hemnet location IDs (17744). Combined with searchMode. |
searchMode | string | No | for_sale | for_sale, sold (slutpriser), or upcoming. Applies to locationIds. |
maxItems | integer | No | 50 | Max listings saved (1–2500). Free users capped at 10. |
maxRequestsPerCrawl | integer | No | 100 | Hard cap on total HTTP requests (loop safety). |
proxyConfiguration | object | No | proxy on, RESIDENTIAL, SE | Keep enabled; Hemnet is Cloudflare-protected. Swedish residential recommended. |
You must supply at least one of urls or locationIds.
Output
One dataset row per listing. Key fields:
| Field | Type | Description |
|---|---|---|
id | string | Stable Hemnet listing ID (use to merge runs) |
searchMode | string | Section the row came from: for_sale, sold, upcoming |
url | string | Full listing URL |
streetAddress / area / municipality / region | string | Location hierarchy |
askingPriceSek / finalPriceSek | number | Asking / sold price in SEK (sold rows carry final) |
priceChangeSek / priceChangePercent | number | Over/under-asking gap (sold rows) |
soldAt | string | ISO 8601 sale date (sold rows) |
squareMeterPriceSek | number | kr/m² |
feeSek / runningCostsSek | number | Monthly fee / running costs |
numberOfRooms / livingAreaSqm / landAreaSqm | number | Rooms and areas |
housingForm / tenure | string | e.g. Lägenhet, Villa / Bostadsrätt, Äganderätt |
constructionYear / energyClass / daysOnHemnet | number/string | Listing details (may be null if not published) |
brokerName / brokerAgencyName | string | Realtor and agency attribution |
latitude / longitude | number | Coordinates |
description / labels | string / string[] | Text and tags |
mainImageUrl / imageCount / imageUrls | string / number / string[] | Images |
parser | string | next-data, graphql, or dom-fallback |
Example Input
{"urls": ["https://www.hemnet.se/bostader?location_ids%5B%5D=17744&item_types%5B%5D=bostadsratt&price_max=5000000"],"locationIds": ["Malmö"],"maxItems": 100,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "SE" }}
Example Output — Sold Row (slutpriser)
{"id": "22153011","searchMode": "sold","url": "https://www.hemnet.se/bostad/lagenhet-2rum-stockholms-kommun-...","streetAddress": "Vasagatan 12","area": "Norrmalm","municipality": "Stockholms kommun","askingPriceSek": 3495000,"finalPriceSek": 3700000,"priceChangeSek": 205000,"priceChangePercent": 5.9,"soldAt": "2026-09-01T00:00:00.000Z","squareMeterPriceSek": 92500,"numberOfRooms": 2,"livingAreaSqm": 40,"feeSek": 3275,"brokerName": "Anna Lindqvist","brokerAgencyName": "Fastighetsbyrån","parser": "next-data"}
Cost of Scraping Hemnet
The actor is HTTP-only — no browser compute units. Search results are pulled from Hemnet's GraphQL endpoint in batches (50 listings per request), so cost scales with maxItems, not per-listing HTTP calls. Pricing is pay-per-event: $0.0005 per actor start + $0.0012 per result row (≈ $1.2 per 1 000 rows). A default 50-item run costs roughly $0.06. Direct listing URLs pasted in urls are fetched individually.
Integrations & Automation
Every run writes to an Apify dataset:
- Download as JSON, CSV, Excel, XML, or HTML
- Push to Google Sheets, Airtable, PostgreSQL, Snowflake, or BigQuery via Apify integrations
- Trigger via Zapier, Make, or Apify webhooks
- Call from the Apify REST API (any language) or Python/JS SDKs
Because prices and sold results change constantly, schedule daily runs for price monitoring and weekly runs for market research — recurring usage also improves the actor's Apify Store ranking.
Related Actors
- Booli Scraper — Sweden Till salu & Slutpriser — Sweden's #2 property portal, same sold-price audience
- Nordic Real Estate Portal Scraper — Hemnet + Finn.no + Boligsiden + Etuovi in one run
- Zillow Search Scraper — the international real-estate cluster anchor (⭐ 4.95, 600+/mo users)
- Rightmove Scraper — UK listings data (⭐ 5.00)
- Idealista Scraper — Spanish property data (270+/mo users)
Together these cover the European property-data cluster: Swedish (Hemnet + Booli), Nordic, UK, Spain, and the international anchor.
FAQ
Is there an official Hemnet API?
No public one. Hemnet's BostadsAPI is broker-only, available under signed contracts. This actor is the practical public-data alternative: it reads the same pages and endpoint a visitor sees, without login or an API key.
How can I get Swedish property price data when Hemnet has no official API?
Run this actor in for_sale or sold mode and export the dataset (JSON/CSV/Excel). For official sources, SCB (Statistics Sweden), Boverket, and Lantmäteriet publish aggregated market statistics — the actor gives you listing-level granularity those sources don't.
How do I find sold prices (slutpriser) for homes in Sweden?
Set searchMode: "sold" (or paste /salda/bostader URLs). Output rows include finalPriceSek, soldAt, and the over/under-asking gap (priceChangeSek, priceChangePercent).
What is the difference between asking price and final sold price on Hemnet?
askingPriceSek is the listing's target price (utgångspris); finalPriceSek is what the buyer actually paid (slutpris) — often above asking in hot markets. The gap is expressed in priceChangeSek and priceChangePercent.
Can I track Swedish property prices over time with a scheduled scrape?
Yes. Schedule the actor daily or weekly (Apify schedules), keep the same search URLs, and merge runs on the stable id field to build a price time series including daysOnHemnet.
How much does it cost to scrape Hemnet?
$0.0005 per actor start + $0.0012 per result row — roughly $1.2 per 1 000 listings (search results fetched in batches of 50). A 50-item trial run costs about $0.06.
Hemnet vs Booli — which is better for Swedish property data?
Hemnet is the largest portal with the most listings and broker activity; Booli aggregates and offers price statistics. Use this actor for Hemnet data and the Booli scraper for comparison coverage.
Is scraping Hemnet legal in Sweden?
The actor only reads publicly visible pages without login and respects request caps. You are responsible for complying with Hemnet's Terms of Service and applicable law — notably GDPR if you store brokerName (a person's name); agency-level data is organisational.
Why are some fields null?
Hemnet does not publish every field for every listing (e.g. fee on villas, coordinates on some sales, soldAt on for-sale rows). Nulls mean "not published" — except dom-fallback rows, which are partial by nature.
Hur hittar jag slutpriser för bostäder i Sverige?
Sök med searchMode: "sold" eller klistra in en /salda/bostader-adress. Du får finalPriceSek, soldAt, och avvikelsen mot utgångspris (priceChangeSek/priceChangePercent) per bostad.
Vilken bostadssajt är bäst för prisstatistik — Hemnet eller Booli?
Hemnet är den största portalen med mest data; Booli har egen statistik. Denna actor hämtar Hemnet-data, och Booli-scrapern täcker jämförelse. För officiell statistik finns SCB och Lantmäteriet.
For AI Agents & LLM Apps
Purpose: Returns Swedish property listings (for sale, sold/slutpriser, or upcoming) from hemnet.se as structured JSON — one section per run.
Minimal input:
{ "urls": [ { "url": "https://www.hemnet.se/bostader?location_ids%5B%5D=17744" } ], "maxItems": 50 }
Variant inputs:
{ "locationIds": ["Malmö"], "searchMode": "sold", "maxItems": 100 }
{ "locationIds": ["Stockholm"], "searchMode": "upcoming", "maxItems": 50 }
Output fields (subset notable): id, searchMode, url, streetAddress, area, municipality, region, latitude, longitude, housingForm, tenure, askingPriceSek, finalPriceSek, priceChangeSek, priceChangePercent, soldAt, feeSek, runningCostsSek, squareMeterPriceSek, numberOfRooms, livingAreaSqm, landAreaSqm, constructionYear, energyClass, daysOnHemnet, brokerName, brokerAgencyName, description, labels, mainImageUrl, imageCount, imageUrls, parser.
Behaviors an agent should know:
urlsandlocationIdsare alternative entry points;searchModeonly applies tolocationIds(section is read from each URL otherwise).- Sold rows carry
finalPriceSek/priceChangeSek/priceChangePercent/soldAt; for-sale rows carryaskingPriceSek— don't expectfinalPriceSekinfor_salemode. - Free users are capped at 10 items regardless of
maxItems; paying users get the full value (up to 2500). parsertells you the data surface used:next-data= clean,graphql= fallback,dom-fallback= partial rows (proxy IPs likely challenged; switch proxy group to residential).- Fields like
feeSek,constructionYear,energyClass,coordinatesmay be null — Hemnet doesn't publish them for every listing. - Billing: $0.0005 per start + $0.0012 per result row ≈ $0.06 for a default 50-item run.
Legal & Compliance Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Hemnet AB. It accesses only publicly visible pages and endpoints on hemnet.se without login — no CAPTCHA solving, no private data bypass. Users are responsible for complying with Hemnet's Terms of Service and applicable law, including GDPR when storing the brokerName field (it is an individual's personal data).
SEO Keywords
hemnet scraper, hemnet api, hemnet data, swedish property data, sweden property prices, hemnet slutpriser, hemnet bostadspriser, sold price monitoring sweden, price per square meter sweden, swedish real estate market analysis, swedish housing market data, brokerage lead generation sweden, hemnet export, stockholm property prices data, goteborg housing data, malmo real estate data, sweden property prices by municipality, swedish property scraper, nordic proptech, bostadsratt prices, bostader till salu data, sweden house prices dataset, real estate data sweden, hemnet alternative, kr per kvadratmeter