Comparis.ch Scraper: Swiss Real Estate & Cars (with Emails)
Pricing
from $0.90 / 1,000 listings
Comparis.ch Scraper: Swiss Real Estate & Cars (with Emails)
Collect Swiss property and car listings from Comparis search or listing URLs. Get prices, locations, photos, and listing details, with optional business contact email search.
Pricing
from $0.90 / 1,000 listings
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
🏠 Collect Swiss property and car listings from Comparis
Comparis Scraper helps property researchers, car dealers, and market analysts collect public Swiss listings in one dataset. Add Comparis search or listing URLs to get prices, locations, photos, property facts, car specs, and available contacts. Use the data to compare offers and track inventory across runs. You can also search agency and dealer websites for business contact emails.
- Use the Comparis Rental Listings Scraper to collect rental offers for price research.
- Collect homes for sale with the Comparis Property Sale Listings Scraper for property market checks.
- Use the Comparis Car Listings Scraper to compare car prices and specs.
- Find business contacts for property research with Comparis Real Estate Agency Emails.
- Find business contacts for car market research with Comparis Car Dealer Emails.
📦 Property facts, car specs, and contacts
Each row is one property or car listing. Property rows can include rent costs, rooms, area, amenities, documents, and source price history. Car rows can include make, model, mileage, fuel, transmission, and other specs. Both can include prices, locations, images, and contact details when available.
The Actor saves the first eligible occurrence of a listing and ignores later matches in the same run. Optional details depend on what the source shows. Business website findings can include emails, payment processors, and commerce platforms when available. These findings are not guaranteed.
▶️ Run a Comparis listing search
- Open Comparis and choose a property or car search with the filters you need.
- Copy the search URL into Comparis URLs, or add individual listing URLs. You can mix properties and cars.
- Set Maximum listings if you want a limit for the whole run.
- Turn on Find business contact emails if you need the extra website search.
- Start the run and open the dataset to review or export your listings.
Public listings do not need a Comparis login. Search URLs keep the filters you chose on Comparis.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
startUrls | array of objects | Required list of public Comparis property or car search and listing URLs. Both marketplaces can be used in one run. |
startUrls[].url | string | Search URL with your Comparis filters, or an individual listing URL. |
maxItems | integer | Optional maximum listings across all URLs. Use a positive number. Leave it empty to return all available results until the source is exhausted. |
discoverContactEmails | boolean | Search agency and dealer websites for contact emails. Defaults to false. Each listing with an email found this way has a separate charge. Contact details shown on Comparis are included when available. |
Example input
This input came from a successful default-input run on the current beta build.
{"startUrls": [{"url": "https://www.comparis.ch/immobilien/result/list"}],"maxItems": 10,"discoverContactEmails": false}
🧾 Output
The Output tab has a listings link to the dataset. Each row has either a property object or a vehicle object. Optional fields may be absent when the source does not provide them. Dotted paths below show fields inside nested objects and arrays.
Property listing fields
| Field | Type | What it does |
|---|---|---|
listingType | string | property for this shape. |
id | string | Comparis listing ID for matching listings across runs. |
url | string | Source listing URL. |
title | string | Source listing title. |
description | string | Source description, which can contain HTML. |
status | string | Status value stated by the source. |
price | object | Asking price and available rent costs. |
price.amount | number | Asking price amount. |
price.currency | string | Price currency. |
price.period | string | Source payment period. |
price.netRent | number | Rent before ancillary costs. |
price.ancillaryCosts | number | Ancillary cost amount. |
price.grossRent | number | Rent including ancillary costs. |
location | object | Source address and coordinates. |
location.street | string | Street address. |
location.postalCode | string | Postal code. |
location.city | string | City or town. |
location.canton | string | Swiss canton. |
location.country | string | Country. |
location.latitude | number | Source latitude. |
location.longitude | number | Source longitude. |
images | array of strings | Source image URLs. |
contacts | array of objects | Listing contacts and available business website findings. |
contacts[].name | string | Person or business name. |
contacts[].role | string | Source contact role. |
contacts[].phone | string | Public phone number. |
contacts[].address | string | Public contact address. |
contacts[].websiteUrl | string | Business website found for the contact. |
contacts[].emails | array of strings | Public contact emails. |
contacts[].paymentProcessors | array of strings | Payment processors observed on the business website. |
contacts[].commercePlatforms | array of strings | Commerce platforms observed on the business website. |
property | object | Property facts. |
property.category | string | Source property category. |
property.dealType | string | Rental or sale offer type. |
property.rooms | number | Number of rooms. |
property.livingArea | number | Living area in square meters. |
property.floor | string | Source floor text. |
property.renovation | string | Source renovation details. |
property.availableFrom | string | Source availability date or text. |
property.amenities | array of strings | Listed amenities. |
property.parking | array of strings | Parking details. |
property.constructionYear | integer | Year the building was built. |
property.landArea | number | Land area in square meters. |
property.usableArea | number | Usable area in square meters. |
property.buildingVolume | number | Building volume in cubic meters. |
property.documents | array of objects | Linked source documents. |
property.documents[].title | string | Source document title. |
property.documents[].url | string | Document URL. |
property.discoveredAt | string | Date when Comparis first found the listing, as stated by Comparis. |
property.priceHistory | array of objects | Price history published by the source. |
property.priceHistory[].date | string | Price entry date. |
property.priceHistory[].amount | number | Price at that date. |
property.priceHistory[].currency | string | Source currency for that price. |
property.valuationRating | string | Property valuation rating published by Comparis. |
Property example
This complete row from a successful current-beta run shows a rental listing with a document link and business contact emails.
{"listingType": "property","id": "38173117","url": "https://www.comparis.ch/immobilien/marktplatz/details/show/38173117","title": "150 m2 Praxis-/ Bürofläche in Glattbrugg - individuell ausbaubar","description": "An zentraler Lage in Glattbrugg / Opfikon vermieten wir eine ca. 150 m² grosse Praxis- und Bürofläche, die individuell nach den Bedürfnissen der zukünftigen Mieterschaft ausgebaut werden kann.<br /><br />Ideal geeignet für Praxis, Physiotherapie, Psychologie/Psychotherapie, medizinische Dienstleistungen, Massage, Therapie, Beratung oder Büronutzung.<br /><br />Ihre Vorteile<br /><br />ca. 150 m² Mietfläche<br /><br />2 Balkone mit total ca. 15 m² inklusive<br /><br />Kellerraum im UG inklusive<br /><br />flexible Gestaltung und individueller Ausbau möglich<br /><br />WC-Anlagen werden noch ausgebaut<br /><br />Einstellhallenplatz verfügbar<br /><br />2 Motorrad-Parkplätze optional<br /><br />Mietkonditionen<br /><br />Mietzins: CHF 3'750.–/Monat ( incl. CHF 250,- Nebenkosten)<br />(CHF 300.–/m²/Jahr)<br /><br />Einstellhallenplatz: CHF 150.–/Monat<br />2 Motorrad-Parkplätze: optional CHF 120.–/Monat<br /><br />Kaution: 6 Monatsmieten<br />Mindestmietdauer: 5 Jahre<br /><br />Gestalten Sie Ihre zukünftige Praxis oder Ihr Büro selbst<br /><br />Der nicht ausgebaute Zustand bietet Ihnen die Möglichkeit, Raumaufteilung und Ausstattung gezielt auf Ihre betrieblichen Anforderungen abzustimmen.<br /><br />Interesse?<br />Gerne zeigen wir Ihnen die Fläche persönlich und besprechen die Nutzungsmöglichkeiten.<br />","status": "0","price": {"amount": 3750,"currency": "CHF","period": "Mietpreis pro Monat","netRent": 3500,"ancillaryCosts": 250,"grossRent": 3750},"location": {"street": "Dammstrasse 5","postalCode": "8152","city": "Opfikon","canton": "ZH","country": "CH","latitude": 47.435758356732265,"longitude": 8.564661106783085},"images": ["https://mapl-assets.b-cdn.net/immobilien/images/datacollect/4bba62d1-86b1-9739-3bec-b49f61d495e9.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/7483cc03-f94c-1071-8343-faa2781caefb.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/0fb90245-e4b5-98e3-055c-2f46b542236f.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/063b2ad7-4bfe-4e3f-2870-ae6b0b135944.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/46ce4521-b743-169e-9afc-c8139947fc8c.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/450ff5ec-870b-8980-cc20-d83da51a68f5.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/75020d8f-823a-14d9-308e-bf1691453c8d.jpg","https://mapl-assets.b-cdn.net/immobilien/images/datacollect/1f5c0ad0-41d0-3362-29fa-a5a1b4318eb0.png"],"contacts": [{"name": "Peter Straub Immobilienmanagement","role": "VendorInformation","phone": "+41 79 753 36 15","address": "Mitteldorfstrasse 32, 6315 Oberägeri","websiteUrl": "https://en.straubundpartner.com","emails": ["ps@straubundpartner.com","ps@straubundparnter.com","info@straubundpartner.com"]}],"property": {"category": "Gewerbeobjekt","dealType": "rent","rooms": 1,"floor": "1. Stock","availableFrom": "sofort","amenities": ["Wasseranschluss","Toiletten","Balkon/Terrasse/Sitzplatz","Einstellplatz"],"parking": ["Einstellplatz"],"constructionYear": 2026,"usableArea": 150,"documents": [{"title": "zusätzliche Dokumente anzeigen","url": "https://mapl-assets.b-cdn.net/immobilien/documents/datacollect/04e6bc75-4fa2-64ab-7f11-72dee697b335.pdf"}],"discoveredAt": "2026-10-06T14:31:06"}}
Car listing fields
| Field | Type | What it does |
|---|---|---|
listingType | string | vehicle for this shape. |
id | string | Comparis listing ID for matching listings across runs. |
url | string | Source listing URL. |
title | string | Source listing title. |
description | string | Source listing description. |
status | string | Status value stated by the source. |
price | object | Source price details. |
price.amount | number | Asking price amount. |
price.currency | string | Price currency. |
price.period | string | Payment period, when stated. |
price.netRent | number | Rent before ancillary costs, when stated. |
price.ancillaryCosts | number | Ancillary cost amount, when stated. |
price.grossRent | number | Rent including ancillary costs, when stated. |
location | object | Source location. |
location.street | string | Street address. |
location.postalCode | string | Postal code. |
location.city | string | City or town. |
location.canton | string | Swiss canton. |
location.country | string | Country. |
location.latitude | number | Source latitude. |
location.longitude | number | Source longitude. |
images | array of strings | Source image URLs. |
contacts | array of objects | Seller contacts and available business website findings. |
contacts[].name | string | Person or business name. |
contacts[].role | string | Source contact role. |
contacts[].phone | string | Public phone number. |
contacts[].address | string | Public contact address. |
contacts[].websiteUrl | string | Business website found for the contact. |
contacts[].emails | array of strings | Public contact emails. |
contacts[].paymentProcessors | array of strings | Payment processors observed on the business website. |
contacts[].commercePlatforms | array of strings | Commerce platforms observed on the business website. |
vehicle | object | Car specs from the listing. |
vehicle.make | string | Vehicle make. |
vehicle.model | string | Vehicle model. |
vehicle.variant | string | Source model variant. |
vehicle.mileage | number | Mileage in kilometers. |
vehicle.firstRegistration | string | Source first registration date. |
vehicle.condition | string | Source condition value. |
vehicle.fuel | string | Fuel or energy type. |
vehicle.transmission | string | Transmission type. |
vehicle.bodyType | string | Body type. |
vehicle.powerKw | number | Power in kilowatts. |
vehicle.engineCapacity | number | Engine capacity in cubic centimeters. |
vehicle.driveType | string | Source drive type. |
vehicle.doors | integer | Number of doors. |
vehicle.seats | integer | Number of seats. |
vehicle.color | string | Exterior color. |
vehicle.equipment | array of strings | Listed equipment. |
Car example
This complete row from a successful current-beta run shows car specs, price, and seller contact details.
{"listingType": "vehicle","id": "33655536","url": "https://www.comparis.ch/carfinder/marktplatz/details/show/33655536","title": "Audi A3","description": "- Motor & Getriebe gut\n- Karosserie hat diverse Kratzer & Beulen\n- 8 Fach bereift\nKeine technische Prüfung (Werkstatttest) vorgenommen.\nFahrzeug ab Platz, ohne Garantie und Aufbereitung.\nFÜR EXPORT","status": "1","price": {"amount": 3900,"currency": "CHF"},"images": [],"location": {"postalCode": "5502","city": "Hunzenschwil"},"contacts": [{"name": "Auto Alen Hunzenschwil","role": "AdvertiserInformation","phone": "+41793305628","address": "5502 Hunzenschwil"}],"vehicle": {"make": "Audi","model": "A3","variant": "A3 Sportback 2.0 TFSI Style quattro S-tronic","mileage": 226200,"firstRegistration": "06.2010","condition": "2","fuel": "Benzin","transmission": "Automat","bodyType": "Limousine","powerKw": 147.1,"engineCapacity": 1984,"driveType": "Allrad","doors": 5,"seats": 5,"color": "Schwarz","equipment": ["ABS","Differentialsperre","Elektrische Sitzverstellung","Klimaanlage","Leichtmetallräder","Parksensoren","Sitzheizung","Tempomat"]}}
💳 Pricing
This Actor uses pay-per-event pricing. A Listing event is charged for each property or car listing saved to your dataset. With business contact email search enabled, a Contact email event is charged once per listing that gets an email from that search.
There is no contact email charge when the search finds no email. Payment processor and commerce platform findings have no extra charge. Contact details already shown on Comparis are included with the listing. See the Apify pricing panel for current rates.
🔌 Integrations
Export your dataset from Apify or read it through the Apify API. Use Apify schedules to repeat a search and compare the saved listings across runs. This guide shows how to connect an Actor to other tools:
❓ FAQ
Will every listing have an email address?
No. Contact details depend on the listing and business website. Turn on business contact email search to look for more contacts. The listing is still saved when no email is found.
Can I mix property and car URLs?
Yes. Add both kinds to startUrls. The listing limit applies across all submitted URLs.
What if the same listing appears in more than one search?
The first eligible occurrence is saved. Later matches in that run are ignored. The saved row does not collect details from later matches.
How do I collect all available listings?
Leave maxItems empty to return all available results until the source is exhausted. Results still depend on what Comparis makes available for your URLs.
Does this collect past prices or removed listings?
Property rows can include price history when Comparis publishes it. The Actor does not rebuild missing history or promise access to removed listings. Save datasets from repeated runs if you want to compare inventory over time.
Which Comparis pages can I use?
Use public property rental and sale searches, car searches, and individual listing URLs. Broker profile URLs, account pages, and private content are outside this Actor's scope. It does not collect insurance, banking, telecom, or health-insurance comparisons.
Do I need a Comparis account?
No. The Actor collects public listings without a Comparis login. It does not submit contact forms or collect lead-form replies.
📝 Changelog
v0.0 (06-10-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Idealista Agency Scraper to find real estate agencies from Spanish property search pages.
- Realtor Scraper to collect US property listings with prices, addresses, and agent details.
- Autotrader Scraper to research US car listings, specs, and seller details.
- Carsales.com.au Scraper to compare Australian car listings, prices, and dealer inventory.
- Website Email & Contact Scraper to find public contact emails from known agency or dealer websites.
Made with ❤️ by Maxime Dupré