Hemnet.se Scraper - Swedish Real Estate Listings avatar

Hemnet.se Scraper - Swedish Real Estate Listings

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Hemnet.se Scraper - Swedish Real Estate Listings

Hemnet.se Scraper - Swedish Real Estate Listings

Scrape property listings from Hemnet.se including for-sale, upcoming, and sold homes. Search by URL or location query with pagination controls and Apify residential proxy support.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

Data Scrapers

Data Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Hemnet.se Scraper creates a structured dataset of Swedish property listings collected from Hemnet.se. Each dataset item can include the listing id, address, location, asking price, rooms, living area, housing form, broker agency, coordinates, and publication time. Query the source with a Hemnet results URL or with a place name such as Stockholm, plus listing type and property type. Control volume with maxListings and maxPages. Retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Hemnet.se Scraper — location search to listing rows

Dataset at a glance

PropertyValue
Sourcehemnet.se
Record unitOne property listing
Input methodsstartUrls or searchQueries
Main identifiersid, url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML
Update modelFresh records per Actor run
Pricing$1.00 per 1,000 dataset-item events, plus $1.00 per 1,000 listing-details events. Platform usage is billed separately.

Coverage and available records

Supported Hemnet sections are for sale, upcoming, and sold. searchQueries are place names. The Actor uses the best autocomplete match. startUrls can point at /bostader, /kommande/bostader, or /salda/bostader result pages. itemTypes filters villa, apartment, housing cooperative, townhouse, holiday home, plot, farm, and other. Room, living-area, and price filters apply to query searches. expandLocations accepts 1, 5, 10, 25, or 50 kilometers.

maxPages defaults to 3, and Hemnet shows about 50 listings per page. maxListings of 0 means no extra cap inside maxPages. listingDetails fetches the listing page and charges listing-details. Search rows still save when details are off. Sold-only fields such as finalPrice and soldAt are present on sold listings and empty on for-sale cards.

Data dictionary

FieldTypeNullableDescriptionExample
idstringnoHemnet listing id. Deduplication key.21715144
urlstringyesPublic listing pagehttps://www.hemnet.se/bostad/villa-7rum-staket-jarfalla-kommun-bielkenstiernas-vag-5-21715144
listingTypestringyesfor_sale, upcoming, or soldfor_sale
streetAddressstringyesStreet addressBielkenstiernas väg 5
locationDescriptionstringyesArea and municipalityStäket, Järfälla kommun
askingPricestringyesAsking price text, SEK6 990 000 kr
finalPricestringyesSold price text when the listing is soldnull
roomsstringyesRoom label7 rum
livingAreastringyesLiving area text179+85 m²
landAreastringyesPlot area text1 296 m²
squareMeterPricestringyesPrice per square meternull
housingFormobjectyesSymbol and name{"symbol": "HOUSE", "name": "Villa"}
brokerobjectyesAgency fields. The example keeps the agency name.{"agencyName": "Mäklarringen Järfälla"}
coordinatesobjectyeslat and lng{"lat": 59.47323, "lng": 17.7998371}
publishedAtstringyesPublication time, ISO-86012026-06-20T07:39:46+00:00
soldAtstringyesSale time on sold listingsnull
detailsobjectyesListing-page payload when listingDetails is onnull

Example dataset record

{
"id": "21715144",
"url": "https://www.hemnet.se/bostad/villa-7rum-staket-jarfalla-kommun-bielkenstiernas-vag-5-21715144",
"listingType": "for_sale",
"streetAddress": "Bielkenstiernas väg 5",
"locationDescription": "Stäket, Järfälla kommun",
"askingPrice": "6 990 000 kr",
"rooms": "7 rum",
"livingArea": "179+85 m²",
"landArea": "1 296 m²",
"housingForm": {"symbol": "HOUSE", "name": "Villa"},
"broker": {"agencyName": "Mäklarringen Järfälla"},
"coordinates": {"lat": 59.47323, "lng": 17.7998371},
"publishedAt": "2026-06-20T07:39:46+00:00",
"totalResults": 10211
}

This row is a for-sale villa card from a Stockholm-area Hemnet search. The broker object in the stored dataset can include more agency fields. This example keeps the agency name.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
startUrlsarraynoemptyHemnet result URLsDirect result pages.
searchQueriesarraynoemptyPlace namesAutocomplete locations.
listingTypestringnofor_salefor_sale, upcoming, soldSection used with search queries.
itemTypesarraynoemptyvilla, lagenhet, bostadsratt, radhus, fritidshus, tomt, gard-skog, ovrigtProperty types. Empty includes all.
minRoomsnumbernoemptyNumberMinimum rooms.
maxRoomsnumbernoemptyNumberMaximum rooms.
minLivingAreaintegernoemptySquare metersMinimum living area.
maxLivingAreaintegernoemptySquare metersMaximum living area.
minPriceintegernoemptySEKMinimum price.
maxPriceintegernoemptySEKMaximum price.
expandLocationsintegernoempty1, 5, 10, 25, 50Extra radius in kilometers.
maxPagesintegerno3IntegerPages per search target.
maxListingsintegerno0IntegerTotal listings. 0 stays inside maxPages.
listingDetailsbooleannofalsetrue, falseFetch listing pages. Charges listing-details.
proxyConfigurationobjectnoApify residentialApify proxy inputProxy used for Hemnet requests.

Minimal request:

{
"searchQueries": ["Stockholm"],
"maxListings": 5,
"listingDetails": false
}

Retrieve the data through the API

Start the Actor with JSON input, wait for the run, then read the default dataset. Other languages are on the Actor API tab.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("datascrapers/hemnet-se-scraper").call(run_input={
"searchQueries": ["Stockholm"],
"maxListings": 5,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["id"], item.get("askingPrice"))

Data quality and record handling

Use id as the deduplication key. Price and area fields on search cards are display strings, including Swedish spacing, not parsed numbers. publishedAt is ISO-8601. A listing page that fails is skipped for its detail payload, and the search card can still be saved. Broker objects can include an agency name. Person names are not part of the example above.

Pricing and cost examples

EventFreeBronzeSilverGold
dataset-item$1.00$1.00$1.00$1.00
listing-details$1.00$1.00$1.00$1.00

Prices are per 1,000 events. Platinum and Diamond use the Gold price. Platform usage is billed separately. Saving 1,000 search cards costs $1.00 before platform usage. Turning on listingDetails adds $1.00 per 1,000 successful detail fetches.

Limitations and responsible data use

Hemnet can change result markup, require a proxy, or hide fields on some cards. totalResults is the search total reported on that page, not a guarantee that the run saved every match. Use the data under Hemnet's terms and applicable privacy rules.

Dataset questions

How do I scrape sold homes?

Set listingType to sold, or paste a /salda/bostader URL in startUrls.

Does maxListings 0 download the whole site?

No. 0 means the cap is maxPages for each search target. The default is 3 pages.

Which field should I store as the key?

Store id. It is also the trailing number in the listing URL.

Data Scrapers support

Questions about this dataset: stardustspotlight@gmail.com