Comparis.ch Real Estate Scraper avatar

Comparis.ch Real Estate Scraper

Pricing

from $0.79 / 1,000 results

Go to Apify Store
Comparis.ch Real Estate Scraper

Comparis.ch Real Estate Scraper

Scrape Swiss real estate from comparis.ch — apartments, houses, rooms, land, for rent or buy. Structured data: gross & net rent, extra costs, rooms, m², floor, year built, coordinates, amenities and photos. Filter by city, price, size and type. No API key required.

Pricing

from $0.79 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

9

Total users

2

Monthly active users

10 hours ago

Last modified

Share

Comparis.ch Real Estate Scraper

Extract Swiss property listings from comparis.ch at scale — apartments, houses, rooms, land and holiday homes, for rent or for sale. Full descriptions, prices, floor area, coordinates, amenities and photos. No API key required.


Why this scraper?

🎯 Built for Switzerland

A dedicated Swiss scraper, not a global tool with a country dropdown. Price handling, room counts and location matching follow how comparis.ch actually publishes listings, in CHF.

🏘️ Every property type

Apartments, houses, flatshare rooms, furnished apartments, land plots and holiday properties — rent or buy, in one input.

📄 Complete listing data

Title, full description, price and price type, rooms, living area, floor and year built, plus every photo published on the listing.

📍 Precise location

Street, street number, postal code and city, with latitude and longitude taken from the listing's own map position.

🔎 Server-side filters

City or canton, price range, room range and listing age are applied at the source, so you retrieve only what you asked for.

🔗 Direct URL mode

Paste comparis.ch search result URLs and the scraper follows them exactly, filters and all.


Input parameters

ParameterTypeDefaultDescription
startUrlsarray(empty)Comparis.ch search result page URLs to scrape directly. When provided, all filters below are ignored.
locationstring"zuerich"Swiss city or canton slug, for example zuerich, bern, basel, luzern, lausanne, geneve, zug, winterthur.
propertyTypestring"wohnung"wohnung, haus, wg-zimmer, moebilierte-wohnung, grundstueck or ferienimmobilie.
dealTypestring"mieten"mieten for rentals, kaufen for properties for sale.
sortBystring"newest"newest, relevance, price_asc, area or city.
minRoomsnumber(empty)Minimum number of rooms, for example 2, 2.5, 3.
maxRoomsnumber(empty)Maximum number of rooms.
minPriceChfinteger(empty)Minimum price in CHF — per month for rentals, total for sales.
maxPriceChfinteger(empty)Maximum price in CHF.
daysOldinteger(empty)Only return listings published within the last N days.
maxItemsinteger20Maximum number of listings to return.
fetchDetailsbooleantrueFetch each listing's detail page for the full description, all photos, coordinates and amenities.

Output schema

Every field below is present on every record. Fields comparis.ch does not publish for a given listing are returned as null rather than omitted.

Always present

FieldTypeDescription
adIdnumberComparis listing ID, stable for the life of the advert.
urlstringDirect link to the listing on comparis.ch.
titlestringListing headline as published by the advertiser.
propertyTypestringProperty category in German, for example Wohnung, Villa, Reiheneinfamilienhaus.
dealTypestringrent or buy.
streetstringStreet name and number where published, otherwise empty.
postalCodestringFour-digit Swiss postal code.
citystringMunicipality name.
roomsnumberNumber of rooms, half rooms included (null if not published).
areaM2numberLiving area in square metres (null if not published).
priceTextstringPrice as displayed, for example CHF 1'425.
priceValuenumberPrice as a plain number for sorting and filtering.
currencystringAlways CHF.
priceTypestringWhat the price covers, for example Mietpreis pro Monat or Kaufpreis.
partnerNamestringAdvertising agency or portal that supplied the listing.
imageUrlstringPrimary listing photo.
imageUrlsarrayAll listing photos available at this stage.
listedDatestringWhen the listing was published, ISO 8601.
contentHashstringHash of ID, price, rooms and area — changes when the advert changes.
sourcestringAlways comparis.ch.
scrapedAtstringTimestamp of retrieval, ISO 8601.

With fetchDetails: true

FieldTypeDescription
descriptionstringFull advertiser description as plain text.
featuresarrayAmenities and property attributes, for example Balkon/Terrasse/Sitzplatz, Lift, Kinderfreundlich (null when the advertiser lists none).
floorstringFloor for apartments, number of storeys for houses (null if not published).
constructionYearnumberYear built (null if not published).
latitudenumberListing map latitude.
longitudenumberListing map longitude.

