Boliga Scraper – Danish Real Estate Listings & Sold Prices
Pricing
from $2.00 / 1,000 results
Boliga Scraper – Danish Real Estate Listings & Sold Prices
Extract active listings AND sold prices (solgte boliger) from Boliga.dk, Denmark's #1 property portal. Price, m² price, rooms, size, address, energy class, coordinates & full sale history.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Boliga Scraper – Danish Real Estate Listings & Sold Prices (Solgte Boliger)
Extract active property listings and historical sold prices (solgte boliger / salgspriser) from Boliga.dk — Denmark's largest and most-used real estate marketplace. Pull clean, structured JSON, CSV, or Excel data with prices in DKK, price per m², rooms, size, build year, energy class, addresses, coordinates, sale dates and more.
Whether you are building a property valuation model, tracking the Danish housing market, generating real-estate leads, or feeding a data product — this scraper turns Boliga into a reliable, on-demand data feed. No code, no infrastructure, no maintenance.
🇩🇰 The only Boliga scraper that covers BOTH homes for sale and the full sold-price history. Most tools only scrape active listings. Sold prices (solgte boliger) are the single most valuable dataset on Boliga — covering the entire Danish market, going back decades.
⭐ Why this Boliga scraper?
- ✅ Sold prices (solgte boliger) included — scrape Denmark's complete sales history with final price, sale date, sale type, price per m² and price change. Perfect for valuations, CMA and market analysis.
- ✅ Active listings (til salg) — every home currently on the market, with price, m² price, days-on-market and foreclosure flag.
- ✅ Nationwide coverage — target specific zip codes, cities or regions, or scrape all of Denmark in one run.
- ✅ Powerful filters — property type, price range, rooms, living area, build year, and (for sold homes) the sale year.
- ✅ 25+ structured fields — addresses, coordinates, energy class, lot size, build year, sale type and more.
- ✅ Reliable at scale — automatic pagination and de-duplication across thousands of properties.
- ✅ Any format — export to JSON, CSV, Excel, XML, or pull via API.
📋 Table of contents
- What is Boliga?
- What data can you extract?
- Use cases
- How to use the Boliga scraper
- Input examples
- Output example
- Output fields reference
- Tips for best results
- FAQ
- Integrations
🏠 What is Boliga?
Boliga is one of Denmark's largest and most popular property platforms. Danes use it to browse homes for sale and — crucially — to look up what properties actually sold for. Boliga aggregates the entire Danish housing market across every property type:
- 🏡 Villa (detached houses)
- 🏘️ Rækkehus (townhouses)
- 🏢 Ejerlejlighed (owner-occupied apartments)
- 🌲 Fritidshus (vacation homes)
- 🤝 Andelsbolig (cooperative housing)
- 🚜 Landejendom (country properties)
- 🌳 Grund (plots of land)
Because Boliga combines current listings with a deep archive of final sale prices from across Denmark, it is the single richest public source of Danish real-estate data. This scraper unlocks that data for analysis, automation and product building.
📦 What data can you extract?
This actor extracts two complementary datasets from Boliga:
1. Homes for sale (til salg)
Everything currently on the market: price in DKK, price per square meter, rooms, living area, lot size, build year, energy class, days-on-market, foreclosure flag, address, city, zip code, and GPS coordinates.
2. Sold prices (solgte boliger) — the money data 💰
Boliga holds the full sales history of the Danish market. For each sold property you get the sale price, the sale date, the sale type (regular, family, or auction), price per m², the price change, and full property specs. This is the dataset that powers:
- Automated valuation models (AVMs)
- Comparative market analysis (CMA)
- "What did the neighbor's house sell for?" tools
- Investment and yield analysis
- Market trend dashboards
Nothing else on the market combines both in a single, easy-to-use scraper.
🎯 Use cases — who is this for?
🏦 Real estate investors & analysts
Track sold prices across zip codes and cities to spot under- and over-valued areas, calculate yields, and time the market.
💼 PropTech & startups
Power your app, valuation model, or comparison site with fresh Danish housing data — without building and maintaining a scraper yourself.
📊 Market researchers & journalists
Analyze price trends, days-on-market, price-per-m² by region, and how sale prices evolve over time.
🏘️ Real estate agencies & brokers
Benchmark listings against the competition, monitor pricing in your area, and build automated CMA reports for clients.
🎯 Lead generation
Identify new listings and foreclosure properties for outreach and deal sourcing.
🏦 Banks & mortgage lenders
Feed Danish sold-price data into risk and collateral valuation models.
🤖 Data products & AI
Build training datasets and feeds for real-estate machine learning models, chatbots, and analytics dashboards.
🚀 How to use the Boliga scraper
You don't need any coding skills. Just configure the input and click Start.
- Choose a listing type — For sale (til salg) or Sold prices (solgte boliger).
- (Optional) target an area — enter one or more Danish zip codes (e.g.
2100,8000). Leave empty to cover all of Denmark. - (Optional) add filters — property types, price range, rooms, living area, build year, and (for sold homes) the sale year.
- Set Max items — limit how many properties to collect (recommended, especially for sold prices which can return huge volumes).
- Click Start and watch the results stream into your dataset.
- Export to JSON, CSV, Excel, or pull via the API.
💡 Sold-price searches across all of Denmark can contain hundreds of thousands of records — always set Max items, or narrow down by zip code and sale year.
📝 Input examples
Example 1 — Apartments for sale in Copenhagen
{"listingType": "forSale","zipCodes": "2100,2200,2300","propertyTypes": ["3"],"maxItems": 200}
Example 2 — Villas sold in Aarhus since 2022 💰
{"listingType": "sold","zipCodes": "8000,8200,8210","propertyTypes": ["1"],"soldYearMin": 2022,"maxItems": 500}
Example 3 — All homes for sale under 3,000,000 DKK nationwide
{"listingType": "forSale","priceMax": 3000000,"maxItems": 1000}
Example 4 — Sold properties via a ready-made Boliga URL
{"startUrls": [{ "url": "https://api.boliga.dk/api/v2/sold/search/results?zipCodes=2100&propertyType=3" }],"maxItems": 300}
📤 Output example
Each property is saved as a clean JSON record. Example of a sold apartment:
{"listingType": "sold","id": "1234567","url": "https://www.boliga.dk/bolig/1234567","propertyType": "Ejerlejlighed","propertyTypeCode": 3,"address": "Østerbrogade 100, 2. tv","zipCode": "2100","city": "København Ø","price": 4250000,"squareMeterPrice": 58219,"priceChangePercent": -3.5,"rooms": 3,"size": 73,"lotSize": null,"buildYear": 1932,"energyClass": "C","soldDate": "2026-04-18","salesType": "Almindelig handel","latitude": 55.7095,"longitude": 12.5780,"scrapedAt": "2026-06-03T10:00:00.000Z"}
And an active listing:
{"listingType": "forSale","id": "7654321","url": "https://www.boliga.dk/bolig/7654321","propertyType": "Villa","propertyTypeCode": 1,"address": "Skovvej 12","zipCode": "8000","city": "Aarhus C","price": 5495000,"squareMeterPrice": 32134,"rooms": 5,"size": 171,"lotSize": 642,"buildYear": 1968,"energyClass": "D","daysForSale": 23,"isForeclosure": false,"latitude": 56.1572,"longitude": 10.2107,"scrapedAt": "2026-06-03T10:00:00.000Z"}
📚 Output fields reference
| Field | Description |
|---|---|
listingType | forSale or sold |
id | Boliga property ID |
url | Direct link to the property page |
propertyType | Villa, apartment, townhouse, etc. |
propertyTypeCode | Numeric Boliga property-type code |
address | Street address |
zipCode | Postal code |
city | City / town |
municipality | Municipality |
price | Price in DKK (sale price for sold homes) |
squareMeterPrice | Price per square meter (DKK/m²) |
priceChangePercent | Price change in % |
rooms | Number of rooms |
size | Living area in m² |
lotSize | Lot / land area in m² |
floor | Floor |
buildYear | Year built |
energyClass | Energy label (A–G) |
basementSize | Basement area in m² |
daysForSale | Days on market (active listings) |
isForeclosure | Foreclosure flag (active listings) |
soldDate | Date the property was sold |
salesType | Regular, family or auction sale |
latitude / longitude | GPS coordinates |
scrapedAt | When the record was collected (ISO 8601) |
💡 Tips for best results
- 📍 Narrow with zip codes. Targeting
2100,8000returns exactly the areas you care about and runs much faster than scraping all of Denmark. - 💰 For valuations, use
sold+ a recentsoldYearMin. Recent comparable sales are the gold standard for estimating value. - 🔢 Always set Max items for sold searches. Denmark's sold-price archive is enormous; a nationwide sold search without a limit can run for a very long time.
- 🎯 Combine filters (price + rooms + size + build year) to zero in on exactly the segment you care about.
- 🏷️ Property type codes: 1 = Villa, 2 = Rækkehus, 3 = Ejerlejlighed, 4 = Fritidshus, 5 = Andelsbolig, 6 = Landejendom, 7 = Helårsgrund, 8 = Fritidsgrund, 9 = Villalejlighed.
❓ Frequently asked questions
Does this scraper get sold prices (solgte boliger)?
Yes — and that's its biggest advantage. Set listingType to sold to scrape Boliga's full archive of Danish sale prices, including the sale date, sale type and price change. Most other Boliga scrapers only cover active listings.
Can I scrape the whole of Denmark?
Yes. Leave the zip codes field empty to cover the entire country. For sold prices this can be a very large dataset, so set Max items or filter by zip code and sale year.
What's the difference between the sale types?
Almindelig handel is a regular open-market sale, Familiehandel is a sale between family members (often below market value), and Auktion is a forced/auction sale. The salesType field tells you which one each record is — important when using sold prices for valuation.
How many properties can I scrape?
As many as you need. Use Max items to cap a run, and split very large areas by zip code to keep runs fast and focused.
What formats can I export to?
JSON, CSV, Excel, XML, RSS, or programmatically via the Apify API. The data also includes a clean tabular overview view in the dataset.
Can I run this on a schedule?
Yes. Use Apify Schedules to run the scraper daily or weekly and keep your dataset fresh — great for monitoring new listings or tracking sold prices over time.
Can I get notified of new listings?
Combine scheduled runs with Apify integrations (webhooks, Make, Zapier, Slack, email) to get alerts whenever new properties match your criteria.
🔌 Integrations & exporting your data
This actor works seamlessly with the Apify ecosystem:
- API — pull results programmatically with a single HTTP request.
- Webhooks — trigger downstream workflows when a run finishes.
- Make / Zapier — connect Boliga data to thousands of apps with no code.
- Google Sheets, Slack, email — push results where your team works.
- Schedules — automate recurring runs to keep data fresh.
Results can be downloaded as JSON, CSV, Excel, XML, or RSS at any time.
🆘 Support
Found a bug or need a new field or filter? Open an issue on the actor's Issues tab. Feedback and feature requests are welcome — this scraper is actively maintained.
Happy scraping! 🏠🇩🇰