Comparis.ch Scraper — Swiss Real Estate & Cars (with Emails)
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor stats
3
Bookmarked
30
Total users
3
Monthly active users
7 hours ago
Last modified
Categories
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 type | Pattern | Example |
|---|---|---|
| Property search | comparis.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 detail | comparis.ch/immobilien/marktplatz/details/show/{id} | https://www.comparis.ch/immobilien/marktplatz/details/show/37969105 |
| Car search | comparis.ch/carfinder/marktplatz/{make} | https://www.comparis.ch/carfinder/marktplatz/audi |
| Car detail | comparis.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.chhosts
Use Cases
| Audience | Use case |
|---|---|
| Real-estate agencies | Track competitor inventory, monitor new listings by canton, benchmark asking prices |
| Lead-generation teams | Build broker contact lists with discovered emails and payment-stack qualification |
| Car dealers | Monitor make/model pricing, mileage bands, and condition mix across the Swiss market |
| Market analysts | Export CHF price series by region, property type, and living space for modelling |
| PropTech / AutoTech | Seed a Swiss listings database and keep it current with scheduled monitoring runs |
| Agencies | Deliver client-ready Swiss market datasets without maintaining a scraper |
How It Works

- Input — provide one or more Comparis.ch search or detail URLs
- Route by URL type — the actor detects property vs car, and search vs detail
- Paginate search pages — each result page is walked until
maxItemsor the last page - Fetch detail pages — every listing ID is resolved to its full detail record
- Optional enrichment — when enabled, discover the broker's website and contact email, and flag their payment stack
- Output — one dataset row per listing, exportable as JSON, CSV, or Excel
Input Configuration
Input fields
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array<string> | yes | — | Comparis search or detail URLs; property and car URLs can be mixed |
maxItems | integer | optional | 1000 | Hard cap on listing rows across all start URLs |
monitoringMode | boolean | optional | false | Emit only listings not seen in previous runs |
maxConcurrency | integer | optional | 10 | Maximum detail pages fetched in parallel |
minConcurrency | integer | optional | 1 | Minimum parallel fetches |
maxRequestRetries | integer | optional | 100 | Retries per request before giving up |
enrichEmails | boolean | optional | false | Discover broker website + contact email. Billed per email found, never for a miss |
qualifyByPayment | boolean | optional | false | Requires enrichEmails. Flags the broker's payment stack. No extra charge |
proxy | object | optional | Apify Residential | Residential 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 historycontactInformation— advertiser and vendor blocks, including agency name, street, city, and phonebasicInfo— the search-result summary that led to this listingsourceLinks,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.SharingUrlad.FoundForTheFirstTime,ad.Remarks
Property pricing
ad.Price,ad.PriceText,ad.PriceType,ad.PriceTypeTextad.PriceInformation,ad.PriceDevelopment,ad.PriceDevelopmentDirection
Property size and building
ad.NumRooms,ad.Area,ad.BuildingArea,ad.Floorad.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,emailEnrichmenttakesPayments,paymentProcessors,stripeLiveKey,paymentConfidence(withqualifyByPayment: 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
- For issues or feature requests, use the Issues tab of this actor.
- For customization or questions, contact the author:
- Website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request a custom export shape or a full dataset: muhamed.didovic@gmail.com
- Need another site scraped, or this actor customized? Email: muhamed.didovic@gmail.com
- API access to this scraper (no Apify fee, usage fee only): muhamed.didovic@gmail.com
Explore More Scrapers
If this one was useful, you might also like:
- Swiss Rentals Scraper — Flatfox, Newhome and Homegate in one run, rent or buy
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:
startUrlsaccepts 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: trueemits only listings not seen in previous runs (it keeps a record of scraped IDs) — for scheduled new-listing tracking.enrichEmailsaddscontactEmail/contactWebsite/emailEnrichment; billed per email found, never for a miss, and skipped entirely for private listings with no agency name.qualifyByPaymentrequires it and addstakesPayments/paymentProcessors/stripeLiveKey/paymentConfidenceat 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