Comparis.ch Scraper — Swiss Real Estate & Cars (with Emails) avatar

Comparis.ch Scraper — Swiss Real Estate & Cars (with Emails)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Comparis.ch Scraper — Swiss Real Estate & Cars (with Emails)

Comparis.ch Scraper — Swiss Real Estate & Cars (with Emails)

Extract detailed Swiss real estate and vehicle listings including pricing, specifications, images, and seller contact info. Get comprehensive data on properties (location, size, features) and cars (make, model, mileage, condition, technical specs) with historical pricing and market comparisons.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(6)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

3

Bookmarked

30

Total users

3

Monthly active users

7 hours ago

Last modified

Share

Turn any Comparis.ch search or listing URL into structured Swiss property and vehicle rows. Scrape price, rooms, living space, address, coordinates, images, and full specifications from both the real-estate marketplace and the car marketplace — then optionally discover the listing broker's contact email and website.

One actor for Swiss property and Swiss cars, with broker contact discovery built in.

Why Use This Scraper?

  • Broker email discovery — find the agency's website and contact email behind a listing, billed only when an email is actually found
  • Payment qualification — flag which brokers run Stripe, Shopify, PayPal or similar, at no extra charge
  • Both marketplaces in one actor — real estate (/immobilien/) and cars (/carfinder/)
  • Paste any search URL with filters already applied; the actor paginates it for you
  • Monitoring mode returns only listings you have not seen in previous runs
  • Full detail-page data, not just search-result summaries

Overview

This actor is built for Swiss real-estate agencies, car dealers, lead-generation teams, and market analysts who need structured listing data from Comparis.ch.

Every start URL resolves to listing-detail rows. Paste a search-result URL and the actor walks the result pages, then fetches each listing's detail page — so a search start and a direct detail start produce the same row shape. You do not get separate "search result" rows.

Real-estate rows and car rows have different internal shapes, because Comparis models them differently. Property rows nest under ad; car rows nest under MainInformation and Overview. Both carry SharingUrl, ImageUrls, and pricing.

Supported Inputs

URL types

URL typePatternExample
Property searchcomparis.ch/immobilien/result/list?requestobject=…https://www.comparis.ch/immobilien/result/list?requestobject=%7B%22DealType%22%3A10%2C%22LocationSearchString%22%3A%22staad%22%7D
Property detailcomparis.ch/immobilien/marktplatz/details/show/{id}https://www.comparis.ch/immobilien/marktplatz/details/show/37969105
Car searchcomparis.ch/carfinder/marktplatz/{make}https://www.comparis.ch/carfinder/marktplatz/audi
Car detailcomparis.ch/carfinder/marktplatz/details/show/{id}https://www.comparis.ch/carfinder/marktplatz/details/show/31995435

Build a property search URL by applying filters on comparis.ch and copying the resulting address bar — the requestobject parameter carries every filter (deal type, location, rooms, price, living space, balcony, lift, pets, and the rest).

Copy-pasteable startUrls

{
"startUrls": [
"https://www.comparis.ch/immobilien/result/list?requestobject=%7B%22DealType%22%3A10%2C%22LocationSearchString%22%3A%22staad%22%2C%22Sort%22%3A3%7D",
"https://www.comparis.ch/immobilien/marktplatz/details/show/37969105",
"https://www.comparis.ch/carfinder/marktplatz/audi"
]
}

Unsupported inputs

  • Anything behind the Comparis login wall (saved searches, account pages, lead-form replies)
  • Insurance, banking, telecom, and health-insurance comparison pages — this actor covers the property and car marketplaces only
  • Broker profile pages as a start URL; broker data arrives attached to listing rows instead
  • Non-comparis.ch hosts

Use Cases

AudienceUse case
Real-estate agenciesTrack competitor inventory, monitor new listings by canton, benchmark asking prices
Lead-generation teamsBuild broker contact lists with discovered emails and payment-stack qualification
Car dealersMonitor make/model pricing, mileage bands, and condition mix across the Swiss market
Market analystsExport CHF price series by region, property type, and living space for modelling
PropTech / AutoTechSeed a Swiss listings database and keep it current with scheduled monitoring runs
AgenciesDeliver client-ready Swiss market datasets without maintaining a scraper

