Hemnet Scraper - Swedish Property Listings & Sold Prices avatar

Hemnet Scraper - Swedish Property Listings & Sold Prices

Pricing

from $1.32 / 1,000 homes for sales

Go to Apify Store
Hemnet Scraper - Swedish Property Listings & Sold Prices

Hemnet Scraper - Swedish Property Listings & Sold Prices

Scrape hemnet.se: homes for sale and sold prices (slutpriser) across Sweden. Asking price, final price, avgift, boarea, rooms, year built, energy class and broker contacts.

Pricing

from $1.32 / 1,000 homes for sales

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Hemnet Scraper — Swedish Property Listings & Sold Prices 🇸🇪

SIÁN Agency Store Rightmove Property Scraper Funda.nl Scraper Smart Idealista Scraper

🏘️ Slutpriser as a first-class operation — the final price beside the asking price on every sale

Homes for sale and 1.6 million sold records across Sweden, as clean rows

Hemnet is where roughly nine in ten Swedish homes are advertised, and it publishes something almost no other portal does: the price each one actually sold for. This Hemnet scraper returns both. Ask for homes on the market and you get asking price, avgift, rooms, boarea, floor, price per m², coordinates and the estate agent. Ask for slutpriser and every row carries the final price, the asking price and the percentage between them.

Type a place name — Stockholm, Nacka kommun, Vasastan, Majorna — and it resolves against Hemnet's own index before the search runs. No location id to look up, no proxy to configure, no login. Test it with 25 properties free.

🔎 What is the Hemnet Scraper — and when should you use it?

The Hemnet Scraper turns every for-sale listing and every sold-price record published on hemnet.se into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

Use it when you need: asking price, monthly fee, rooms, living area in m², floor, coordinates and the estate agent on any Swedish listing. The sold operation adds the final price and how far above or below the asking price it landed. Switch on detail expansion and each row also carries year built, tenure, energy class, yearly running cost, supplemental area, postal code, the housing co-operative and the broker's direct email and phone.

Use something else when: the homes you want are not advertised in Sweden. Use Rightmove Property Scraper for UK homes for sale and to let, with the sold-price history sitting behind each address. Use Funda.nl Scraper for the Dutch market, where Funda holds the position Hemnet holds in Sweden. Use Otodom Property Scraper for Poland, priced in PLN per m² across sale and rental stock. This actor reads what hemnet.se shows the public. Saved searches, bid histories and the valuation tools behind a Hemnet login are out of scope, and so are the Swedish homes that never reach Hemnet at all.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/hemnet-property-scraper

Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want Swedish property listings and slutpriser from Hemnet using the Apify Actor `sian.agency/hemnet-property-scraper`.
Use it when I need: asking price, monthly fee, rooms, living area in m², floor, coordinates and the estate agent on any Swedish listing. The sold operation adds the final price and how far above or below the asking price it landed. Switch on detail expansion and each row also carries year built, tenure, energy class, yearly running cost, supplemental area, postal code, the housing co-operative and the broker's direct email and phone.
Don't use it when: the homes you want are not advertised in Sweden — use rightmove-property-scraper or funda-property-scraper or otodom-property-scraper instead.
How to call it: put a place in `location` — a city, a kommun, a län or a district such as Vasastan — and pick an `operation`. `search` returns homes currently for sale, `sold` returns the slutpriser archive with the final price beside the asking price, `detail` expands hemnet.se addresses you already have via `listingUrls`. Narrow with `propertyTypes`, `priceMin` and `priceMax`, `roomsMin` and `roomsMax`, `livingAreaMin` and `livingAreaMax`, `maxFee` and `constructionYearMin`, then order the result with `sort`. On `sold`, `soldSince` decides how far back to reach. `includeDetails` adds year built, energy class, running cost and broker contacts to every row for an extra charge. A search you already built on hemnet.se can be pasted into `searchUrls` instead.
Start with this input:
{
"operation": "search",
"location": "Stockholm",
"propertyTypes": [
"APARTMENTS"
],
"maxResults": 100
}
Ask me which place in Sweden to cover, and whether they want homes on the market now or the sold-price archive, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • Pull every bostadsrätt sold in Vasastan over the past 12 months and show me the final price against the asking price.
  • List apartments for sale in Göteborg under 4 million kronor with a monthly fee below 4,000, sorted by price per m².
  • Give me this week's new house listings in Nacka kommun with the broker's name, email and phone on each one.

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/hemnet-property-scraper.md.

📋 Overview

