Hemnet Slutpriser Pro — Swedish Sold Prices & Market Analytics
Pricing
from $1.90 / 1,000 sold property / listing records
Hemnet Slutpriser Pro — Swedish Sold Prices & Market Analytics
Swedish sold prices (slutpriser) plus the analytics layer Hemnet does not publish: area x month median/p25/p75 kr/m2, sale-to-asking ratio, days on market, comparables, mäklare league tables and BRF org numbers.
Pricing
from $1.90 / 1,000 sold property / listing records
Rating
0.0
(0)
Developer
Karl Sundström
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Apify actor vhsgreed/hemnet-slutpriser. Swedish property sold prices (slutpriser) plus the market
analytics layer Hemnet does not publish. Slutpris (final price), utgångspris (asking price), kr/m²,
boarea, avgift, BRF organisationsnummer — and, on top, the derived statistics a buyer cannot read off
the source: area × month medians and percentiles, sale-to-asking ratios, days on market, comparables,
and mäklare league tables.
Most Hemnet scrapers return asking prices because that is what listing pages lead with. The data buyers actually pay for is the slutpris — what the home sold for, and whether it went above or below asking — plus the area-level statistics nobody publishes.
What can a buyer NOT get by going to Hemnet themselves?
Hemnet shows one sold price at a time; it does not hand you a dataset, per-area statistics, a comparables engine, or change monitoring. This actor computes:
- Area × month aggregates —
median_price_per_sqm_sek,p25_,p75_,sale_count, and the mediansale_to_asking_ratioper area per month. Nobody publishes sale-to-asking by area. - Sale-to-asking ratio — final ÷ asking, per record and per area × month.
- Days on market — matched listing → sale (built from listings you capture, plus the run watermark across scheduled runs).
- Per-record derived —
price_per_sqm_derived,asking_vs_area_median_pct_derived,price_per_sqm_percentile. - Comparables engine — the N most similar sold objects by area/size/rooms, each with its price/m² percentile.
- Mäklare league tables — per area × broker/agency: volume, median sale-to-asking, median days-on-market.
- BRF key + fee history —
brf_org_numberis always exposed as a join key, and a BRF fee history is reconstructed from our own accumulating sales over time. Note: the optional Bolagsverket financials lookup is best-effort and usually returns null — in testing, 0 of 6 real BRF numbers had a digitally filed report in that corpus, because Sweden's digital-filing duty covers aktiebolag rather than bostadsrättsföreningar. The fee history does not depend on it. - Incremental monitor mode — a KV watermark emits
change_type/field/old_value/new_valueevents so the actor can be scheduled instead of re-pulled.
Output
One dataset, several record_types:
record_type | What it is |
|---|---|
sold | A completed sale (slutpris). The flagship rows. |
listing | An active/upcoming "till salu" object (only if includeListings is on). |
area_aggregate | Area × month median/p25/p75 kr/m², sale-to-asking, days on market. |
change | Incremental change event vs the run watermark. |
broker_league | Mäklare league row per area × broker/agency. |
brf_fee_history | Fee (avgift) series per BRF, built from our own sales. |
brf_financials | (optional, best-effort) Bolagsverket figures per BRF — usually absent. |
Key sold fields
record_type, hemnet_id, listing_id, slug, url, street_address, location_description,
area, municipality, zipcode, housing_form, tenure, asking_price_sek (utgångspris),
asking_price_formatted, final_price_sek (slutpris), final_price_formatted, price_change_pct,
price_per_sqm_sek (kr/m²), price_per_sqm_derived, asking_vs_area_median_pct_derived,
living_area_sqm (boarea), land_area_sqm, rooms, fee_sek_month (avgift), build_year,
sold_at, days_on_market, price_per_sqm_percentile, comparables[], brf_name,
brf_org_number (NNNNNN-NNNN), broker_agency, coordinates, features[], plus
source / source_url / fetched_at / actor_version on every record.
Input (highlights)
| Input | Prefill | Notes |
|---|---|---|
locationIds | ["18028"] | Numeric Hemnet location ids. 18028 = Solna kommun. |
maxRecords | 25 | Hard cap on delivered property records. |
pagesPerLocation | 1 | Pages per location (50/page). 0 = walk to the ~2,500 ceiling. |
includeListings | false | Also return active listings. |
enrichBrfFinancials | false | Best-effort Bolagsverket BRF financials probe — usually null (see above). |
fetchDetailPages | true | Adds boarea, avgift, byggår, exact kr/m² and brf_org_number. |
includeBrokerContact | false | Mäklare name/email/phone — PII, off by default. |
onlyNewSince | (empty) | Incremental mode; do not set in the default run. |
proxyConfiguration | direct | Swedish residential proxies help for high-volume runs. |
Important: slice your area finely
An anonymous Hemnet sold search returns at most ~2,500 results per query (50/page; page 50 works,
page 100 is empty). To cover a whole region, pass municipalities or districts as separate
locationIds entries. Sub-area slices must be numeric ids — slug paths like
/salda/<stadsdel> return 404.
Pricing (pay-per-event)
actor-start—$0.01, charged once, only after the first validated record (a failed or empty run is never charged).sold-property—$0.0025per delivered property record.
Leading competitor haketa/hemnet-scraper publishes $0.004/result; we sit below it on the
per-result event. Two cheaper rivals exist (memo23 at $0.0015, ahmed_jasarevic ~$0.0012), so we are
not the cheapest — the differentiation is the sold-field depth plus the analytics layer. Derived
rows (aggregates, league tables, change events, BRF rows) are not charged.
Example: 1,000 sold records ≈ $0.01 + 1000 × $0.0025 = $2.51.
Use cases
- Mäklare building a comparative-market analysis (jämförelseobjekt) for a valuation or pitch.
- Valuers / AVM teams needing an index-ready slutpris time series per area.
- Property investors screening yield and price-per-m² trends across municipalities.
- BRF boards tracking comparable sales and fee trends in their own area.
- Analysts & journalists turning slutpriser into market statistics faster than Svensk Mäklarstatistik.
Responsible use
This actor is a tool. It ships no data and does not run itself — whoever operates it chooses how, and is responsible for that choice.
- Respect robots.txt, rate limits and Hemnet's terms of service in your own runs. Hemnet's
robots.txt disallows only internal paths (
/betalning/*,/raketen/*,/paket/*,/mitt_hemnet/, …); search and listing pages are crawlable — but verify and honour the current text yourself. - Keep the request delay reasonable (default 500 ms) and do not hammer the site.
- Do not republish personal data unlawfully.
includeBrokerContactis off by default; sold street addresses can indirectly identify private sellers. See the GDPR note inPLAN.md.
No warranty. The source is unofficial and can change at any time; the actor may break, and fixed prices reflect that risk.