Boligsiden Scraper — Denmark Property Listings & Agents
Pricing
from $3.50 / 1,000 results
Boligsiden Scraper — Denmark Property Listings & Agents
Scrape Boligsiden.dk, Denmark's national property portal. Extract asking price, price per m2, public valuation, living and lot area, rooms, build year, energy label, GPS, days on market and the listing agent's name, phone, email and CVR number. No API key, no login.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Boligsiden Scraper — Denmark Property Listings & Agent Contacts
Every home for sale in Denmark, with the asking price, the public tax valuation, the energy label, the mortgage maths — and the responsible estate agent's phone, email and CVR number.
What does the Boligsiden Scraper do?
This Actor collects live property listings from Boligsiden.dk, the national portal the Danish estate agents' associations publish to. Boligsiden is not a scraped aggregator: agents feed it directly, so its search endpoint returns the whole case record rather than a card summary. This Actor reads that endpoint, which is why one row carries things a listing page never shows in one place — the official public valuation next to the asking price, the down payment and gross and net mortgage figures, the energy label, days on market, and the agent's own contact details.
Choose one or more property types, optionally narrow by municipality, postcode, price, area or room count, and the Actor pages through the results writing one flat row per case. Each selected property type and each location is crawled as its own search, which matters: Boligsiden refuses to paginate past 10,000 results in a single search, so splitting the work is what lets a run reach the whole country rather than the first slice of it.
Who is it for?
- Estate agencies and proptech teams benchmarking asking prices, price per m² and time on market across Danish municipalities.
- Lead-generation teams — the agent's name, phone, email and CVR company number are on every row.
- Mortgage brokers and banks comparing the asking price with the public valuation and the published mortgage figures.
- Investors and property funds screening yield candidates by municipality, energy label and price per square metre.
- Analysts and journalists tracking the Danish housing market with evidence rather than headlines.
Use cases
- Track asking price per m² per municipality, week over week, and spot which markets are cooling.
- Build a complete directory of Danish estate agencies: name, phone, email, CVR, city and their live listing count.
- Find homes priced far above or below the public tax valuation — the gap is a negotiation signal.
- Screen the whole country for energy label A and B stock ahead of tightening efficiency rules.
- Monitor days on market by postcode to see where stock is moving and where it is stuck.
- Feed an AI agent live Danish listings so it can answer "what does a villa in Aarhus cost right now?".
Why use this Boligsiden Scraper?
- Agent phone, email and CVR on every row — the contact data most property scrapers never reach.
- Public valuation alongside the asking price, so over- and under-pricing is visible without a second data source.
- Mortgage figures included — down payment, gross and net monthly mortgage, monthly expense.
- Keyless and login-free — nothing to register, nothing to rotate.
- 48 fields per listing, including GPS, energy label, build year, lot and basement area, and price change.
- Depth handled for you — each property type and location is crawled separately, working around the 10,000-result ceiling on a single search.
What data can you extract?
One row per listing. Anything the source left blank comes back as null.
| Field | Type | Description |
|---|---|---|
caseId | string | Boligsiden case identifier |
url | string | Direct link to the case, usually on the agent's own site |
addressType | string | Property type as Boligsiden classifies it |
status | string | Case status, e.g. open |
roadName | string | Street name |
houseNumber | string | House number |
floor | string | Floor, for flats |
zipCode | number | Danish postcode |
cityName | string | City or town |
municipality | string | Municipality (kommune) |
province | string | Province |
latitude | number | Latitude |
longitude | number | Longitude |
priceCash | number | Asking price in DKK |
pricePerArea | number | Asking price per m² of living area |
priceChangePercentage | number | Percent change since listing |
publicValuation | number | Latest official public property valuation |
monthlyExpense | number | Monthly owner's expense (ejerudgift) |
downPayment | number | Required down payment (udbetaling) |
grossMortgage | number | Gross monthly mortgage payment (brutto) |
netMortgage | number | Net monthly mortgage payment after tax relief (netto) |
housingArea | number | Living area in m² |
weightedArea | number | Weighted area in m² |
lotArea | number | Lot size in m² |
basementArea | number | Basement area in m² |
numberOfRooms | number | Room count |
numberOfBathrooms | number | Bathroom count |
numberOfToilets | number | Toilet count |
numberOfFloors | number | Number of floors in the property |
yearBuilt | number | Year built |
energyLabel | string | Energy label A to G |
hasBalcony | boolean | Balcony present |
hasElevator | boolean | Lift present |
hasTerrace | boolean | Terrace present |
daysOnMarket | number | Days on market in total |
daysListed | number | Days on the current listing |
realtorName | string | Estate agency handling the sale |
realtorPhone | string | Agency phone number |
realtorEmail | string | Agency email address |
realtorCvr | string | Agency CVR company registration number |
realtorCity | string | Agency's own city |
realtorWebsite | string | Agency website |
realtorSellerScore | number | Boligsiden seller rating of the agency |
realtorBuyerScore | number | Boligsiden buyer rating of the agency |
descriptionTitle | string | Listing headline |
imageUrl | string | Largest available photo |
imageCount | number | Number of photos on the case |
scrapedAt | string | When this row was collected |
Sample output
{"caseId": "c5670297-0316-4e37-ac76-2ad3f8be24d0","url": "https://www.edc.dk/sag/?sagsnr=28903879","addressType": "villa","status": "open","roadName": "Azaleagangen","houseNumber": "48","floor": null,"zipCode": 2300,"cityName": "København S","municipality": "København","province": "Byen København","latitude": 55.646954,"longitude": 12.597146,"priceCash": 6795000,"pricePerArea": 58452,"priceChangePercentage": 0,"publicValuation": 950000,"monthlyExpense": 3490,"downPayment": 340000,"grossMortgage": 36399,"netMortgage": 29812,"housingArea": 116,"weightedArea": 116.25,"lotArea": 284,"basementArea": null,"numberOfRooms": 4,"numberOfBathrooms": 1,"numberOfToilets": 1,"numberOfFloors": 2,"yearBuilt": 1963,"energyLabel": "C","hasBalcony": false,"hasElevator": false,"hasTerrace": false,"daysOnMarket": 2,"daysListed": 2,"realtorName": "EDC Poul Erik Bech Sundbyvester Plads","realtorPhone": "32550001","realtorEmail": "289@edc.dk","realtorCvr": "39777347","realtorCity": "København S","realtorWebsite": "https://www.edc.dk/ejendomsmaegler/koebenhavn-s/poul-erik-bech/sundbyvesterplads-2","realtorSellerScore": 9,"realtorBuyerScore": 7.33,"descriptionTitle": "Skønt og stort helårshaveforeningshus i dejlige Bastiansminde - ideelt til børnefamilien","imageUrl": "https://images.boligsiden.dk/images/case/c5670297-0316-4e37-ac76-2ad3f8be24d0/1440x960/d23114ee-541b-437f-b...","imageCount": 5,"scrapedAt": "2026-08-15T07:39:20.818Z"}
How to use the Boligsiden Scraper
Option A — a whole property type nationwide
Pick one or more property types, leave the municipality and postcode fields empty, and set the result limit. The Actor walks each type from the newest listing down.
Option B — specific municipalities
List municipality slugs exactly as they appear in a Boligsiden URL — koebenhavn, aarhus, odense, aalborg. Each is crawled as its own search, which both raises the effective result ceiling and keeps the run focused on the markets you care about. Postcodes work the same way.
Option C — a market segment
Combine a price range, a minimum living area and a minimum room count to isolate a segment — family homes above 140 m² under 5 million DKK, for instance — and let it run on a daily schedule.
Input parameters
| Input | Type | Description |
|---|---|---|
addressTypes | array | Which Boligsiden property types to collect. Pick several to widen the run. Default: ["villa"]. |
municipalities | string | Optional. Municipality slugs as they appear in a Boligsiden URL, e.g. koebenhavn, aarhus, odense, aalborg. Each one is crawled as its own search, so several can be listed. Leave empty for all of Denmark. |
zipCodes | string | Optional. Danish postcodes, e.g. 2100, 8000, 5000. Each one is crawled as its own search. Leave empty to ignore postcodes. |
priceMin | integer | Optional lower bound on the asking price. |
priceMax | integer | Optional upper bound on the asking price. |
areaMin | integer | Optional lower bound on the living area. |
roomsMin | integer | Optional lower bound on the number of rooms. |
sortBy | string | Order the search results before collecting them. Default: "timeOnMarket". |
sortAscending | boolean | On for lowest first (newest listings when sorting by time on market), off for highest first. Default: true. |
maxResults | integer | Stop after this many listings. Each request returns 100. Boligsiden caps one search at 10,000 results, so each selected property type is crawled separately to raise the ceiling. Default: 1000. |
proxyConfiguration | object | Boligsiden answers Danish exits. Residential proxy pinned to Denmark is used automatically. |
Tips for best results
- A comma-separated list of municipalities is crawled one municipality at a time. That is deliberate: Boligsiden accepts a list and then answers with zero hits, so passing them separately is what makes the filter work at all.
- One search stops at 10,000 results. To go deeper, split by municipality or by price band rather than raising the result limit.
condoandvillacover most of the market; addterraced houseandcooperativefor a complete urban picture.- Sort by time on market ascending to capture new listings, or descending to find stale stock worth a low offer.
flooris only filled for flats, andbasementAreaonly where a basement exists — a blank is the source being honest, not a parsing failure.
Integrations
Connect this Actor to Make, Zapier, n8n, Slack, Google Sheets, GitHub, Airtable or any HTTP endpoint through Apify integrations. Every finished run can push its dataset straight into your warehouse, or fire a webhook so a downstream job starts the moment the data lands.
API usage
Run the Actor from your own code with the Apify API. Datasets can be exported as JSON, CSV, Excel, XML, RSS or HTML, and every run is available through the Apify API reference.
curl -X POST "https://api.apify.com/v2/acts/logiover~boligsiden-denmark-property-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"input": {"addressTypes": ["villa", "condo"], "municipalities": "koebenhavn,aarhus", "maxResults": 1000, "sortBy": "timeOnMarket", "sortAscending": true, "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "DK"}}}'
Python, JavaScript, PHP and CLI clients are documented under Apify API clients.
Use with AI agents (MCP)
This Actor is callable from any MCP-compatible client — Claude, Cursor, VS Code or your own agent — through the Apify MCP server. An agent can call it to answer live questions about Danish house prices, agency contacts and how long homes have been on the market instead of guessing from stale training data.
FAQ
Do I need a Boligsiden account or API key?
No. The Actor reads public listing data with no login and no key.
Is the estate agent's phone number really public?
Yes. Boligsiden publishes the responsible agency's contact details on every case, because the agency wants buyers to call. The Actor collects the agency's business contact details, not private individuals'.
How many listings can one run return?
There are roughly 25,000 villas alone on Boligsiden at any time. A single search stops at 10,000 results, so use several property types and municipalities to go beyond that in one run.
What is the difference between priceCash and publicValuation?
priceCash is what the seller asks. publicValuation is the latest official valuation the Danish authorities set for tax purposes. The gap between them is one of the most useful signals in the dataset.
What do grossMortgage and netMortgage mean?
They are the monthly mortgage payments Boligsiden calculates for the listing — brutto before tax relief, netto after it. Danish buyers shop on these numbers, not on the headline price.
Why did my run return zero rows?
Almost always a filter that is too narrow, or a municipality slug that does not exist. Use the spelling from the Boligsiden URL, e.g. koebenhavn rather than københavn or copenhagen.
Which property types are supported?
All of them: villa, terraced house, condo, holiday house, co-operative, allotment, farm, plots, houseboats, business property and more.
Why are some fields null?
Boligsiden fills what the agency submitted. A flat has no lot area, a new build has no price change yet, and not every case has an energy label registered.
Can I export to CSV or Excel?
Yes. Every run's dataset exports as JSON, CSV, Excel, XML, RSS or HTML from the Storage tab, the API, or automatically through an integration.
How fresh is the data?
Every run reads the site live at that moment, so the data is as fresh as the site itself. Schedule the Actor hourly, daily or weekly to build a time series.
How often is the Actor updated?
It is monitored and fixed when the site changes its markup or its endpoints. Report anything that looks wrong through the Issues tab and it gets picked up.
Is it legal to scrape Boligsiden?
This Actor collects only publicly available information — the same pages any visitor can open without logging in. It does not bypass a login, and it does not touch private or personal accounts. Public data collection is legal in most jurisdictions, but how you use the data is your responsibility: if any record contains personal data, GDPR and comparable laws still apply, and you need a lawful basis for processing it. When in doubt, take legal advice. See Apify's ethical web scraping guide.
Related scrapers
- Funda Scraper — Dutch property listings.
- Finn.no Scraper — Norwegian marketplace and property.
- Boliga Scraper — Danish sold-property prices.
- Etuovi Scraper — Finnish property listings.
- Hemnet alternative: Blocket Scraper — Swedish classifieds.