Type a place, pick for-sale or sold, press Run — this Hemnet scraper turns any Swedish property search into a spreadsheet, usually in under a minute.

Why professionals choose this Hemnet scraper:

  • Both sides of the market: homes for sale and Hemnet's full slutpriser archive, from one input form
  • 📉 The asking-to-final gap on every sale: askingPrice, finalPrice and priceChangePercent together — the number Swedish valuation actually runs on
  • 🗺️ Place names, not ids: a city, a kommun, a län or a neighbourhood, matched against Hemnet's own place index
  • 500 properties per request: a whole-city sweep is a normal run here, not a job you have to split
  • 💰 From $1.50 per 1,000 properties: pay per row delivered, never for a failed one
  • 🧑‍💼 Broker email and direct phone: switch on detail expansion and every listing gains a working contact
  • 🧾 The fields Swedish buyers screen on: avgift, boarea, biarea, rum, våning, byggår, energiklass and the BRF
  • 🔓 Nothing to configure: no proxy picker, no residential-proxy toggle, no third-party key — type a place and press Run

✨ Features

  • 🔍 Homes for sale: every active listing in a place, filtered by price, rooms, area, fee and year built
  • 💰 Sold prices (slutpriser): the final price, the asking price and the percentage between them, back through the archive
  • 📄 Listing detail: year built, tenure, energy class, yearly running cost, biarea, postal code, BRF and broker contacts
  • 🏠 Six property types: bostadsrätt, villa, radhus, fritidshus, tomt and gård — or leave it empty and take them all
  • 🗓️ Sold-window control: last month, 3, 6 or 12 months, or the whole archive
  • 📐 Price per m² sorting: the ordering Swedish buyers and analysts actually compare on
  • 📍 Coordinates on every row: latitude and longitude, so results drop straight onto a map
  • 📸 Full photo sets: the main image plus every gallery URL and a count
  • 🔗 Paste-a-URL mode: reuse a search you already built on hemnet.se, filters and all
  • 📊 Export anywhere: JSON, CSV, Excel, or straight into your own code via the API

🎬 Quick Start

Give it a place in Sweden and choose what you want back. No account, no API key, no proxy setup — press Run and the rows arrive.

curl -X POST https://api.apify.com/v2/acts/sian.agency~hemnet-property-scraper/runs?token=[YOUR_TOKEN] \
-d '{"operation": "search", "location": "Stockholm", "propertyTypes": ["APARTMENTS"]}'

🚀 Getting Started (3 Simple Steps)

Step 1: Name the place

Type it the way you would on Hemnet. A city (Stockholm, Göteborg, Malmö), a kommun (Nacka kommun), a län (Skåne län) or a district (Vasastan, Östermalm, Majorna) all work.

Step 2: Choose for sale or sold

Homes for Sale returns what is on the market right now. Sold Prices returns the slutpriser archive with the final price on every record. Then set a price band, a room count or a fee ceiling if you want one.

Step 3: Press Run

The first rows land within seconds. Download as CSV, JSON or Excel, or pull them from the API.

That's it! In about a minute, you'll have:

  • Every matching property with price, fee, rooms, boarea, floor and coordinates
  • The named estate agent and agency on each one
  • A run report telling you what you got and exactly what it cost

📥 Input Configuration

FieldTypeRequiredDescription
operationstringNosearch (homes for sale), sold (slutpriser) or detail (expand listing URLs)
locationstringNoA place in Sweden: city, kommun, län or district
propertyTypesarrayNoAPARTMENTS, HOUSES, ROW_HOUSES, VACATION_HOMES, PLOTS, HOMESTEADS, OTHERS. Empty takes every type
maxResultsintegerNoStop after this many rows (default 100)
soldSincestringNoSold window: 1m, 3m, 6m, 12m or all
priceMin / priceMaxintegerNoAsking-price band in SEK. 0 means no bound
roomsMin / roomsMaxintegerNoRoom count band. Swedish listings count every room, not only bedrooms
livingAreaMin / livingAreaMaxintegerNoBoarea band in m²
maxFeeintegerNoHighest monthly avgift to the housing co-operative
constructionYearMinintegerNoSkip anything built before this year
includeDetailsbooleanNoAdd year built, energy class, running cost and broker contacts to each row
listingUrlsarrayNohemnet.se listing addresses for the detail operation
searchUrlsarrayNoSearch addresses copied from hemnet.se, filters included
locationIdsarrayNoHemnet's own place ids, if you already have them
sortstringNoNEWEST, LOWEST_PRICE, LOWEST_PRICE_PER_M2, LARGEST_LIVING_AREA, LOWEST_FEE and five more

