Boligsiden Scraper - Danish Real Estate Listings & Sold Prices avatar

Boligsiden Scraper - Danish Real Estate Listings & Sold Prices

Pricing

from $5.00 / 1,000 result scrapeds

Go to Apify Store
Boligsiden Scraper - Danish Real Estate Listings & Sold Prices

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

Studio Amba

Maintained by Community

Actor 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

  1. Go to the actor's page on the Apify Store
  2. Choose a kommune (Copenhagen, Aarhus, Odense, Aalborg, Esbjerg, Kolding, or all of Denmark) or paste a Boligsiden.dk search URL
  3. Pick search type: for-sale listings (tilsalg) or sold prices (solgte)
  4. Click "Start" to run the scraper
  5. 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

FieldTypeRequiredDescription
searchTypeStringNoforSale (tilsalg, default) or sold (solgte, historical sold prices)
kommuneStringNodenmark (whole country, default — for-sale only), koebenhavn, aarhus, odense, aalborg, esbjerg, or kolding
customKommuneSlugStringNoAdvanced: any of Denmark's other 92 kommune URL slugs. Overrides kommune.
startUrlsArrayNoBoligsiden.dk search result pages, e.g. https://www.boligsiden.dk/kommune/aarhus/tilsalg. Overrides kommune/searchType.
maxResultsIntegerNoMaximum listings to return. For-sale pages return 50 listings each, sold-price pages return 20 each; the actor paginates automatically.
brightDataApiKeyStringNoYour own Bright Data API key for the Web Unlocker zone. Leave empty to use the built-in unlocking service.

Output

Each result contains:

FieldTypeExample
titleString"George Marshalls Vej 29, København SV"
priceNumber12750000
currencyString"DKK"
listingTypeString"forSale" or "sold"
propertyTypeString"villa", "condo", "terraced_house", "holiday_house"
addressString"George Marshalls Vej 29"
cityString"København SV"
postalCodeString"2450"
municipalityString"København"
provinceString"Region Hovedstaden"
latitude / longitudeNumber55.6395 / 12.5296
roomsNumber5 (for-sale listings only — sold-price records don't carry this field)
surfaceNumber142 (housing/living area, m²)
landSurfaceNumber650 (lot area, m² — for-sale listings only)
buildYearNumber1998 (for-sale listings only)
epcScoreString"C" (Danish energy label, for-sale listings only)
pricePerSqmNumber31250
monthlyExpenseNumber2450 (DKK/month — for-sale listings only)
priceChangePercentageNumber-2.5 (for-sale listings only)
soldDateString"2026-08-25" (sold listings only)
imageUrlStringPrimary listing photo URL (for-sale listings only)
imageUrlsArrayAll listing photo URLs (for-sale listings only)
agencyNameString"Nybolig" (for-sale listings only)
boligsidenIdString"f9bbe9b4-d0e1-44dc-97c1-fc6d3e520530"
urlStringFull Boligsiden.dk address page URL
scrapedAtStringISO 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: 20 before running large scrapes.
  • Sold-price search always needs a specific kommune. Boligsiden.dk has no working nationwide sold-price listing page — only /kommune/{slug}/solgte returns real data. If you set searchType: sold with kommune: denmark, the actor logs a warning and falls back to Copenhagen automatically.
  • customKommuneSlug unlocks any of Denmark's 98 kommuner — the curated kommune list covers the six largest markets; for anywhere else, browse boligsiden.dk/kommune/{slug}/tilsalg and 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), and agencyName are 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.

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.