How It Works

How It Works

  1. Input — provide one or more Comparis.ch search or detail URLs
  2. Route by URL type — the actor detects property vs car, and search vs detail
  3. Paginate search pages — each result page is walked until maxItems or the last page
  4. Fetch detail pages — every listing ID is resolved to its full detail record
  5. Optional enrichment — when enabled, discover the broker's website and contact email, and flag their payment stack
  6. Output — one dataset row per listing, exportable as JSON, CSV, or Excel

Input Configuration

Input fields

FieldTypeRequiredDefaultNotes
startUrlsarray<string>yesComparis search or detail URLs; property and car URLs can be mixed
maxItemsintegeroptional1000Hard cap on listing rows across all start URLs
monitoringModebooleanoptionalfalseEmit only listings not seen in previous runs
maxConcurrencyintegeroptional10Maximum detail pages fetched in parallel
minConcurrencyintegeroptional1Minimum parallel fetches
maxRequestRetriesintegeroptional100Retries per request before giving up
enrichEmailsbooleanoptionalfalseDiscover broker website + contact email. Billed per email found, never for a miss
qualifyByPaymentbooleanoptionalfalseRequires enrichEmails. Flags the broker's payment stack. No extra charge
proxyobjectoptionalApify ResidentialResidential proxy is strongly recommended

Common scenarios

1. Property search in one town

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

2. Lead generation with broker emails and payment qualification

{
"startUrls": [
"https://www.comparis.ch/immobilien/result/list?requestobject=%7B%22DealType%22%3A10%2C%22LocationSearchString%22%3A%22z%C3%BCrich%22%7D"
],
"maxItems": 500,
"enrichEmails": true,
"qualifyByPayment": true
}

3. Scheduled new-listing monitoring

{
"startUrls": [
"https://www.comparis.ch/immobilien/result/list?requestobject=%7B%22DealType%22%3A10%2C%22LocationSearchString%22%3A%22bern%22%7D"
],
"monitoringMode": true,
"maxItems": 1000
}

Output Overview

Each dataset row is one listing. Property rows carry:

  • ad — the listing itself: title, price, rooms, area, address, coordinates, images, features, price history
  • contactInformation — advertiser and vendor blocks, including agency name, street, city, and phone
  • basicInfo — the search-result summary that led to this listing
  • sourceLinks, pageTitle, targetingInformation — page metadata

Car rows carry MainInformation (make, model, type, mileage, first registration, condition), Overview (fuel type, transmission, and the rest of the spec sheet), plus ImageUrls and SharingUrl.

When enrichEmails is on, enriched rows gain contactEmail, contactWebsite, and an emailEnrichment object. With qualifyByPayment also on, they gain takesPayments, paymentProcessors, stripeLiveKey, and paymentConfidence.

Output Samples

Property detail row (trimmed)

{
"ad": {
"AdId": 37969105,
"Title": "4.5 Zimmer Wohnung",
"DisplayTitle": "4 Zimmer, 100 m²",
"PropertyTypeText": "Wohnung",
"NumRooms": 4,
"Price": 1800,
"PriceText": "CHF 1'800",
"PriceTypeText": "Mietpreis pro Monat",
"AddressSegments": {
"PostalCode": "9422",
"City": "Staad SG",
"Street": "Städeliwies",
"StreetNumber": "5"
},
"FoundForTheFirstTime": "2026-09-03T05:21:38",
"SharingUrl": "https://www.comparis.ch/immobilien/marktplatz/details/show/37969105",
"ImageUrls": ["https://assets-comparis.b-cdn.net/image/upload/…"]
/* plus MapData, Features, Attributes, PriceInformation, PriceDevelopment,
Floor, ConstructionYear, BuildingArea, NumParkingIndoor, Remarks … */
},
"contactInformation": {
"VendorInformation": {
"Name": "Multi-Electronic",
"Street": "Thurgauerstasse 36",
"ZipAndCity": "8050 Zürich",
"Phone": "0765201392"
}
/* plus AdvertiserInformation, ContactSiteName, HasContactForm … */
},
"basicInfo": { "AdId": 37969105, "City": "Staad SG", "Price": 1800 }
}