Example — apartments for sale in Stockholm:

{
"operation": "search",
"location": "Stockholm",
"propertyTypes": ["APARTMENTS"],
"priceMax": 5000000,
"maxFee": 4500,
"sort": "LOWEST_PRICE_PER_M2",
"maxResults": 500
}

Example — what sold in Vasastan over the past year:

{
"operation": "sold",
"location": "Vasastan",
"soldSince": "12m",
"maxResults": 1000
}

Example — expand listings you already have:

{
"operation": "detail",
"listingUrls": [
"https://www.hemnet.se/bostad/lagenhet-3rum-vasastan-stockholms-kommun-odengatan-1-21740737"
]
}

📤 Output

Results are saved to the Apify dataset with 55+ fields including:

FieldTypeDescription
streetAddressstringStreet address as Hemnet publishes it
askingPricenumberUtgångspris in SEK
finalPricenumberSlutpris — what it actually sold for (sold rows)
priceChangePercentstringHow far the final price landed above or below the asking price
squareMeterPricenumberPrice per m²
monthlyFeenumberMonthly avgift to the BRF
roomsnumberRoom count (rum)
livingAreanumberBoarea in m²
supplementalAreanumberBiarea in m² (detail)
floorstringFloor, written the Swedish way as "vån 2/5"
constructionYearstringYear built (detail)
energyClassstringEnergy classification A–G (detail)
housingFormstringVilla, Lägenhet, Radhus, Fritidshus, Tomt, Gård
tenurestringBostadsrätt or äganderätt (detail)
brokerName / brokerEmail / brokerPhonestringThe named agent and how to reach them (detail)
agencyName / agencyPhone / agencyWebsitestringThe agency behind the listing
brfName / brfRegistrationNumberstringHousing co-operative and its registration number (detail)
latitude / longitudenumberExact coordinates
imageUrl / imageUrls / imageCountstring, array, numberMain photo and the full gallery
daysOnHemnetnumberHow long it has been on the market
soldAtstringSale date (sold rows)

Example row:

{
"listingId": "21715829",
"url": "https://www.hemnet.se/bostad/villa-8rum-ritorp-sodertalje-kommun-fridshallsvagen-14-21715829",
"listingStatus": "for_sale",
"streetAddress": "Fridshällsvägen 14",
"locationName": "Ritorp, Södertälje kommun",
"latitude": 59.2275429,
"longitude": 17.63661,
"askingPrice": 5695000,
"askingPriceText": "5 695 000 kr",
"currency": "SEK",
"housingForm": "Villa",
"housingFormCode": "HOUSE",
"rooms": 8,
"roomsText": "8 rum",
"livingArea": 90,
"livingAreaText": "90+90 m²",
"landArea": "1 512 m²",
"isNewConstruction": false,
"publishedAt": "2026-08-29T17:20:31.000Z",
"brokerName": "Manhal Anis",
"agencyName": "Erik Olsson Fastighetsförmedling",
"imageUrl": "https://bilder.hemnet.se/images/itemgallery_cut/56/bb/56bb0f69fd95c843c8036cc6d9ed9e67.jpg",
"imageCount": 5,
"searchLocation": "Stockholms län, Sverige",
"searchLocationId": "17744",
"status": "success"
}

💼 Use Cases & Examples

1. Slutpris Analysis & Valuation

Valuers and agents pricing a home against what the street actually paid.

Input: operation: "sold", a district, soldSince: "12m" Output: every sale with asking price, final price and the percentage between them Use: build comps that reflect the bidding, not the listing. That gap exists in no public Swedish statistic.

2. Broker & Agency Lead Generation

Proptech vendors and recruiters selling to Swedish estate agents.

Input: a kommun, includeDetails: true Output: broker name, direct email, phone, agency, plus everything they currently have listed Use: a contact list ranked by how much stock each agent is actually carrying.

3. Housing Market Monitoring

Analysts and journalists tracking a city week by week.

Input: a place, sort: "NEWEST", on a schedule Output: new listings since your last run, with price per m², fee, days on Hemnet and coordinates Use: the supply side from the for-sale run, what cleared from the sold run, side by side.

4. Investment & BRF Screening

Buy-to-let investors filtering a city down to a shortlist.

Input: maxFee, constructionYearMin, livingAreaMin, includeDetails: true Output: energy class, yearly running cost, biarea and the co-operative's registration number Use: rule out the high-fee, badly-insulated stock before booking a single viewing.

5. Proptech & Portal Data Feeds

