Boliga Scraper - Danish Property Listings avatar

Boliga Scraper - Danish Property Listings

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Boliga Scraper - Danish Property Listings

Boliga Scraper - Danish Property Listings

Scrape boliga.dk, Denmark's leading property portal. Search for-sale homes, apartments, and land by location, price, size, rooms, property type, and build year. Get price, address, specs, energy label, photos, and agent details.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Boliga Scraper

Scrape Boliga.dk — Denmark's leading property portal. Search for-sale homes, apartments, summer houses, and building plots by postal code, municipality, street, price, size, rooms, property type, and build year, search recently sold properties with sale date and asking-vs-sold price, or fetch full details for specific listings by ID. No login, no cookies, no paid proxy required.

What this actor does

  • Three modes: search (filter-driven for-sale listings), sold (recently sold properties, same filters), and byIds (direct lookup by listing ID)
  • Location filters: postal code, all 98 Danish municipalities, street name
  • Full Boliga taxonomy: Villa, Rækkehus, Ejerlejlighed, Fritidshus, Andelsbolig, Landejendom, Helårsgrund, Fritidsgrund, Villalejlighed, Andet
  • Range filters: price, size, rooms, build year
  • 12 sort orders: newest/oldest, price, size, price/m², return on investment
  • Empty fields are omitted — every returned field has a real value

Output per listing

  • estateId — Boliga's internal listing ID
  • title — property type + address summary
  • price, pricePerSqm, priceChangePercent — asking price and recent change
  • publicEvaluationPrice, downPayment
  • address, streetName, zipCode, city, municipality
  • propertyType — Villa / Rækkehus / Ejerlejlighed / Fritidshus / Andelsbolig / Landejendom / Helårsgrund / Fritidsgrund / Villalejlighed / Andet
  • rooms, size (m²), lotSize (m²), basementSize (m²), floor, buildYear
  • energyClass — Danish EU energy label (A–G)
  • daysForSale, createdDate — how long it's been listed
  • lastSoldDate, lastSoldPrice — most recent prior sale, when known
  • soldDate, askingPrice — sale date and originally advertised asking price (mode=sold only)
  • views — page views on Boliga
  • isForeclosure, isSelfSale, isActive — whether the listing is currently active on Boliga
  • isPremiumAgent, agentId — whether the broker is a Boliga premium agent, and their agent registration ID
  • latitude, longitude
  • openHouse — scheduled open-house text, when set
  • photos[], photoCount
  • cadastralNumber — land registry number (mode=byIds only)
  • agentName, agentPhone, agentEmail, agentHomepage — listing broker, when available
  • brokerListingUrl — the listing's page on the broker's own site (mode=byIds only)
  • listingUrl, sourceUrl — canonical boliga.dk listing page
  • recordType: "listing", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch, sold, or byIds
zipCodesarray["2100"]Danish postal codes (mode=search)
municipalitystringOne of Denmark's 98 municipalities (mode=search)
streetstringStreet name filter (mode=search)
estateIdsarrayListing IDs to fetch (mode=byIds)
minPrice / maxPriceintPrice range in DKK
propertyTypesarrayVilla, Rækkehus, Ejerlejlighed, Fritidshus, Andelsbolig, Landejendom, Helårsgrund, Fritidsgrund, Villalejlighed, Andet
minRooms / maxRoomsintRoom count range
minSize / maxSizeintLiving area range in m²
minBuildYear / maxBuildYearintBuild year range
sortstringdate-ddate-d/a, price-d/a, size-d/a, sqmprice-d/a, roi-d/a, createdDate-d/a
maxItemsint50Hard cap on returned listings (1–1000)

Example: apartments for sale in Copenhagen under 4M DKK

{
"mode": "search",
"zipCodes": ["2100", "2200"],
"propertyTypes": ["3"],
"maxPrice": 4000000,
"sort": "price-a",
"maxItems": 50
}

Example: houses in a specific municipality with 3+ rooms

{
"mode": "search",
"municipality": "751",
"propertyTypes": ["1"],
"minRooms": 3,
"minSize": 100,
"maxItems": 100
}

Example: newly built summer houses nationwide

{
"mode": "search",
"propertyTypes": ["4"],
"minBuildYear": 2015,
"sort": "createdDate-d",
"maxItems": 50
}

Example: recently sold villas in Aarhus

{
"mode": "sold",
"municipality": "751",
"propertyTypes": ["1"],
"sort": "date-d",
"maxItems": 50
}

Example: fetch specific listings by ID

{
"mode": "byIds",
"estateIds": ["2331454", "2331455"]
}

Use cases

  • Real estate market research — track asking prices and price-per-m² across postal codes or municipalities
  • PropTech products — feed live Danish listing data into valuation or search tools
  • Relocation services — surface listings matching a client's location, budget, and size criteria
  • Investment analysis — filter by return-on-investment sort order to find yield opportunities
  • Lead generation for agents — monitor new listings and price changes in a target area

FAQ

What data source does this use? The actor reads boliga.dk's own public listing search, the same data shown to visitors on the site.

Is this affiliated with Boliga? No. This is an independent, third-party actor built against Boliga's publicly accessible listing data.

Why do some listings have fewer fields than others? Boliga's brokers control what they publish — a building plot (Helårsgrund/Fritidsgrund) has no size/rooms, and some listings omit energyClass or openHouse. This actor only returns fields with real values; empty fields are omitted rather than sent as null.

What does mode=sold add over mode=search? mode=sold searches Boliga's recently-sold register instead of active for-sale listings, using the same location/price/size/rooms/type filters. Each record's price field is the final sale price; soldDate and askingPrice (the originally advertised price) are included when Boliga publishes them, letting you compare asking vs. actual sale price.

What does mode=byIds add over mode=search? Fetching a listing directly by ID returns extra fields not present in search results: cadastralNumber and full broker contact details (agentPhone, agentEmail, agentHomepage, brokerListingUrl).

How current is the data? Each run reads live from boliga.dk at request time — there is no caching layer.

Does listingUrl open directly for anyone? Yes, in a normal web browser. Like most Danish property sites, boliga.dk sits behind a bot-protection layer that shows a brief automated security check to non-browser traffic (e.g. curl); a real browser passes it transparently in under a second. Photo URLs (photos[]) are served from a separate, unprotected image CDN and load directly everywhere, including in <img> tags.

Can I search all of Denmark at once? Yes — leave zipCodes, municipality, and street all empty to search nationwide, then narrow with price/size/rooms/type filters and maxItems.

Why is municipality a dropdown instead of free text? Denmark has exactly 98 municipalities; using the fixed list avoids typos that would silently return zero results.

Why does an occasional listing show a municipality that looks off for its city? A small share of "for sale by owner" (self-sale) listings on Boliga carry a stale or default municipality code in the source data itself. This actor passes through Boliga's own municipality value as-is; it affects roughly 1 in 30 self-sale listings and is a known upstream data quirk, not a filtering error.