Hemnet.se Real Estate Scraper
Pricing
from $3.50 / 1,000 results
Hemnet.se Real Estate Scraper
Sweden real estate scraper for Hemnet.se — active for-sale listings plus a historical realized-price (sold) archive, with delta mode.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
hemnet-scraper
Scrapes real estate listings from Hemnet.se, Sweden's dominant real estate portal — active for-sale listings plus Hemnet's own historical realized-price archive ("Slutpriser") — by reading the site's own server-rendered Apollo GraphQL state, not a separate API.
Contents
🔑 Key features
- Two genuinely different datasets, one actor.
entityType: for_salecovers the active market;entityType: soldcovers Hemnet's own realized-price archive — real sold price, asking price, and the difference between them, for completed sales. This second dataset alone runs into the thousands of records even for a single mid-size municipality. - No login, no API key. Every listing's full data — price, area, rooms, broker, construction year, tenure — is embedded directly in the page's own server-rendered JSON; this actor reads that, it doesn't call a private endpoint.
- Delta mode built in. Every run classifies each listing as
new,changed,unchanged, ordelistedagainst a persisted baseline, so a scheduled re-run only bills for what actually changed.
📋 Output
One dataset item per listing (see .actor/dataset_schema.json for
the full field list) plus a change_type field.
Example — for-sale listing:
{"source": "hemnet","external_id": "21786044","url": "https://www.hemnet.se/bostad/villa-8rum-trelleborg-trelleborgs-kommun-johannesdalsvagen-3-21786044","country": "SE","region": "Skåne län","municipality": "Trelleborgs kommun","street_address": "Johannesdalsvägen 3","postal_code": "23192","listing_type": "for_sale","property_type": "Villa","tenure": "Äganderätt","asking_price_sek": 5495000.0,"price_sek": 5495000.0,"living_area_sqm": 190.0,"land_area_sqm": 804.0,"rooms": 8.0,"construction_year": 2006,"broker_name": "Emma Bergh","agency_name": "Erik Olsson Fastighetsformedling","published_at": "2026-09-11T21:20:47.271000+00:00","days_on_hemnet": 11,"change_type": "new"}
Example — sold listing (price_sek is the final selling price, not the asking price):
{"source": "hemnet","external_id": "6229528360611106625","listing_type": "sold","asking_price_sek": null,"price_sek": 6000000.0,"price_per_sqm_sek": 77922.0,"sold_at": "2026-09-22T18:15:00+00:00","change_type": "new"}
Known gaps:
latitude/longitudeare alwaysnull— not present on the detail-page objects this actor reads (only on a lighter search-card object it doesn't use).asking_price_sekis sometimesnullonsoldrecords — not every historical record has one recorded.agency_nameis reconstructed from the agency's own Hemnet profile URL slug, so diacritics and exact spacing may not perfectly match the company's real display name.- No rent/lease category exists — Hemnet is sale-only (verified live: no working rental section).
⚙️ Input
See .actor/input_schema.json for the full schema. Key parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
entityType | String | for_sale | for_sale (active listings) or sold (realized-price archive). |
propertyTypes | Array | (all) | Optional filter on property type (Villa/Lägenhet/etc). Applied after fetching — see note below. |
maxItems | Integer | 50 | Stop after pushing this many items. Clear it (null) for a full run. |
maxPages | Integer | (25, the sitemap's own cap) | How many pages of Hemnet's own sitemap to walk (100 listings/page). The sitemap itself only ever exposes a rolling ~2,500-item recent window per entity type — not the full historical catalog. |
mode | String | auto | auto/full/incremental — see Incremental mode. |
delaySeconds | Number | 0.5 | Politeness delay between requests. |
impersonate | String | chrome | curl_cffi TLS-impersonation target — Hemnet is Cloudflare-fingerprinted against plain HTTP clients. |
proxyConfiguration | Object | off | Apify Proxy config. Off by default — clean without one in testing. |
Note on propertyTypes: Hemnet's sitemaps don't expose property type cheaply enough to filter
before fetching, so this is a filter applied after each listing is already fetched — it reduces
what's pushed, not the request volume. A run with this filter set doesn't update the incremental
baseline (its coverage of the full scope is incomplete by construction).
🧪 Input examples
Quick preview — default 50-item cap on active listings:
{"entityType": "for_sale"}
Sold-price archive, houses only:
{"entityType": "sold","propertyTypes": ["Villa", "Radhus"],"maxItems": 500}
Scheduled tracking run — full, uncapped:
{"entityType": "for_sale","mode": "incremental","maxItems": null,"maxPages": null}
🔄 Incremental (delta) mode
Every run classifies each listing as new, changed (price moved), unchanged, or delisted,
against a baseline persisted per entityType.
mode: auto(default) — first run pushes everything (full); later runs push onlynew/changed/delisted.- A page-capped run (
maxPagesbelow the sitemap's real page count) or apropertyTypes-filtered run doesn't cover the full scope, so it never updates the baseline or reports delistings — same rule as every other actor in this collection.
🚀 How to scrape Hemnet.se
- Open the actor in Apify Console and go to the Input tab.
- Pick an entityType —
for_salefor the live market,soldfor realized prices. maxItemsdefaults to 50 (a quick preview) — clear it along withmaxPagesfor a full run.- Click Start.
- Browse results in the Output tab, or download as JSON/CSV/Excel, or pull them via the API.
❓ FAQ
Is it legal to scrape Hemnet.se? It's legal to collect publicly available listing data such as prices, descriptions, and locations. Results may contain limited personal data (broker names for professional listings); scrape it only with a legitimate purpose under GDPR.
Why is asking_price_sek sometimes null on sold listings? Not every historical record in
Hemnet's own archive has one recorded — see Output.
Does this cover rentals? No — Hemnet itself has no rental section (verified live), only sales.
Search keywords
hemnet scraper, hemnet.se scraper, sweden real estate scraper, swedish property scraper, hemnet slutpriser scraper, hemnet sold prices, bostad scraper, villa scraper sweden, lägenhet scraper, real estate delta scraper, real estate price tracking, sweden property data feed