Ejendomstorvet Scraper - Danish Commercial Property
Pricing
from $1.20 / 1,000 result scrapeds
Ejendomstorvet Scraper - Danish Commercial Property
Scrape commercial property listings from Ejendomstorvet.dk, Denmark's largest portal for erhvervslokaler: offices, retail, warehouses and commercial land for rent or sale. Prices, areas, rent per m2, broker contacts.
Pricing
from $1.20 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Ejendomstorvet Scraper
Scrape commercial property listings from Ejendomstorvet.dk, Denmark's largest portal for erhvervslokaler and erhvervsejendomme. The portal carries around 11,000 active listings from professional brokers across the whole country: offices (kontorlokaler), retail (butikslokaler), warehouses (lagerlokaler), clinics, hotels, restaurants and commercial land (erhvervsgrunde), for rent and for sale.
Each result comes straight from the portal's own data feed, so you get clean structured numbers instead of parsed page text: yearly rent, rent per m2 per year (the standard Danish commercial quote), sale prices, floor and plot areas, energy labels, coordinates, and the listing broker's name and phone number.
Why use it
- Market research — track asking rents and sale prices per municipality or segment across Denmark.
- Lead generation — every listing includes the broker's name and phone number, plus a link to the broker's own site.
- Site selection — filter offices, retail or warehouse space by city and compare rent per m2 across locations.
- Investment screening — sale listings include asking price, areas and the advertised return percentage where brokers publish one.
- Monitoring — run it on a schedule and diff against yesterday's dataset to catch new listings the day they appear.
How to scrape Ejendomstorvet data
- Set Location to a Danish city or municipality —
København,Aarhus,Odense,Aalborg,Esbjerg. ASCII spellings work too (Kobenhavn). Leave it empty to scrape the entire country. - Pick a Listing Type: rent (leje), sale (salg) or both.
- Pick a Property Segment: office (kontor), retail (butik), warehouse (lager), commercial land (grund), clinic, hotel & restaurant, or all segments.
- Set Max Results and run. Results land in the dataset as one flat JSON object per listing.
Example: all office space for rent in København:
{"searchQuery": "København","listingType": "rent","segment": "kontor","maxResults": 200}
Example: warehouse and production space around Aarhus:
{"searchQuery": "Aarhus","segment": "lager","maxResults": 100}
Example: commercial land for sale, whole country, largest plots first:
{"listingType": "sale","segment": "grund","sort": "area_desc","maxResults": 500}
An empty input {} works as well — it returns listings from all of Denmark up to the default cap of 100.
Input options
| Field | Type | Description |
|---|---|---|
searchQuery | string | City or municipality (e.g. København, Aarhus). Empty = all of Denmark. |
listingType | string | all (default), rent (leje) or sale (salg). |
segment | string | all (default), kontor, butik, lager, grund, klinik, restaurant, andre. |
sort | string | created_desc (newest first), salesprice_asc/desc, area_asc/desc, return_asc/desc, or empty for the site default. |
maxResults | integer | Cap on returned listings. Default 100, hard maximum 12,000. |
proxyConfiguration | object | Apify proxy settings. Danish residential proxy is the default. |
Output fields
| Field | Example | Description |
|---|---|---|
title | "Attraktivt kontorlejemål i Indre By" | Listing headline |
listingType | "rent" | rent or sale |
segment | "Kontor" | Commercial segment |
usageProposals | ["Kontor", "Klinik"] | All proposed uses |
price | 918272 | Sale: total price. Rent: yearly rent. Null when on request |
currency | "DKK" | Always DKK, never converted |
priceUnit | "DKK/year" | DKK total for sales, DKK/year for rentals |
rentPerM2Year | 2100 | Rent in kr. per m2 per year (rentals only) |
yearlyOperatingCostDkk | 72000 | Yearly operating cost |
returnPercent | 7.25 | Advertised return (investment sales) |
surface | 544 | Floor area in m2 |
groundSurface | 3749 | Plot area in m2 |
address | "Humletorvet 27, 4., 1799 København V" | Full address |
postalCode | "1799" | Danish postal code |
city | "København V" | Postal district |
municipality | "København" | Municipality |
latitude / longitude | 55.67 / 12.58 | WGS84 coordinates |
energyLabels | ["D"] | Energy label(s) |
newListing | true | Portal's "new" flag |
promoted | false | Paid placement flag |
brokerName | "Nordicals Sjælland P/S" | Listing broker |
brokerPhone | "+45 59 50 12 12" | Broker phone |
imageUrl | "https://img.ejendomstorvet.dk/..." | Primary photo |
url | "https://www.ejendomstorvet.dk/leje/..." | Listing on the portal |
externalListingUrl | "https://nordicals.dk/..." | Listing on the broker's site |
id | "7ed2a06e-..." | Portal listing UUID |
source | "ejendomstorvet.dk" | Data source |
scrapedAt | "2026-08-18T10:00:00.000Z" | Scrape timestamp |
Example output
{"title": "1.129 m² nyopført og funktionel højloftet lagerejendom og kontorfaciliteter","listingType": "rent","segment": "Lager & produktion","usageProposals": ["Lager", "Lager & produktion"],"price": 784655,"currency": "DKK","priceUnit": "DKK/year","rentPerM2Year": 758,"yearlyOperatingCostDkk": 72000,"returnPercent": null,"surface": 1129,"groundSurface": 17681,"address": "Aa.Louis-Hansens Alle 16A, 3060 Espergærde","streetName": "Aa.Louis-Hansens Alle","postalCode": "3060","city": "Espergærde","municipality": "Helsingør","latitude": 55.9962,"longitude": 12.5423,"energyLabels": ["Ikke krav om energimærke"],"newListing": true,"promoted": false,"brokerName": "EDC Erhverv Poul Erik Bech","brokerPhone": "+45 58 58 88 88","imageUrl": "https://img.ejendomstorvet.dk/...","url": "https://www.ejendomstorvet.dk/leje/nordsjaelland/helsingoer/lager-produktion/03e670be-938e-44f1-b41a-c9b522b1ec65","externalListingUrl": "https://www.edc.dk/erhverv/...","id": "03e670be-938e-44f1-b41a-c9b522b1ec65","source": "ejendomstorvet.dk","scrapedAt": "2026-08-18T10:00:00.000Z"}
Pricing and cost estimate
The actor charges a small start fee plus a fee per result. On top of that, standard Apify platform usage applies (compute and proxy). A typical run is light: the actor talks to the portal's JSON feed directly, about 20 listings per request, no browser.
As a working number, expect roughly $0.005-0.006 per listing all-in at the default settings. A 500-listing run is around $3, and a full-portal snapshot (~11,000 listings) stays in the tens of dollars, mostly per-result fees.
Note on cost timing: a run's usage cost only settles after the run reports SUCCEEDED. Reading the cost of a run that is still in progress shows a number far below the final one — don't size budgets off a partial run.
Limitations
- The portal's own detail API requires an API key, so fields that only exist on the detail page (full description text, all photos, floor plans) are not included. The search feed already carries prices, areas, addresses, coordinates and broker contacts.
priceis null when a broker lists "price on request" — this is the portal's data, not a scrape failure.- Multi-unit rental groups are returned as individual listings, matching what the portal shows with grouping off.
- Rent figures are yearly, as quoted on the portal. Divide by 12 for monthly rent.
- Free-text location fallback matches literally (addresses, titles), so a misspelled city name can return few or zero results. Municipality names are the reliable filter.
Fair use
The actor scrapes only publicly visible listing data at a polite request rate through the portal's public search feed. Respect Ejendomstorvet's terms of service and Danish law when using the data, especially broker contact details.