ImmoScout24.ch Commercial Scraper — Swiss Offices & Gewerbe avatar

ImmoScout24.ch Commercial Scraper — Swiss Offices & Gewerbe

Pricing

from $20.00 / 1,000 result scrapeds

Go to Apify Store
ImmoScout24.ch Commercial Scraper — Swiss Offices & Gewerbe

ImmoScout24.ch Commercial Scraper — Swiss Offices & Gewerbe

Scrape commercial property listings from immoscout24.ch (Switzerland): offices, Gewerbe, storage and building land. Rent and sale, CHF prices with per-m² units, surfaces, addresses and coordinates.

Pricing

from $20.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

ImmoScout24.ch Commercial Scraper

Scrape commercial real estate listings from immoscout24.ch, Switzerland's largest property portal (SMG Swiss Marketplace Group). Offices, Gewerbe, storage and building land, for rent and for sale, across all 26 cantons.

This is the Swiss platform. It is a different company and a different website than German immobilienscout24.de.

What you get

Structured JSON for every listing: title, description, CHF price with its exact unit (commercial rents are usually quoted per m² per year), gross and net rent, surfaces, full address with coordinates, canton, category tags, photos and the listing URL.

Price on application (Preis auf Anfrage) is common in commercial real estate. Those listings keep price: null. The scraper never invents a number.

Use cases

  • Track office and retail rents per m² across Swiss cities
  • Build a pipeline of available commercial spaces for a relocation or expansion search
  • Monitor building land (Bauland) supply and asking prices per canton
  • Feed availability data into brokerage, valuation or market research tools
  • Watch commercial supply in a specific city or canton over time

How to scrape ImmoScout24.ch data

  1. Pick a location. Swiss city or canton names work in German, French or Italian spelling: Zürich, Genève, Lugano, Bern, Basel, Waadt.
  2. Pick a segment and listing type (rent or sale).
  3. Set maxResults and run. The scraper resolves the location, walks the result pages (20 listings per page) and pushes each listing as one dataset item.

The site's anti-bot protection (DataDome) is handled automatically by the built-in unlocking service. You do not need to configure anything for it.

Example: offices for rent in Zürich

{
"searchQuery": "Zürich",
"segment": "office",
"listingType": "rent",
"maxResults": 100
}

Example: building land for sale in Bern

{
"searchQuery": "Bern",
"segment": "land",
"listingType": "sale",
"maxResults": 50
}

Example: storage space in Geneva, French spelling

{
"searchQuery": "Genève",
"segment": "storage",
"listingType": "rent",
"maxResults": 50
}

Example: your own filtered search URL

Set filters on immoscout24.ch (price band, surface, subtypes) and paste the result URL:

{
"startUrls": [{ "url": "https://www.immoscout24.ch/de/buero-gewerbe-industrie/mieten/kanton-zuerich?pf=100&pt=400" }],
"maxResults": 200
}

Output example

{
"id": "4003298932",
"title": "Moderne Bürofläche an zentraler Lage",
"description": "Per sofort oder nach Vereinbarung vermieten wir diese helle Bürofläche...",
"segment": "office",
"listingType": "rent",
"categories": ["OFFICE"],
"price": 280,
"currency": "CHF",
"priceUnit": "CHF/m²/Jahr",
"grossPrice": 280,
"netPrice": 280,
"surface": 383,
"totalFloorSpace": 383,
"singleFloorSpace": null,
"lotSize": null,
"floor": 1,
"yearBuilt": 2008,
"street": "Hardturmstrasse 101",
"postalCode": "8005",
"city": "Zürich",
"canton": "ZH",
"latitude": 47.39,
"longitude": 8.51,
"agencyLogoUrl": "https://cdn.immoscout24.ch/logos/l_h318415_example.png",
"language": "de",
"imageUrl": "https://cdn.immoscout24.ch/listings/v2/.../image/....jpg",
"imageUrls": ["https://cdn.immoscout24.ch/listings/v2/.../image/....jpg"],
"createdAt": "2026-08-05T15:30:09.565Z",
"url": "https://www.immoscout24.ch/mieten/4003298932",
"source": "immoscout24.ch",
"scrapedAt": "2026-08-18T12:00:00.000Z"
}

Price units explained

Swiss commercial listings quote prices in several ways. The priceUnit field always tells you which one you are looking at:

priceUnitMeaningTypical for
CHF/m²/JahrRent per m² per yearOffices, retail, industrial
CHF/MonatTotal rent per monthSmall units, storage rooms
CHFPurchase priceSale listings, building land
CHF/m²Purchase price per m²Some land listings
nullPrice on applicationCommon across the vertical

grossPrice and netPrice carry Brutto- and Nettomiete in the same unit where the lister published both.

Input reference

FieldTypeDescription
searchQuerystringSwiss city or canton (DE/FR/IT spelling). Empty = Kanton Zürich
segmentstringoffice, commercial, storage, land or all
listingTypestringrent or sale
startUrlsarrayFull immoscout24.ch search URLs, overrides the fields above
maxResultsintegerCap on returned listings (default 100)
brightDataApiKeystringOptional own unlocker key, normally leave empty
proxyConfigurationobjectNot used for fetching, kept for platform compatibility

Segment notes: the segments follow the site's own search routes. For sale listings the site has one shared commercial route, so office, commercial, storage and all return the same sale results (use the categories field to filter). Building land (land) is sale-only on the site.

Cost of usage

You pay per result plus a small run start fee. One fetched page yields 20 listings, so a 100-listing run needs about 5 page fetches and typically finishes in under a minute. As a rule of thumb, expect roughly $0.02 per result including compute at default settings.

A run's usage cost only settles after the run reports SUCCEEDED. Reading the dataset mid-run shows a partial cost that can be far lower than the final one.

Good to know

  • The site serves at most 1000 results per search. Searches over that cap get a log warning; split by city or segment for full coverage.
  • Listings are deduplicated by listing ID within a run, also across multiple start URLs.
  • The listing's own offerType decides listingType in the output, so a mixed start URL still labels every row correctly.
  • Listing text comes in the lister's primary language (language field: de, fr, it or en).
  • Long runs survive platform migrations: the scraper resumes from the last completed page instead of restarting.

Legality

This scraper reads only publicly available listing data, the same information any visitor sees in a browser. It stores no personal data beyond what listers publish themselves (agency names and business contact details). For commercial reuse of the data, check the portal's terms and applicable law in your jurisdiction.