Product teams building valuation models, maps and comparison sites.

Input: several kommuner or price bands across scheduled runs Output: flat rows with coordinates, area, tenure and price, ready to load Use: Sweden has no open property API — this is the feed underneath the product.

Buyers and relocation services comparing neighbourhoods.

Input: two or three districts, the same price and room filters on each Output: the same columns for every area, including price per m² and fee Use: answer "where does our budget go furthest" with numbers instead of impressions.

🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/hemnet-property-scraper').call({
operation: 'sold',
location: 'Vasastan',
soldSince: '12m',
maxResults: 500
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/hemnet-property-scraper').call(
run_input={
'operation': 'search',
'location': 'Göteborg',
'propertyTypes': ['APARTMENTS'],
'maxFee': 4000,
'sort': 'LOWEST_PRICE_PER_M2'
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['streetAddress'], item['askingPrice'], item['squareMeterPrice'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~hemnet-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "sold", "location": "Malmö", "soldSince": "3m"}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: a weekly schedule, or a webhook from your own app
  2. HTTP Request: call the actor with a place and a filter set
  3. Process: keep the rows whose publishedAt is newer than your last run
  4. Action: write to Sheets or a database, or alert the team on a price change

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 properties per run — every field, every operation, same quality
  • No credit card, no API key, no proxy
  • Enough to see the slutpris columns on real Swedish sales before you spend anything
  • Unlimited properties per run
  • 500 properties per request, so a whole-city sweep finishes fast
  • Pay-per-result: charged for rows delivered, never for a failure

💰 From $1.50 per 1,000 properties, with nothing to buy alongside it: no proxy subscription, no third-party account, no per-request surcharge on top. Detail expansion is charged separately, per row expanded, and only when you switch it on.

🔗 View current pricing

❓ Frequently Asked Questions

Q: Do I need an API key, a login or a proxy? A: No. Type a place name and press Run.

Q: What is slutpris, and does this return it? A: Slutpris is the price a Swedish home actually sold for, as opposed to the asking price. The Sold Prices operation returns both on every row, plus the percentage between them.

Q: How do I search a neighbourhood rather than a whole city? A: Type the neighbourhood. Vasastan, Östermalm, Majorna and Möllevången all resolve, because the name is matched against Hemnet's own place index.

Q: How many rows can one search return? A: Up to 2,500. That is Hemnet's ceiling per search, not ours. Split the run by area, price band or sold period to go wider.

Q: Which fields need the detail option? A: Year built, tenure, energy class, yearly running cost, biarea, postal code, the BRF and the broker's email and phone. Price, fee, rooms, boarea, floor, coordinates, agency and photos all arrive with the search row.

Q: Are the broker email addresses real? A: Yes. Hemnet publishes the agent's own address and direct line on the listing page. They are business contacts, not anonymised relays.

Q: Can I paste a Hemnet search address? A: Yes. Put it in Search URLs and the place, property type, price, rooms and area filters are read off it. Sold-price addresses under /salda/bostader work too.

Q: Does it cover houses and holiday homes, or only apartments? A: Everything Hemnet lists — bostadsrätter, villor, radhus, fritidshus, tomter and gårdar. Leave the property type filter empty to take them all.

Q: What output formats are available? A: JSON, CSV, Excel and the API, exported straight from the dataset.

🐛 Troubleshooting

A place name did not match

  • Use the name as Hemnet writes it: Stockholm, Nacka kommun, Skåne län, Vasastan
  • If a district name is ambiguous, add the city, or supply the Hemnet location id instead

A search returned fewer rows than you expected

  • Check the filters. A fee ceiling has no effect on villor, which usually carry no avgift
  • Hemnet stops any single search at 2,500 rows. Split by district, by price band or by sold window

Sold rows have no photos or no monthly fee

  • Hemnet's sold records carry less than an active listing does. Photos come down once a sale closes, and a fee appears only where the property had one

Year built and energy class are empty

  • Those two live on the listing page, not the results page. Switch on the detail option, or run the detail operation against the listing URLs

A run stopped at 25 rows

  • That is the free-tier cap. Paid runs are uncapped

The run failed with "Property type … is not one Hemnet lists" (or the same for sort or sold window)

  • You are calling the API directly and sent a value outside the list. The run stops rather than dropping the filter, because a dropped filter returns a wider result set that you would still pay for
  • Copy the exact values from the dropdowns, or from the Input Configuration table above

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools

Hemnet is a trademark of Hemnet Group AB. This actor is not affiliated with, endorsed by, or sponsored by Hemnet.