Hemnet Properties Scraper (Sweden)
Pricing
from $1.26 / 1,000 results
Hemnet Properties Scraper (Sweden)
Scrapes for-sale property listings from Hemnet, Sweden's dominant real estate portal. Every row carries asking price, monthly fee, rooms, living and land area, price per square metre, street address, GPS coordinates, broker and agency, publication date and photos.
Pricing
from $1.26 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Scrapes for-sale property listings from Hemnet — Sweden's dominant real estate portal, where essentially every home for sale in the country is listed.
Public data only. No login, no cookies, no browser.
The one thing you need to know before using this
A location id Hemnet cannot resolve returns the entire country.
location_ids[]=99999999 answers HTTP 200 with 46,590 listings — every
home for sale in Sweden — not an error. And the query echo is no help: it
faithfully repeats the bogus id back at you.
This actor gates on Hemnet's own resolved Location entity, which is simply
absent when the id is unknown. If a location does not resolve it stops before
paginating and emits one SEARCH_SUMMARY with locationApplied: false and
zero property rows — rather than handing you 46,590 rows labelled as the place
you asked for.
You normally never see this, because you can just type a name.
What you get
Three record types share one dataset, told apart by recordType.
PROPERTY — one row per listing
- Money — asking price, monthly fee (
avgift), price per square metre - The property — rooms, living and supplemental areas, land area, floor, housing form, new-build flag
- Where — street address, area description, and GPS coordinates
- Who — broker name, agency name, agency logo
- When — publication date, plus any scheduled showings
- Media — full image list and the listing's teaser description
Upstream's object is passed through verbatim. Its own recordType field
(COMMON / PROJECT / PROJECT_UNIT, marking new-build project units) is
preserved as listingRecordType so it cannot collide with the dataset's
own discriminator.
SEARCH_SUMMARY — one row per location
Hemnet's own match total, the viewable ceiling, which location id the name
resolved to and what Hemnet called it, pages fetched, requests spent, plus
locationApplied and viewableCeilingReached.
ERROR — one row per input that could not be processed
Every input maps to at least one row, so nothing disappears silently.
Input
| Field | What it does |
|---|---|
| Locations | Swedish place names (Stockholm, Nacka kommun, Göteborg) or numeric Hemnet ids. Resolved through Hemnet's own public lookup; when a name matches several places the broadest wins (county over municipality over district), and the summary row says which was served. |
| Property types | Seven verified types. See the warning below. |
| Minimum rooms | Verified: Stockholms län 10,100 → 2,978 at 4. |
| Maximum asking price | Verified: 10,100 → 3,633 at 2000000 SEK. |
| Minimum living area | Verified: 10,100 → 2,197 at 100 m². |
| Max listings per location | 0 for everything Hemnet will serve. |
| Max concurrent requests / Minimum seconds between requests | Throughput controls. Pages are ~1.6 MB each. |
⚠️ Property types that look real but silently disable the filter
Hemnet does not reject an unrecognised property type — it returns every listing in the region as though your filter had applied. Four of the words that do this are perfectly ordinary Swedish:
| You might type | What Hemnet does |
|---|---|
lagenhet ("apartment") | returns everything — use bostadsratt |
parhus, kedjehus, andelsboende | return everything |
Only these seven actually filter, and anything else is refused before the run
starts: bostadsratt, villa, radhus, fritidshus, tomt, gard,
other.
Known limits
- 2,500 rows per query, hard. Hemnet reports the full match count but pages
through at most 2,500 (it tells you so itself, as
totalViewable). Stockholms län has ~10,100 listings and will only ever yield 2,500 in one query — split by municipality, property type, price or size to reach the rest.viewableCeilingReachedflags this on every summary row. - For-sale only. Sold history (
searchSalesreports 523,472 records for Stockholms län alone) and upcoming listings live on separate surfaces and are a genuinely different product. Not included here. - No detail pass, by design. The listing card already carries every field a detail page repeats, so a detail fetch would spend one request per listing to re-collect what you already have.
- 50 rows per page is fixed by Hemnet and is not tunable.