Same row with enrichment enabled

{
"ad": { "AdId": 37969105, "Title": "4.5 Zimmer Wohnung" /* … */ },
"contactInformation": { "VendorInformation": { "Name": "Multi-Electronic" /* … */ } },
"contactEmail": "info@example-immobilien.ch",
"contactWebsite": "https://example-immobilien.ch",
"emailEnrichment": { "emails": ["info@example-immobilien.ch"], "website": "https://example-immobilien.ch" },
"takesPayments": true,
"paymentProcessors": ["stripe"],
"paymentConfidence": "high"
}

Car detail row (trimmed)

{
"Id": 31991793,
"MainInformation": {
"MakeLabel": "Cadillac",
"ModelGroupLabel": "Seville",
"TypeText": "Seville STS 4.6 32V B",
"Mileage": 150000,
"MileageText": "150'000 km",
"FirstRegistrationDateText": "12.2000",
"Condition": 2
},
"Overview": { "FuelType": "Benzin", "Transmission": "Automat" },
"SharingUrl": "https://www.comparis.ch/carfinder/marktplatz/details/show/31991793",
"ImageUrls": ["https://assets.comparis.ch/…"]
}

Key Output Fields

Property core

  • ad.AdId, ad.Title, ad.DisplayTitle, ad.PropertyTypeText, ad.SharingUrl
  • ad.FoundForTheFirstTime, ad.Remarks

Property pricing

  • ad.Price, ad.PriceText, ad.PriceType, ad.PriceTypeText
  • ad.PriceInformation, ad.PriceDevelopment, ad.PriceDevelopmentDirection

Property size and building

  • ad.NumRooms, ad.Area, ad.BuildingArea, ad.Floor
  • ad.ConstructionYear, ad.RenovationYear, ad.NumParkingIndoor, ad.NumParkingOutdoor

Location and media

  • ad.AddressSegments {PostalCode, City, Street, StreetNumber}
  • ad.MapData {GeoPosLat, GeoPosLng}, ad.ImageUrls, ad.DocumentLinks

Broker / contact

  • contactInformation.VendorInformation {Name, Street, ZipAndCity, Phone, MobilePhone}
  • contactInformation.AdvertiserInformation, contactInformation.ContactSiteName

Car core

  • Id, MainInformation {MakeLabel, ModelGroupLabel, ModelLabel, TypeText, Mileage, FirstRegistrationDateText, Condition}
  • Overview {FuelType, Transmission}, SharingUrl, ImageUrls

Enrichment (when enrichEmails: true)

  • contactEmail, contactWebsite, emailEnrichment
  • takesPayments, paymentProcessors, stripeLiveKey, paymentConfidence (with qualifyByPayment: true)

FAQ

Which Comparis URLs are supported?

Property search (/immobilien/result/list?requestobject=…), property detail (/immobilien/marktplatz/details/show/{id}), car search (/carfinder/marktplatz/{make}), and car detail (/carfinder/marktplatz/details/show/{id}). You can mix property and car URLs in one run. Insurance, banking, and telecom comparison pages are out of scope.

Do I get search-result rows or detail rows?

Detail rows. A search URL is expanded page by page, and every listing found is then fetched at its detail page. The search-result summary is preserved on each row under basicInfo.

How does enrichEmails find an email?

Comparis never publishes a broker's own website on the listing page — contact goes through a server-side lead form. So the actor takes the agency name from contactInformation.VendorInformation.Name, discovers that company's website, and harvests contact emails from it.

When is enrichEmails billed?

Only when an email is actually returned. Misses are free. Listings posted privately, with no agency name, are skipped entirely and never enriched or charged.

What does qualifyByPayment add, and does it cost extra?

