Boligsiden Scraper - Danish Real Estate Listings & Sold Prices
Pricing
from $5.00 / 1,000 result scrapeds
Boligsiden Scraper - Danish Real Estate Listings & Sold Prices
Scrape property listings and historical sold prices from Boligsiden.dk, Denmark's #2 real estate portal. Extract prices, locations, sizes, rooms, energy labels, and realtor details for houses, apartments, and holiday homes across Danish municipalities. No login needed.
Pricing
from $5.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Boligsiden Scraper
Extract property listings and historical sold prices from Boligsiden.dk, Denmark's #2 real estate portal. This actor pulls prices, sizes, rooms, energy labels, monthly costs, images, and realtor details for houses, apartments, and holiday homes across Danish municipalities — plus Boligsiden's registered sold-price history (solgte), not just current asking prices.
Why use this actor?
Boligsiden aggregates listings from essentially every Danish realtor and publishes the country's official land-registry sold-price history (Tinglysningen) alongside current listings. That combination — live asking prices plus verified historical sale amounts down to street level — makes it useful for price-trend analysis, comparable-sale research, and market-entry due diligence in a way a for-sale-only feed can't match.
Use cases include market analysis by kommune, price-per-square-meter benchmarking, relocation and mortgage-appraisal research, academic housing studies, and competitor tracking for proptech and real estate agency tools.
How to scrape Boligsiden data
- Go to the actor's page on the Apify Store
- Choose a kommune (Copenhagen, Aarhus, Odense, Aalborg, Esbjerg, Kolding, or all of Denmark) or paste a Boligsiden.dk search URL
- Pick search type: for-sale listings (tilsalg) or sold prices (solgte)
- Click "Start" to run the scraper
- Download results as JSON, CSV, or Excel when complete
The actor fetches pages through Bright Data's Web Unlocker to get past Boligsiden.dk's Cloudflare managed challenge, then extracts data from the site's own server-rendered React payload for maximum reliability — no fragile CSS scraping for the fields that matter most.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchType | String | No | forSale (tilsalg, default) or sold (solgte, historical sold prices) |
kommune | String | No | denmark (whole country, default — for-sale only), koebenhavn, aarhus, odense, aalborg, esbjerg, or kolding |
customKommuneSlug | String | No | Advanced: any of Denmark's other 92 kommune URL slugs. Overrides kommune. |
startUrls | Array | No | Boligsiden.dk search result pages, e.g. https://www.boligsiden.dk/kommune/aarhus/tilsalg. Overrides kommune/searchType. |
maxResults | Integer | No | Maximum listings to return. For-sale pages return 50 listings each, sold-price pages return 20 each; the actor paginates automatically. |
brightDataApiKey | String | No | Your own Bright Data API key for the Web Unlocker zone. Leave empty to use the built-in unlocking service. |
Output
Each result contains:
| Field | Type | Example |
|---|---|---|
title | String | "George Marshalls Vej 29, København SV" |
price | Number | 12750000 |
currency | String | "DKK" |
listingType | String | "forSale" or "sold" |
propertyType | String | "villa", "condo", "terraced_house", "holiday_house" |
address | String | "George Marshalls Vej 29" |
city | String | "København SV" |
postalCode | String | "2450" |
municipality | String | "København" |
province | String | "Region Hovedstaden" |
latitude / longitude | Number | 55.6395 / 12.5296 |
rooms | Number | 5 (for-sale listings only — sold-price records don't carry this field) |
surface | Number | 142 (housing/living area, m²) |
landSurface | Number | 650 (lot area, m² — for-sale listings only) |
buildYear | Number | 1998 (for-sale listings only) |
epcScore | String | "C" (Danish energy label, for-sale listings only) |
pricePerSqm | Number | 31250 |
monthlyExpense | Number | 2450 (DKK/month — for-sale listings only) |
priceChangePercentage | Number | -2.5 (for-sale listings only) |
soldDate | String | "2026-08-25" (sold listings only) |
imageUrl | String | Primary listing photo URL (for-sale listings only) |
imageUrls | Array | All listing photo URLs (for-sale listings only) |
agencyName | String | "Nybolig" (for-sale listings only) |
boligsidenId | String | "f9bbe9b4-d0e1-44dc-97c1-fc6d3e520530" |
url | String | Full Boligsiden.dk address page URL |
scrapedAt | String | ISO 8601 timestamp |
Example output
{"title": "George Marshalls Vej 29, København SV","price": 12750000,"currency": "DKK","listingType": "forSale","propertyType": "villa","address": "George Marshalls Vej 29","city": "København SV","postalCode": "2450","municipality": "København","rooms": 6,"surface": 210,"landSurface": 480,"buildYear": 1936,"epcScore": "D","pricePerSqm": 60714,"monthlyExpense": 3100,"priceChangePercentage": 0,"imageUrl": "https://images.boligsiden.dk/images/case/.../600x400/....webp","agencyName": "Home","boligsidenId": "6a1b2c3d-....","url": "https://www.boligsiden.dk/adresse/george-marshalls-vej-29-2450-koebenhavn-sv","scrapedAt": "2026-08-28T15:10:00.000Z"}
Cost estimate
This actor fetches every page through Bright Data's Web Unlocker (one request per search page, not a full browser session). Approximate costs:
- ~50 for-sale results (1 search page): $0.01-0.03 in platform credits
- ~500 for-sale results (10 search pages): $0.10-0.30 in platform credits
- ~20 sold-price results (1 search page): $0.01-0.03 in platform credits (sold pages return fewer results per request, so cost per result is proportionally higher)
Actual usage cost only settles once the run reports SUCCEEDED — reading the dataset from a still-running run will undercount what you'll actually be charged.
Tips for best results
- Start small — test with
maxResults: 20before running large scrapes. - Sold-price search always needs a specific kommune. Boligsiden.dk has no working nationwide sold-price listing page — only
/kommune/{slug}/solgtereturns real data. If you setsearchType: soldwithkommune: denmark, the actor logs a warning and falls back to Copenhagen automatically. customKommuneSlugunlocks any of Denmark's 98 kommuner — the curatedkommunelist covers the six largest markets; for anywhere else, browseboligsiden.dk/kommune/{slug}/tilsalgand copy the slug from the URL.- For-sale listings carry far more fields than sold listings — rooms, energy label, build year, images, and realtor are only present on the current-listing record, not on historical sale registrations.
Limitations
- Boligsiden.dk fronts every page with a genuine Cloudflare managed challenge. This actor routes requests through Bright Data's Web Unlocker to get past it.
- Free-text (
?q=) and zip-code (?zipCodes=) query parameters don't filter results server-side on this site — only the/kommune/{slug}/...URL path reliably scopes a search, so this actor uses that path pattern rather than query-string filters. rooms,landSurface,buildYear,epcScore,imageUrl(s), andagencyNameare always null/absent on sold listings. These live on the original for-sale listing record, not on the land-registry sale registration Boligsiden shows for historical sales — this is a real data-model difference on the site, not a scraping gap.- Sold prices reflect the most recent verified land-registry sale registration for an address. Some addresses carry additional non-arm's-length registration records (e.g. family transfers, foreclosures) alongside ordinary sales — the actor prefers the most recent ordinary-sale registration and skips registration types the site itself flags as non-standard, to avoid reporting a non-market placeholder amount as the sale price.
- Price data on for-sale listings reflects Boligsiden's own asking price, not a guaranteed final sale price.
- The actor scrapes the public website. No login or authentication is used.
Related scrapers
- Booli.se Scraper — Sweden's #2 real estate portal
- Imobiliare.ro Scraper — Romanian real estate listings
- Immoweb Scraper — Belgium's #1 real estate portal
- Idealista Scraper — Spanish real estate portal
- Zimmo Scraper — Belgian real estate listings
- Aruodas Scraper — Lithuanian real estate listings
Need this data on a schedule, or a custom version?
We run this scraper as a managed service for businesses: scheduled runs, deduplication, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with your exact fields and filters, or combine multiple sources into one feed.
See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 700+ European web scrapers and answer within one business day.