Hemnet Property Scraper - Sweden Listings Data
Pricing
from $1.50 / 1,000 properties
Hemnet Property Scraper - Sweden Listings Data
Scrape Swedish property listings from Hemnet.se by location keyword or by pasting results/property URLs. One row per property: asking price, monthly fee, rooms, living area, address, GPS coordinates, housing form, broker, labels and images. Optional detail-page enrichment. Export JSON, CSV or Excel.
Pricing
from $1.50 / 1,000 properties
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
21
Total users
20
Monthly active users
6 days ago
Last modified
Categories
Share
Hemnet Property Scraper
Turn any Hemnet search into clean, structured property data. Search for-sale listings by location, paste a results/search URL you built on the site, or paste individual property URLs — and get one flat row per property with asking price, monthly fee, rooms, living area, street address, GPS coordinates, housing form, broker, labels and images. Flip on detail mode to add the full description, construction year and tenure.
Built for Swedish real-estate research, price monitoring, lead generation for brokers, and market datasets across all of Hemnet's for-sale inventory.
How it works

✨ Why use this scraper?
- Rich rows out of the box — ~40 fields per property straight from the results pages: asking price (raw + parsed number), monthly fee, price per m², rooms, living area, street address, location, latitude/longitude, housing form, new-construction flag, broker name + agency, status labels, description snippet and image URLs.
- Three ways in — location keyword, a results/search URL you built on hemnet.se (with all your filters), or direct property URLs. Mix them in one run.
- Beats Hemnet's block — Hemnet serves datacenter scrapers a Cloudflare "Just a moment…" challenge; this actor routes every request through Swedish residential IPs with a real browser fingerprint, so you get the real page.
- Full detail on demand — turn on Scrape property detail pages (or paste a property URL) to add the full listing description, construction year and tenure.
- Coordinates included — every row carries
latitude/longitude, ready to plot on a map or join to geodata. - No brittle DOM scraping — reads Hemnet's embedded JSON (Next.js/Apollo state), so the output stays stable when the page layout changes.
- JSON, CSV, Excel or API — pipe straight into your sheet, BI tool or pipeline. Billed per property.
🎯 Use cases
| You are a… | Use it to… |
|---|---|
| Real-estate analyst | Track asking prices, price/m² and fees across areas and property types |
| Investor / buyer | Build a live feed of new listings in your target locations and price band |
| Broker / agency | Monitor competitor listings, pricing and inventory in your market |
| Data / app builder | Seed a Swedish property dataset with structured, geocoded listing rows |
| Journalist / researcher | Measure supply, new-construction share and price distribution by region |
📥 Supported inputs
| Input | Example | What it does |
|---|---|---|
| Location keyword | Stockholm, Göteborg, Malmö | Resolves the location and paginates its newest for-sale listings |
| Results / search URL | https://www.hemnet.se/bostader?location_ids[]=17744 | Paginates exactly that search (keeps all your filters) |
| Property URL | https://www.hemnet.se/bostad/{slug} | Scrapes that single property in full detail |
Not supported: account-only data, saved searches, contact/message flows, and anything behind a Hemnet login. The actor reads only public for-sale results and property pages.
Tip for precise filters: build your search on hemnet.se (price, rooms, housing form, area, etc.), then copy the URL from your browser and paste it under Results / search URLs. Every filter in the URL is honoured, and pagination is automatic.
⚙️ How it works
- You provide location keywords, results URLs and/or property URLs.
- The actor classifies each input into a results page or a property page.
- Results pages are paginated (
?page=N, 50 properties/page) up to your limits, through Swedish residential proxies with automatic retry on Cloudflare challenges. - Each property is parsed from Hemnet's embedded JSON into a flat row. With Scrape property detail pages on, each property's detail page is fetched to add the full description, construction year and tenure.
- Rows are de-duplicated by property ID and pushed to the dataset — one paid
propertyevent each.
🔧 Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["Stockholm"] | Location keywords to search for-sale listings |
startUrls | array | [] | Hemnet results URLs and/or property URLs (auto-classified) |
scrapeDetails | boolean | false | Also fetch each property's detail page (full description, construction year, tenure) |
maxItems | integer | 1000 | Hard cap on rows for the whole run |
maxItemsPerSearch | integer | 1000 | Cap per location / results URL |
maxConcurrency | integer | 6 | Parallel requests (keep 4–8 — Hemnet is Cloudflare-protected) |
maxRequestRetries | integer | 20 | Retry budget per request (rotates to a fresh Swedish IP each time) |
proxy | object | Apify Residential (SE) | Proxy for free-tier runs; paid runs use a built-in Swedish residential pool |
📤 Output overview
One row per property. Prices are kept both as Hemnet's raw Swedish strings (e.g. "1 695 000 kr") and as parsed integers (1695000) for easy sorting and filtering.
Output sample
{"rowType": "property","id": "21684506","slug": "forsaker-nod431-21684506","url": "https://www.hemnet.se/bostad/forsaker-nod431-21684506","recordType": "PROJECT","housingForm": "Lägenhet","housingFormSymbol": "APARTMENT","streetAddress": "NOD431","locationDescription": "Forsåker, Mölndals kommun","latitude": 57.6544724,"longitude": 12.0235844,"askingPrice": "fr. 1 695 000 kr","askingPriceValue": 1695000,"fee": "fr. 2 683 kr/mån","feeValue": 2683,"squareMeterPrice": "fr. 48 962 kr/m²","squareMeterPriceValue": 48962,"rooms": "1-4 rum","roomsValue": 4,"livingArea": "34-86 m²","livingAreaValue": 34,"newConstruction": true,"publishedAt": "2026-07-06T03:00:01.000Z","brokerName": "Pernilla Tilly-Meijer","brokerAgencyName": "Nordr Sverige AB, Region Göteborg","labels": [{ "text": "28 lediga bostäder", "identifier": "UNITS_LEFT", "category": "STATE" },{ "text": "Nybyggnadsprojekt", "identifier": "NEW_CONSTRUCTION_PROJECT", "category": "TYPE" }],"images": ["https://bilder.hemnet.se/images/1200x/d7/41/d741fef6fc9efee92e4e3470012def03.jpg"],"sourceUrl": "https://www.hemnet.se/bostader","sourceMode": "search","scrapedAt": "2026-07-06T03:30:37.720Z"}
Key output fields
| Field | Description |
|---|---|
id, slug, url | Hemnet property ID, slug and canonical detail URL |
askingPrice / askingPriceValue | Asking price as shown / parsed integer (kr) |
fee / feeValue | Monthly fee as shown / parsed integer (kr/month) |
squareMeterPrice / squareMeterPriceValue | Price per m² as shown / parsed integer |
rooms / roomsValue | Rooms as shown (e.g. "3 rum") / numeric |
livingArea / livingAreaValue | Living area as shown / numeric (m²) |
streetAddress, locationDescription | Address and area/municipality |
latitude, longitude | GPS coordinates |
housingForm, housingFormSymbol | Type name ("Lägenhet", "Villa") and symbol (APARTMENT, HOUSE) |
recordType, newConstruction, upcoming | Listing type and status flags |
brokerName, brokerAgencyName | Listing broker and agency |
labels | Hemnet status/type badges (open house, new construction, price change, …) |
images, thumbnails | Full-size and thumbnail image URLs |
description | Listing description snippet (results card) |
fullDescription, constructionYear, tenure | Added when scrapeDetails is on |
❓ FAQ
Does it scrape sold listings?
This actor targets for-sale listings (/bostader, /till-salu, /bostad/{slug}). Sold-listing pages have a different shape and are out of scope for now.
How many properties can I get per search? Hemnet shows up to ~2,500 results per search (50 pages × 50 properties). Use precise filters in your results URL to narrow a large area into targeted, complete result sets.
Why do some rows have empty fee or squareMeterPrice?
Those fields don't apply to every listing (e.g. plots and some new-construction projects). Address, price, location, coordinates and images are present on virtually every row.
Do I need my own proxies? No. Paid runs use a built-in Swedish residential pool automatically. Free-tier runs use Apify Residential (country SE) by default.
Is the price in the results reliable? Yes — it's read from Hemnet's own embedded data, the same numbers shown on the site, plus a parsed integer variant for sorting.
🛟 Support
Found a field you need that isn't in the output, or a listing type you'd like supported? Open an issue on the actor's Issues tab and it will be looked at.
🔎 Explore more scrapers
This actor is part of a portfolio of fast, HTTP-based scrapers for real-estate and directory sites. Check the publisher's profile for more.
⚠️ Disclaimer
This actor collects only publicly available data from Hemnet's for-sale results and property pages. It does not access any login-gated, private or personal account data. You are responsible for using the scraped data in compliance with Hemnet's terms, applicable laws (including GDPR where personal data such as broker names is involved), and the purpose limitations that apply to your use case. Use the data responsibly and lawfully.
🔑 SEO keywords
Hemnet scraper, Hemnet API, scrape Hemnet, Hemnet property scraper, Swedish real estate data, Sweden property listings scraper, bostäder till salu data, Hemnet listings export, real estate data Sweden, property price monitoring Sweden, Hemnet crawler, hemnet.se scraper, Swedish housing market data, lägenhet villa data, property coordinates Sweden.