It scans the broker's website for payment processors and e-commerce platforms (Stripe, Shopify, PayPal, Paddle, Lemon Squeezy, WooCommerce, Square, Chargebee and others) and adds takesPayments, paymentProcessors, stripeLiveKey, and paymentConfidence. It reuses the pages already fetched for email discovery, so it costs nothing extra and adds no runtime. It requires enrichEmails to be on.

What does monitoringMode do?

It keeps a record of listing IDs already scraped and emits only listings that are new since previous runs. Pair it with a schedule to track fresh inventory instead of re-exporting the same rows.

Are all fields always populated?

No. Comparis listings vary in completeness — ConstructionYear, Floor, and parking counts are often absent on rentals, and VendorInformation.Phone is null when the advertiser only accepts the lead form. Car spec fields depend on what the dealer filled in.

Can I scrape private listings or anything behind the login?

No. The actor reads only publicly available marketplace pages.

Do I need a proxy?

Yes, in practice. Comparis is behind bot protection, and the actor defaults to Apify Residential proxy. Runs without a proxy are likely to be blocked.

Support

Additional Services

Explore More Scrapers

If this one was useful, you might also like:

Full list at apify.com/memo23.


🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/comparis-ch-scraper).

Purpose: Extract Swiss real-estate and vehicle marketplace listings from Comparis.ch — property/car details, pricing, location, images, and broker contact — from either search-result URLs or individual detail URLs, with optional broker email discovery.

Minimal input:

{ "startUrls": ["https://www.comparis.ch/immobilien/marktplatz/details/show/37969105"], "maxItems": 25 }

Instead of a detail URL you can pass a search-result list URL (e.g. https://www.comparis.ch/immobilien/result/list?… or https://www.comparis.ch/carfinder/marktplatz/audi), which the actor auto-paginates.

Output: one dataset row per listing. Property rows carry ad {AdId, Title, DisplayTitle, PropertyTypeText, Price, PriceText, PriceType, Area, NumRooms, Floor, ConstructionYear, AddressSegments {PostalCode, City, Street, StreetNumber}, MapData {GeoPosLat, GeoPosLng}, ImageUrls, FoundForTheFirstTime, SharingUrl, Remarks, MainData, PriceInformation} and contactInformation {AdvertiserInformation, VendorInformation {Name, Street, ZipAndCity, Phone}}. Car rows carry Id, MainInformation {MakeLabel, ModelGroupLabel, TypeText, Mileage, FirstRegistrationDateText, Condition}, Overview {FuelType, Transmission}, ImageUrls, SharingUrl.

Behaviors an agent should know:

  • startUrls accepts search-result list URLs (auto-paginated) and individual detail URLs, for both real estate (/immobilien/) and cars (/carfinder/); the two kinds can be mixed in one run.
  • Always set maxItems (default 1000) — an uncapped search over a broad region can return thousands of rows.
  • monitoringMode: true emits only listings not seen in previous runs (it keeps a record of scraped IDs) — for scheduled new-listing tracking.
  • enrichEmails adds contactEmail / contactWebsite / emailEnrichment; billed per email found, never for a miss, and skipped entirely for private listings with no agency name. qualifyByPayment requires it and adds takesPayments / paymentProcessors / stripeLiveKey / paymentConfidence at no extra charge.
  • A residential proxy is used by default and is effectively required — Comparis is behind bot protection.
  • Pay-per-event billing — see the Pricing tab on the actor page.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by comparis.ch AG or any of its subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available real-estate and vehicle listing pages on comparis.ch — no authenticated endpoints, paid features, or content behind the comparis.ch login wall. Users are responsible for ensuring their use complies with comparis.ch's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.


SEO Keywords

Comparis scraper, scrape Comparis, comparis.ch scraper, Comparis API, Apify Comparis, swiss real estate scraper, switzerland property scraper, swiss car listings scraper, comparis immobilien scraper, comparis carfinder scraper, real estate data switzerland, swiss property market data, vehicle pricing data switzerland, property listings api, car marketplace scraper, swiss rental listings scraper, real estate lead generation, broker email finder, property price monitoring, swiss housing market intelligence, automotive market data