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 listings from comparis.ch — apartments, houses, land, rooms. Filter by city, property type, and deal 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

7

Total users

5

Monthly active users

4 days ago

Last modified

Share

Comparis.ch Real Estate Scraper

Extract property listings from comparis.ch at scale, in a clean, consistent structure ready for market analysis, valuation models, lead generation and monitoring. No API key required.


Why this scraper?

🎯 Built for Switzerland

A dedicated Swiss scraper, not a global tool with a country dropdown. Locations, price formats and currency (CHF) are tuned for comparis.ch.

🏠 Property characteristics

Bedrooms, rooms, surface and property type in structured fields, ready for filtering and analysis.

📄 Full listing content

Complete listing description and title for every record, with a direct link back to the source.

📍 Precise location

Address fields plus latitude/longitude for mapping and radius analysis.

🔁 Repost & change detection

Every record carries isRepost and changeStatus, so daily feeds return genuinely new listings instead of reposted duplicates.


Input parameters

ParameterTypeDefaultDescription
propertyTypestring"wohnung"Type of property to search for.
locationstring"zuerich"Swiss city or canton name. Examples: zuerich, bern, basel, luzern, lausanne, geneve, zug, winterthur. Leave empty when using startUrls.
sortBystring"newest"Sort order for results.
minPriceinteger(empty)Minimum listing price (local currency). Leave empty for no minimum.
maxPriceinteger(empty)Maximum listing price (local currency). Leave empty for no maximum.
daysOldinteger(empty)Only return listings published within the last N days.
fetchDetailsbooleanfalseON: fetches full job description, salary, company info, and all details. OFF: returns basic listing info only (faster, lower cost).
maxItemsinteger100Maximum number of listings to return.
startUrlsarray(empty)Comparis.ch search result page URLs to scrape directly. When provided, all filter inputs below are ignored.
dealTypestring"mieten"Whether to search for rentals or properties for sale.
minRoomsnumber(empty)Minimum number of rooms (e.g. 2, 2.5, 3).
maxRoomsnumber(empty)Maximum number of rooms (e.g. 4, 4.5).
minPriceChfinteger(empty)Minimum price in CHF per month (rent) or total (buy).
maxPriceChfinteger(empty)Maximum price in CHF per month (rent) or total (buy).

Output schema

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

FieldTypeDescription
adIdnumberComparis.ch internal listing ID
urlstringDirect link to the listing.
titlestringListing title
propertyTypestringe.g. wohnung, haus
dealTypestringmieten or kaufen
streetstringStreet address
postalCodestringSwiss postal code
citystringCity
roomsnumberNumber of rooms
areaM2numberFloor area in m²
floorstringFloor level
priceTextstringPrice as displayed
priceValuenumberPrice in CHF (numeric)
currencystringAlways CHF
priceTypestringe.g. monthly, total
partnerNamestringPartner name.
imageUrlstringImage url.
imageUrlsarrayImage urls.
listedDatestringDate the listing was published.
latitudenumberLatitude of the property.
longitudenumberLongitude of the property.
constructionYearnumberConstruction year.
descriptionstringFull listing description in plain text.
descriptionMarkdownstringDescription in Markdown/plain text.
featuresarrayFeature list as published on the listing.
contentHashstringStable hash of the listing content, used for repost and change detection.
sourcestringSource.
scrapedAtstringTimestamp when this record was scraped.

Example record

{
"adId": 37589670,
"url": "https://www.comparis.ch/immobilien/marktplatz/details/show/37589670",
"title": "Helle und freundliche 2-Zimmer-Wohnung in West-Oerlikon",
"propertyType": "Wohnung",
"dealType": "rent",
"street": "Binzwiesenstrasse 40",
"postalCode": "8057",
"city": "Zürich",
"rooms": 2,
"areaM2": null,
"floor": "2",
"priceText": "CHF 1'737",
"priceValue": 1737,
"currency": "CHF",
"priceType": "Mietpreis pro Monat",
"partnerName": "homegate.ch",
"imageUrl": "https://www.comparis.ch/immobilien/api/image/getdirect?guid=b8d20c4f-6a1e-4bde-bd68-eb4a3d74ba8d&w=1200&h=900&rm=2&mw=1024&mh=1024",
"imageUrls": [
"https://www.comparis.ch/immobilien/api/image/getdirect?guid=b8d20c4f-6a1e-4bde-bd68-eb4a3d74ba8d&w=1200&h=900&rm=2&mw=10 …",
"https://www.comparis.ch/immobilien/api/image/getdirect?guid=4e09096e-1c8d-4c6c-8793-ebc9c018124a&w=1200&h=900&rm=2&mw=10 …",
"https://www.comparis.ch/immobilien/api/image/getdirect?guid=bafd5fa3-13fe-4265-b1b0-c6be1e15f812&w=1200&h=900&rm=2&mw=10 …",
"https://www.comparis.ch/immobilien/api/image/getdirect?guid=b8eb09df-e918-40ab-8e7e-a79c4d1fd5fc&w=1200&h=900&rm=2&mw=10 …"
],
"listedDate": "2026-07-02T17:27:49",
"latitude": 47.404073255099696,
"longitude": 8.555843446947767,
"constructionYear": 1956,
"description": "**Per 1. Oktober 2026** vermieten wir diese 2-Zimmer-Wohnung im westlichen Teil von Zürich-Oerlikon. Die Liegenschaft befindet sich in einem ruhigen Wohnquartier und verfügt über eine gute Anbindung a …",
"descriptionMarkdown": "**Per 1. Oktober 2026** vermieten wir diese 2-Zimmer-Wohnung im westlichen Teil von Zürich-Oerlikon. Die Liegenschaft befindet sich in einem ruhigen Wohnquartier und verfügt über eine gute Anbindung a …",
"features": [
"Kabel-TV"
],
"contentHash": "18dfbc3d7b5d8be0",
"source": "comparis.ch",
"scrapedAt": "2026-07-02T15:31:14.494Z"
}

Examples

Listings in Zürich:

{
"location": "Zürich",
"maxItems": 100
}

Cap the price:

{
"location": "Zürich",
"maxItems": 100,
"maxPrice": 1150000
}

Scrape a specific search URL:

{
"startUrls": [
{
"url": "https://www.comparis.ch/"
}
],
"maxItems": 200
}

Daily feed of new listings (run on a schedule):

{
"location": "Zürich",
"daysOld": 1,
"maxItems": 500
}

Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours.


💰 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.9
100,000~$99

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 results cap in the input to control your spend exactly.


Performance

Run sizeTypical time
100 resultsunder 1 minute
1,000 results2–4 minutes
10,000 results20–35 minutes

Known limitations

  • Some fields (surface, year built, energy label) are only returned when the lister publishes them — expect null on a share of records.
  • Listing photos and agent details vary per listing; the scraper returns what the source publishes and never invents data.
  • Very large result sets are bounded by the source's own paging limits.
  • Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.

Technical details

  • Source: comparis.ch — Switzerland property listings
  • Coverage: everything the public search exposes, filterable via the input parameters above
  • Retry: automatic retry on network errors with exponential backoff

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