Boliga Denmark Real Estate Scraper avatar

Boliga Denmark Real Estate Scraper

Pricing

from $0.70 / 1,000 dataset items

Go to Apify Store
Boliga Denmark Real Estate Scraper

Boliga Denmark Real Estate Scraper

Scrape property listings from Boliga.dk (Denmark). Search by zip code, free text, or result URLs. Optionally fetch full listing details including agent contact, BBR building data, sales history, and price analytics.

Pricing

from $0.70 / 1,000 dataset items

Rating

0.0

(0)

Developer

Data Scrapers

Data Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Boliga Scraper creates a structured dataset of property listings collected from Boliga in Denmark. Each dataset item is one home and can include the street, city, zip code, price, rooms, living area, property type, energy class, and listing URL. Query the source with a zip code, a place name, or a Boliga result URL, limit the run with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Boliga Scraper — input to structured data

Dataset at a glance

PropertyValue
Sourceboliga.dk
Record unitOne property listing
Input methodssearchQueries, startUrls, price and size filters
Main identifiersid and url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML, and other Apify dataset exports
Update modelFresh records per Actor run
Pricing$1.00 per 1,000 listings. Optional details from $2.00 per 1,000.

Coverage and available records

The Actor searches Boliga by zip code, place name, or a copied result or listing URL. The saved sample is a villa in Hobro, zip 9500.

Supported:

  • Zip codes and free-text places
  • Property type, price, rooms, size, lot size, year built, days on market, and energy class filters
  • Broker, self-sale, and foreclosure exclusions
  • A result cap through maxItems. 0 means no cap

Not currently collected unless extractDetails is true:

  • Agent contact, building records, sales history, and the full photo gallery
  • Those extra pages charge listing-details

Data dictionary

Fields match a saved search result. Prices are Danish kroner.

FieldTypeNullableDescriptionExample
idnumberNoBoliga listing id. Best field for deduplication.2352957
urlstringYesPublic address URL.https://www.boliga.dk/adresse/godt-gemt-2-9500-hobro-1451200001
streetstringYesStreet and number.Godt Gemt 2
citystringYesCity name.Hobro
zipCodenumberYesPostal code.9500
pricenumberYesAsking price in DKK.645000
roomsnumberYesRoom count.3
sizenumberYesLiving area in square meters.127
propertyTypeNamestringYesType label.Villa
energyClassstringYesEnergy label.D
latitudenumberYesLatitude.Present on the saved row
longitudenumberYesLongitude.Present on the saved row
squaremeterPricenumberYesPrice per square meter.Present on the saved row

Example dataset record

{
"id": 2352957,
"url": "https://www.boliga.dk/adresse/godt-gemt-2-9500-hobro-1451200001",
"street": "Godt Gemt 2",
"city": "Hobro",
"zipCode": 9500,
"price": 645000,
"rooms": 3.0,
"size": 127,
"propertyTypeName": "Villa",
"energyClass": "D"
}