Detail fetching also upgrades street, postalCode, city, rooms, areaM2, priceText, priceValue, imageUrl and imageUrls to the fuller values on the listing page.

Example record

{
"adId": 37996139,
"url": "https://www.comparis.ch/immobilien/marktplatz/details/show/37996139",
"title": "Schöne 1-Zimmerwohnung in Zürich (befristet bis 03.2027)",
"propertyType": "Wohnung",
"dealType": "rent",
"street": "Langgrütstrasse 25",
"postalCode": "8047",
"city": "Zürich",
"rooms": 1,
"areaM2": 32,
"floor": "3",
"priceText": "CHF 1'425",
"priceValue": 1425,
"currency": "CHF",
"priceType": "Mietpreis pro Monat",
"partnerName": "Immobilien Zürich AG",
"imageUrl": "https://mapl-assets.b-cdn.net/immobilien/images/datacollect/e9906f3d-411d-64a4-0475-96727e4c11ce.avif",
"imageUrls": [
"https://mapl-assets.b-cdn.net/immobilien/images/datacollect/e9906f3d-411d-64a4-0475-96727e4c11ce.avif",
"https://mapl-assets.b-cdn.net/immobilien/images/datacollect/7c21a0ab-9d34-41ee-9f10-2b6c1a0d5e83.avif"
],
"listedDate": "2026-09-10T05:59:21",
"latitude": 47.37279578179405,
"longitude": 8.501640337724266,
"constructionYear": null,
"description": "Helle 1-Zimmerwohnung an ruhiger Lage in Zürich Albisrieden. Balkon nach Süden, Tram- und Busverbindung in Gehdistanz. Befristet bis März 2027.",
"features": ["Balkon/Terrasse/Sitzplatz", "Haustiere erlaubt"],
"contentHash": "a41f9c72b0e5d183",
"source": "comparis.ch",
"scrapedAt": "2026-09-10T05:43:15.177Z"
}

Examples

Rental apartments in Zürich, newest first:

{
"location": "zuerich",
"propertyType": "wohnung",
"dealType": "mieten",
"sortBy": "newest",
"maxItems": 100
}

Family houses for sale in Bern up to CHF 1.5m:

{
"location": "bern",
"propertyType": "haus",
"dealType": "kaufen",
"minRooms": 4,
"maxPriceChf": 1500000,
"maxItems": 200
}

Scrape a comparis.ch search URL directly:

{
"startUrls": [
{ "url": "https://www.comparis.ch/immobilien/result/list?requestobject=%7B%22DealType%22%3A10%2C%22RootPropertyTypes%22%3A%5B1%5D%2C%22LocationSearchString%22%3A%22basel%22%2C%22Sort%22%3A3%7D" }
],
"maxItems": 100
}

Daily feed of new listings only:

{
"location": "geneve",
"propertyType": "wohnung",
"dealType": "mieten",
"daysOld": 1,
"sortBy": "newest",
"maxItems": 500
}

💰 Pricing

$0.99 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.

ResultsCost
100~$0.10
1,000~$0.99
10,000~$9.90
100,000~$99.00

Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Subscription tiers lower the rate further, down to $0.59 per 1,000 at the highest tier. Use the Max Items cap in the input to control your spend exactly.


Performance

Run sizeTypical time
20 results with detailsunder 1 minute
100 results with details2–3 minutes
1,000 results with details20–30 minutes

Turning fetchDetails off returns roughly ten times as many listings in the same time, with the list-level fields only.


Known limitations

  • Living area, year built and floor are frequently not published by the advertiser, especially on rental listings. These fields return null rather than a guess.
  • A single search returns at most 1,000 listings. Split larger jobs by city, price band or property type.
  • Very large runs can stop short of the requested maxItems when the source throttles sustained traffic. The run still finishes successfully with the listings it collected; re-running picks up the rest.
  • Descriptions are in the language the advertiser used — German, French or Italian depending on the region.
  • Advertiser contact names, phone numbers and email addresses are never returned.

Technical details

  • Source: comparis.ch — Swiss property marketplace, rentals and sales
  • Coverage: nationwide, filterable by city or canton, price, rooms and listing age
  • Memory: 256 MB
  • Retry: automatic retry on rejected and failed requests, with a fresh identity per attempt and an automatic fallback route when the source throttles

Rate this actor

If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl