Hemnet.se API
The Hemnet API returns Swedish real-estate listings as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary search endpoint returns listings with id, URL, street address, area, housing form, asking price (SEK), fee and square meters, and you can pull sold history, a detail and a location. It is built for real-estate tools and Swedish market analytics that need Hemnet data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/hemnet/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"location": "Stockholm"
}
}{
"ok": true,
"meta": {
"api": "hemnet",
"endpoint": "search",
"mode": "live",
"latency_ms": 2521.2,
"record_count": 50,
"bytes": 1656105,
"cache_hit": false,
"stop_reason": "limit_reached",
"method": "ssr_apollo_state",
"locale": "sv-SE",
"currency": "SEK",
"total": 2142,
"count": 50,
"page": 1,
"max_pages": 43,
"location_id": "18031",
"filters_applied": {},
"attempts": 1
},
"data": {
"results": [
{
"id": "21698056",
"url": "https://www.hemnet.se/bostad/lagenhet-1rum-sodra-angby-stockholms-kommun-zornvagen-[redacted-phone]",
"street_address": "Zornvägen 43",
"area": null,
"location_description": "Södra Ängby, Stockholms kommun",
"housing_form": "Lägenhet",
"housing_form_symbol": "APARTMENT",
"asking_price": {
"amount_sek": 1995000,
"currency": "SEK",
"formatted": "[redacted-phone] kr"
},
"fee": {
"amount_sek": 1507,
"currency": "SEK",
"formatted": "1 507 kr/mån"
},
"square_meter_price": {
"amount_sek": 58676,
"currency": "SEK",
"formatted": "58 676 kr/m²"
},
"rooms": 1,
"living_area_m2": 34,
"living_and_supplemental_areas": "34 m²",
"land_area_m2": null,
"floor": "vån 1/2",
"new_construction": false,
"is_foreclosure": null,
"published_at": "[redacted-phone]",
"labels": [
"Sön 28 jun kl 13:00",
"Premium"
],
"latitude": 59.340755,
"longitude": 17.893038,
"broker_agency": "Fastighetsbyrån Bromma",
"primary_photo_url": "https://bilder.hemnet.se/images/itemgallery_cut/77/44/7744d8a8dfe[redacted-phone]cafb75064.jpg",
"photos": [
"https://bilder.hemnet.se/images/itemgallery_cut/77/44/7744d8a8dfe[redacted-phone]cafb75064.jpg",
"https://bilder.hemnet.se/images/itemgallery_cut/bb/0d/bb0d8b494d46f235419ce524ca2dacaf.jpg",
"https://bilder.hemnet.se/images/itemgallery_cut/70/59/70591da47fefd0bd7ab7b671a620875c.jpg"
]
},
{
"id": "21747683",
"url": "https://www.hemnet.se/bostad/lagenhet-2rum-kungsholmen-stockholms-kommun-svarvargatan-[redacted-phone]",
"street_address": "Svarvargatan 17",
"area": null,
"location_description": "Kungsholmen, Stockholms kommun",
"housing_form": "Lägenhet",
"housing_form_symbol": "APARTMENT",
"asking_price": {
"amount_sek": 4450000,
"currency": "SEK",
"formatted": "[redacted-phone] kr"
},
"fee": {
"amount_sek": 3036,
"currency": "SEK",
"formatted": "3 036 kr/mån"
},
"square_meter_price": {
"amount_sek": 98889,
"currency": "SEK",
"formatted": "98 889 kr/m²"
},
"rooms": 2,
"living_area_m2": 45,
"living_and_supplemental_areas": "45 m²",
"land_area_m2": null,
"floor": "vån 1,5/10",
"new_construction": false,
"is_foreclosure": null,
"published_at": "[redacted-phone]",
"labels": [
"Sön 28 jun kl 13:40",
"Premium",
"Balkong"
],
"latitude": 59.33775,
"longitude": 18.02661,
"broker_agency": "Bjurfors Kungsholmen",
"primary_photo_url": "https://bilder.hemnet.se/images/itemgallery_cut/65/33/65338cd0866a0be81a7d3d4e4afbb137.jpg",
"photos": [
"https://bilder.hemnet.se/images/itemgallery_cut/65/33/65338cd0866a0be81a7d3d4e4afbb137.jpg",
"https://bilder.hemnet.se/images/itemgallery_cut/0f/c8/0fc8a20f3f2d0b303c[redacted-phone]d088.jpg",
"https://bilder.hemnet.se/images/itemgallery_cut/0a/0d/0a0db7f9d1ad8a5a[redacted-phone]e4.jpg"
]
},
{
"id": "21747946",
"url": "https://www.hemnet.se/bostad/lagenhet-3,5rum-kista-stockholms-kommun-kopenhamnsgatan-18-20,-3tr-21747946",
"street_address": "Köpenhamnsgatan 18-20, 3tr",
"area": null,
"location_description": "Kista, Stockholms kommun",
"housing_form": "Lägenhet",
"housing_form_symbol": "APARTMENT",
"asking_price": {
"amount_sek": 2395000,
"currency": "SEK",
"formatted": "[redacted-phone] kr"
},
"fee": {
"amount_sek": 6091,
"currency": "SEK",
"formatted": "6 091 kr/mån"
},
"square_meter_price": {
"amount_sek": 30126,
"currency": "SEK",
"formatted": "30 126 kr/m²"
},
"rooms": 3.5,
"living_area_m2": 79.5,
"living_and_supplemental_areas": "79,5 m²",
"land_area_m2": null,
"floor": "vån 3",
"new_construction": false,
"is_foreclosure": null,
"published_at": "[redacted-phone]",
"labels": [
"Sön 5 jul kl 12:20",
"Premium",
"Balkong"
],
"latitude": 59.401726,
"longitude": 17.938505,
"broker_agency": "Fastighetsbyrån Kista",
"primary_photo_url": "https://bilder.hemnet.se/images/itemgallery_cut/35/78/35780391de9d2853351ba95049e08813.jpg",
"photos": [
"https://bilder.hemnet.se/images/itemgallery_cut/35/78/35780391de9d2853351ba95049e08813.jpg",
"https://bilder.hemnet.se/images/itemgallery_cut/09/f0/09f0624da36068a[redacted-phone]b33a36.jpg",
"https://bilder.hemnet.se/images/itemgallery_cut/69/47/69471ab98f70665aa6f39264925c0899.jpg"
]
}
],
"total": 2142,
"count": 50,
"page": 1,
"max_pages": 43,
"location": {
"query": "Stockholm",
"id": "18031",
"name": "[redacted-name]",
"type": "MUNICIPALITY",
"matched": true
},
"filters_applied": {}
}
}What the Hemnet.se API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Hemnet.se for-sale property listings by location, with structured filters: price (SEK), rooms, living area (m²), plot, property type, price-per-m², construction year, keyword and sort. Each result carries asking price, fee, square-metre price, rooms, living area, housing form, coordinates, broker agency, address and photos. Paginate with page. | Real-estate investors call search to search Hemnet.se for-sale property listings by location, with structured filters. | location, home_type, sort, page, price_min, ... |
| sold | Recently-SOLD property prices (slutpriser) by location, with the same filters as search — the comparable-sales / price-history surface. Each record carries asking price, FINAL sold price, sold date, price change (%) and square-metre price. | Brokerage tools call sold to get recently-SOLD property prices (slutpriser) by location, with the same filters as search. | location, home_type, sort, page, price_min, ... |
| detail | Full record for a single listing by its Hemnet listing URL, slug or id (hemnet.se/bostad/<slug>). Returns asking price, fee, rooms, living & plot area, construction year, energy class, tenure, the full description, every photo, amenities, days-on-market, view count and any sale history. | Property dashboards call detail to get full record for a single listing by its Hemnet listing URL, slug or id (hemnet.se/bostad/<slug>). | url |
| location | Location resolver / autocomplete — map a free-text Swedish place name to Hemnet locations (city, municipality, county, district, postal area) with their ids. Use it to power a search box or to confirm the exact location a search will use. | Lead-generation teams call location to get location resolver / autocomplete. | query |
Call search from your stack
curl -X POST https://api.reefapi.com/hemnet/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"location":"Stockholm"}'import requests
r = requests.post(
"https://api.reefapi.com/hemnet/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"location": "Stockholm"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/hemnet/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"location": "Stockholm"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.hemnet.search with {"location":"Stockholm"}.Who uses this API and why
- Investors call search and sold to compare asking and sold prices.
- Dashboards use detail and fee to enrich a listing.
- Analysts use location and sold to track Swedish market trends.
Questions developers ask before integrating
What is the Hemnet.se API?
Hemnet.se API is a ReefAPI endpoint group for hemnet.se It returns live JSON through POST requests under /hemnet/v1.
Is the Hemnet.se API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Hemnet.se calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Hemnet.se login or account?
No login to Hemnet.se is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Hemnet.se data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Hemnet.se API use?
Hemnet.se actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Hemnet.se from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call hemnet actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Hemnet.se API a Hemnet.se scraper?
It is the managed alternative to a DIY Hemnet.se scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same hemnet.se back as clean JSON.
Why does my Hemnet.se scraper keep getting blocked?
Most Hemnet.se scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.