The saved row came from a zip 9500 search with extractDetails off.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
startUrlsarrayNo[{"url": "https://www.boliga.dk/resultat?searchTab=0&sort=daysForSale-a&zipCodes=9500"}]Paste Boliga search result URLs (e.g.
searchQueriesarrayNo["9500"]Danish zip codes (e.g.
propertyTypesarrayNo``villa, raekkehus, ejerlejlighed, fritidshus, andelsbolig, landejendom, helaarsgrund, fritidsgrundLeave empty for all property types.
priceMinintegerNo``Minimum asking price in Danish kroner.
priceMaxintegerNo``Maximum asking price in Danish kroner.
roomsMinintegerNo``Minimum number of rooms.
roomsMaxintegerNo``Maximum number of rooms.
sizeMinintegerNo``Minimum living area in square meters.
sizeMaxintegerNo``Maximum living area in square meters.
lotSizeMinintegerNo``Minimum plot/lot size in square meters.
lotSizeMaxintegerNo``Maximum plot/lot size in square meters.
buildYearMinintegerNo``Minimum construction year.
buildYearMaxintegerNo``Maximum construction year.
daysForSaleMinintegerNo``Minimum days the listing has been on the market.
daysForSaleMaxintegerNo``Maximum days the listing has been on the market.
energyClassMinstringNo``Minimum energy label (e.g.
energyClassMaxstringNo``Maximum energy label (e.g.
zipCodesstringNo``Comma-separated Danish zip codes applied to all search queries (e.g.
municipalityintegerNo``Danish municipality code (kommunekode), e.g.
sortstringNodaysForSale-adaysForSale-a, daysForSale-d, price-a, price-d, views-d, squaremeterPrice-a, squaremeterPrice-d, rooms-d, size-d, buildYear-dHow to sort search results.
hideBrokerListingsbooleanNoFalseExclude standard broker listings from results.
hideSelfSalebooleanNoFalseExclude private / self-sale listings.
hideForeclosurebooleanNoFalseExclude foreclosure listings.
extractDetailsbooleanNoFalseWhen enabled, fetches full listing details for each result (agent contact, BBR building data, sales history, price analytics, full photo gallery).
detailConcurrencyintegerNo10Maximum number of listings processed in parallel when detail extraction is enabled.
maxItemsintegerNo0Maximum number of listings to scrape (0 = unlimited).
proxyConfigurationobjectNo{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}Proxy settings.

A run needs searchQueries or startUrls.

Minimal request:

{
"searchQueries": ["9500"],
"maxItems": 10
}

Retrieve the data through the API

  1. Start datascrapers/boliga-dk-scraper with the JSON input.
  2. Wait until the run finishes, or call the synchronous dataset endpoint.
  3. Read items from the run's default dataset.
  4. Paginate with dataset offset and limit.
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("datascrapers/boliga-dk-scraper").call(run_input={
"searchQueries": ["9500"],
"maxItems": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["id"], item["street"], item["price"])

Other languages are listed on the Actor's API tab. This is the Apify Actor API, not a Boliga API.

Data quality and record handling

  • One dataset item is one listing. Each pushed listing charges one dataset-item event.
  • Deduplicate on id.
  • extractDetails charges one listing-details event per enriched listing.
  • Prices are kroner as returned by Boliga. The Actor does not convert them.
  • rooms can be a decimal.

Pricing and cost examples

The price file sets $1.00 per 1,000 listings and $2.00 per 1,000 listing details on the free plan. Bronze, Silver, and Gold rates are lower. Platinum and Diamond use the Gold rate.

EventFreeBronzeSilverGold
dataset-item per 1,000$1.00$0.90$0.80$0.70
listing-details per 1,000$2.00$1.70$1.50$1.30

A free-plan run of 1,000 listings with details is $3.00 in events. Platform usage, including compute and proxy, is billed separately by Apify.

Limitations and responsible data use

  • Coverage is the search the input requests, not every Danish address.
  • Place names must match Boliga's search. Zip codes are the more stable filter.
  • Asking prices change. This dataset is not a historical archive unless extractDetails returns the sales history for that run.
  • You are responsible for complying with Boliga's terms and applicable law.

Dataset questions

What does one dataset item represent?

One Boliga property listing from a search or listing URL.

Which field should I use as a unique identifier?

Use id.

Are fields nullable or conditional?

Yes. Detail-only blocks are present when extractDetails is enabled and the listing page returns them.

Can I retrieve the records as CSV or JSON?

Yes. Export the default dataset as JSON, CSV, Excel, XML, or another Apify format.

How do I paginate large datasets?

Use limit and offset on the dataset items endpoint. maxItems limits how many rows the run saves.

Does the Actor return historical data?

The search row is the current listing. Sales history is conditional on extractDetails.

What counts as a billable result?

One dataset-item event per saved listing, plus one listing-details event when detail extraction runs for that listing.

Data Scrapers support

Questions about this dataset: stardustspotlight@gmail.com