Mietpreise pro m² von homegate.ch auswerten
Du willst wissen, was eine Mietwohnung in einer Schweizer Stadt pro Quadratmeter kostet, zum Beispiel als Vermieter, Bewirtschafterin, für einen Umzug oder für eine Marktanalyse? Der Homegate.ch Scraper holt die Mietinserate einer Stadt als Tabelle mit Preis, Zimmerzahl, Wohnfläche und Postleitzahl. Daraus rechnest du den Preis pro m². Hier mit einem echten Lauf für Winterthur.
In diesem Tutorial
Das bekommst du
homegate.ch zeigt Mietpreise pro Inserat, aber nicht pro Quadratmeter und ohne Export. Der Actor liest die Inserate zu deiner Suche und legt sie als Tabelle ab, die du als CSV, Excel oder JSON herunterladen kannst. Jede Zeile ist ein Inserat, hier gekürzt und mit erfundenen Beispielwerten zur Veranschaulichung der Struktur:
{
"id": "...",
"title": "...",
"price": 2000,
"price_net": 1800,
"price_extra": 200,
"currency": "CHF",
"rooms": 3.5,
"area_sqm": 80,
"postal_code": "8400",
"city": "Winterthur",
"canton": "ZH",
"property_type": "apartment",
"source_url": "https://www.homegate.ch/rent/...",
"listed_at": "..."
}Die Werte hängen vom einzelnen Inserat ab. Ein echter Lauf mit Zahlen steht weiter unten im Beispiel.
Die Felder für den Preis pro m²
Diese Felder brauchst du für die Auswertung. Sie stehen laut Ausgabe-Schema des Actors in den Suchresultaten, du musst includeDetails dafür nicht einschalten.
| Feld | Typ | Inhalt |
|---|---|---|
price | Zahl | Bruttomiete pro Monat in CHF, also inklusive Nebenkosten (im Code der Wert „gross“ aus dem Inserat) |
price_net | Zahl | Nettomiete ohne Nebenkosten, falls das Inserat sie nennt |
price_extra | Zahl | Nebenkosten, falls das Inserat sie nennt |
rooms | Zahl | Zimmerzahl, zum Beispiel 2.5, 3.5 oder 4.5 |
area_sqm | Zahl | Wohnfläche in m², falls das Inserat sie nennt |
floor | Zahl | Stockwerk, falls angegeben |
postal_code / city / canton / address | Text | Postleitzahl, Ort, Kanton als Kürzel und Adresse |
latitude / longitude | Zahl | Koordinaten, zum Beispiel für eine Karte |
property_type | Text | Objektart: apartment, house und weitere |
features | Liste | Ausstattung, zum Beispiel balcony, parking, elevator |
listed_at / available_from | Text | Datum des Inserats und Bezugstermin, falls angegeben |
source_url / source_platform | Text | Link zum Inserat und Plattform (homegate.ch) |
area_sqm kannst du keinen Preis pro m² rechnen.Beispiel: Mietwohnungen in Winterthur
Situation: Du verwaltest oder vermietest Wohnungen in Winterthur und willst wissen, wo deine Mieten im Markt liegen. Wir haben die Suche einmal lokal laufen lassen (21.10.2026): alle Mietinserate der Stadt Winterthur, ohne Detailseiten, mit Obergrenze 400. Der Actor fand 213 Inserate und stoppte nach der letzten Trefferseite, die Obergrenze griff also nicht. Das Ergebnis:
- 213 Inserate im Dataset, davon 192 Wohnungen. Dazu kamen 10 Häuser, 10 Hobbyräume und 1 Kellerabteil. Diese 21 haben wir weggelassen.
- Von den 192 Wohnungen hatten 12 keine Wohnfläche. 11 weitere haben wir als unplausibel entfernt: 9 Zimmer mit weniger als 20 m² (WG- und möblierte Zimmer, CHF 59 bis 88 pro m²) und 2 Einträge mit mehr als 250 m² (ein Fehler mit 300 m² bei einem Inserat, das im Titel 40 m² nennt, und ein 7.5-Zimmer-Hausteil mit 283 m²). Die Regel war: Fläche 20 bis 250 m² und CHF 10 bis 80 pro m². Übrig blieben 169 Wohnungen.
- Der Median der Bruttomiete liegt bei CHF 28.67 pro m² und Monat. Das mittlere Viertel der Wohnungen liegt zwischen CHF 25.83 und CHF 32.53.
- Nach Zimmerzahl: 2.5 Zimmer CHF 31.25 (31 Wohnungen, Median 67 m², Median-Bruttomiete CHF 2085), 3.5 Zimmer CHF 28.27 (52 Wohnungen, 92 m², CHF 2635), 4.5 Zimmer CHF 25.99 (32 Wohnungen, 112 m², CHF 2930). Kleine Wohnungen kosten pro m² mehr. Die übrigen 54 Wohnungen haben andere Zimmerzahlen (zum Beispiel 2, 3, 4 oder 5.5) und stehen nicht in dieser Zeile.
- Nach Postleitzahl: 8400 CHF 30.92 (83 Wohnungen), 8406 CHF 28.53 (18), 8405 CHF 27.33 (15), 8404 CHF 26.46 (41), 8408 CHF 24.94 (12).
- Das günstigste Viertel (bis CHF 25.83 pro m²): 43 Wohnungen, Median CHF 23.80, Median-Fläche 104 m². Das teuerste Viertel (ab CHF 32.53): 43 Wohnungen, Median CHF 36.36, Median-Fläche 60 m².
So haben wir gerechnet: Preis pro m² = price geteilt durch area_sqm, mit der Bruttomiete. Die Nettomiete fehlt bei 21 der 169 Wohnungen, deshalb ist die Bruttomiete der verlässlichere Vergleichswert. Bei allen 147 Inseraten mit Netto- und Nebenkosten ergab price_net plus price_extra genau price.
Das war der Input:
{
"listingType": "rent",
"city": "Winterthur",
"maxResults": 400,
"includeDetails": false
}listingType:rentfür Mietinserate,buyfür Kaufinserate.city: Stadt, zum Beispiel Winterthur, Luzern oder Bern. Der Actor baut daraus die Such-URL auf homegate.ch.maxResults: Obergrenze für die Anzahl Inserate. 400 lag über den 213 Treffern.includeDetails:falsereicht für diese Auswertung und ist günstiger.
Die Kosten dieses Laufs findest du im Abschnitt Kosten. Die Auswertung kannst du in Excel machen, mit einer Spalte price / area_sqm und einer Pivot-Tabelle. Oder du lässt Claude das über den Apify-MCP-Server erledigen. Ein Prompt dafür:
Nutze den Actor santamaria-automations/homegate-scraper mit diesem Input:
{"listingType": "rent", "city": "Winterthur", "maxResults": 400,
"includeDetails": false}
Bevor du den Lauf startest, sag mir, was er kostet, und warte auf mein OK.
Werte danach die Ergebnisse so aus:
1. Behalte nur property_type = apartment mit gefülltem area_sqm.
Entferne Einträge mit Fläche unter 20 m² oder über 250 m² und
Preis pro m² ausserhalb von CHF 10 bis 80. Sag mir, wie viele du
in jeder Gruppe entfernt hast.
2. Preis pro m² = price (Bruttomiete) geteilt durch area_sqm.
3. Zeige den Median insgesamt, das untere und obere Quartil, dann den
Median pro Zimmerzahl (2.5, 3.5, 4.5) und pro postal_code, jeweils
mit der Anzahl Wohnungen.
4. Nenne Anzahl, Median pro m² und Median-Fläche für das günstigste
und das teuerste Viertel.
Zeige keine Namen oder Telefonnummern von Inserenten.Apify-Konto anlegen
- Öffne die Seite des Homegate.ch Scrapers auf Apify.
- Klicke auf Try for free und registriere dich mit Google oder E-Mail.
- Du landest in der Apify Console im Tab Input des Actors. Für kleine Läufe reicht das monatliche Gratis-Guthaben des Free-Plans.
Stadt eintragen
Wähle bei listingType den Wert rent und trage bei city deine Stadt ein. Ein kleiner Testlauf sieht so aus:
{
"listingType": "rent",
"city": "Luzern",
"maxResults": 20,
"includeDetails": false
}maxResults: Obergrenze für die Anzahl Inserate (Standard 100).roomsMin,priceMin,priceMax: Mindest-Zimmerzahl und Preisgrenzen in CHF pro Monat.searchUrls: eigene Such-URLs von homegate.ch. Wenn du sie angibst, überschreiben sie Stadt und Kanton.
maxResults auf 20. So siehst du in kurzer Zeit, ob die Stadt die richtigen Inserate liefert, und zahlst nur wenige Rappen.Actor starten und Ergebnis ansehen
Klicke unten auf Save and Run. Auf der Lauf-Seite siehst du im Tab Log den Fortschritt und im Tab Dataset die Ergebnisse als Tabelle. Der Beispiellauf mit 213 Inseraten lief lokal rund eine Minute. Bricht ein Lauf mit einer Fehlermeldung ab, starte ihn später noch einmal.
Exportieren und Preis pro m² rechnen
- Öffne im Lauf den Tab Dataset und klicke auf Export.
- Wähle CSV, Excel oder JSON. Exportiere nur die Spalten, die du brauchst, zum Beispiel
price,rooms,area_sqm,postal_code,property_typeundsource_url. - Filtere in Excel auf
property_type= apartment und lösche Zeilen ohnearea_sqm. - Lege eine Spalte
price / area_sqman. Prüfe die kleinsten und grössten Werte von Hand. Zimmer in WGs und Fehler im Inserat verzerren sonst den Median. - Fasse mit einer Pivot-Tabelle nach
roomsoderpostal_codezusammen und nimm den Median.
Welche Filter es gibt
Der Actor filtert bei der Suche nach diesen Angaben:
- Mieten oder kaufen (
listingType: rent oder buy). - Ort (
city) oder Kanton (canton, zum Beispiel ZH, BE, BS). Der Kanton gilt, wenn keine Stadt gesetzt ist. - Preis (
priceMinundpriceMax) in CHF. - Zimmer (
roomsMin): Mindestzahl, zum Beispiel 3.5. - Eigene Such-URLs (
searchUrls): Stelle die Suche auf homegate.ch ein, kopiere die URL aus dem Browser und füge sie ein. Das ist der Weg für eine bestimmte Postleitzahl oder weitere Filter. - Detailseiten (
includeDetails): holt zusätzlich die Detailseite jedes Inserats, mit voller Beschreibung und Angaben zur Inserentin oder zum Inserenten.
Per API und automatisch abrufen
Du kannst den Actor auch aus eigenen Skripten, n8n oder Make aufrufen. Dieser Aufruf startet einen Lauf und gibt die Ergebnisse direkt zurück (Apify-Endpunkt run-sync-get-dataset-items):
curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~homegate-scraper/run-sync-get-dataset-items?token=DEIN_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"listingType": "rent", "city": "Winterthur", "maxResults": 400, "includeDetails": false}'Deinen API-Token findest du in der Apify Console unter Settings → API & Integrations. Für Abrufe, die regelmässig laufen sollen, legst du in der Console unter Schedules einen Zeitplan an, zum Beispiel einmal im Monat. Speichere jeden Abruf mit Datum, dann siehst du, wie sich der Median pro m² über die Zeit entwickelt.
Was das kostet
Der Actor rechnet pro Ergebnis ab (Preise live aus dem Apify Store, Stand 21.10.2026, Free-Plan; höhere Apify-Pläne zahlen etwas weniger):
- Start: 0,00005 $ pro Lauf (ein Ereignis pro GB Speicher, mindestens eins).
- Inserat aus den Suchresultaten (
includeDetailsaus, Standard): 0,003 $ pro Ergebnis. - Inserat mit Detailseite (
includeDetailsan): 0,008 $ pro Ergebnis.
Jedes Inserat wird nur einmal berechnet, entweder als Treffer oder mit Details. Rechenbeispiel für die Suche oben mit 213 Inseraten: 0,00005 $ + 213 x 0,003 $ = 0,63905 $, also etwa 0,64 $. Mit Detailseiten wären es 0,00005 $ + 213 x 0,008 $ = 1,70405 $, also etwa 1,70 $. Annahmen: Free-Plan-Preise, jedes der 213 Inserate wird einmal berechnet, ein Startereignis pro Lauf (bei 128 MB Speicher). Die aktuellen Preise findest du immer auf der Apify-Seite des Actors.
Wofür Leute die Daten nutzen
Vermieter und Bewirtschaftung
Vergleiche deine Mieten mit den ausgeschriebenen Wohnungen in derselben Postleitzahl und mit gleicher Zimmerzahl. So siehst du, ob eine Wohnung bei der Neuvermietung zu tief oder zu hoch angesetzt ist. Die Mieten bei einer Neuvermietung musst du trotzdem nach den mietrechtlichen Vorgaben prüfen.
Relocation und Umzug
Rechne für zwei Städte oder Quartiere den Median pro m² aus und vergleiche, wie viel Fläche du für dein Budget bekommst. Mit latitude und longitude legst du die Inserate auf eine Karte.
Marktanalyse
Lass denselben Lauf jeden Monat laufen und vergleiche Median, Quartile und Anzahl Inserate. Mit listingType buy holst du Kaufinserate im selben Schema. Prüfe dort zuerst an einem kleinen Lauf, welche Felder gefüllt sind.
Hinweis zu Datenschutz
Für die Auswertung oben brauchst du keine Angaben zu Personen. Wir haben keine Namen oder Telefonnummern von Inserentinnen und Inserenten verwendet. Mit includeDetails kann der Actor Kontaktangaben der Inserenten liefern. Dabei können Daten von Privatpersonen dabei sein. Wenn du solche Daten speicherst oder jemanden damit anschreibst, gelten in der Schweiz das revidierte Datenschutzgesetz (nDSG) und das Gesetz gegen den unlauteren Wettbewerb (UWG). Für Personen aus der EU kann die DSGVO dazukommen. Das ist keine Rechtsberatung.
Häufige Fragen
Ist der Preis im Feld price die Brutto- oder die Nettomiete?
Im Feld price steht die Bruttomiete, also inklusive Nebenkosten. Der Actor übernimmt dafür den Bruttopreis aus dem Inserat. Die Nettomiete steht in price_net, die Nebenkosten in price_extra. Im Beispiellauf ergab price_net plus price_extra bei allen 147 Inseraten mit beiden Werten genau price.
Sind das Bestandsmieten oder Angebotsmieten?
Angebotsmieten. Du siehst, was Vermieter und Verwaltungen heute auf homegate.ch verlangen, nicht, was bestehende Mieter zahlen. Bei laufenden Mietverhältnissen können die Mieten tiefer liegen.
Warum fehlen bei manchen Inseraten Fläche oder Zimmerzahl?
Der Actor gibt nur aus, was im Inserat steht. Im Beispiellauf hatten 12 der 192 Wohnungen keine Wohnfläche und werden in der Auswertung nicht berücksichtigt. Für den Preis pro m² brauchst du immer area_sqm.
Brauche ich includeDetails für die Auswertung?
Nein. Preis, Zimmer, Fläche, Postleitzahl und Koordinaten stehen schon in den Suchresultaten. includeDetails ist auf false gesetzt und kostet 0,003 $ pro Inserat statt 0,008 $. Die Detailseite brauchst du nur, wenn du zum Beispiel Angaben zur Inserentin oder zum Inserenten willst.
Was kostet der Homegate.ch Scraper?
Im Free-Plan 0,00005 $ pro Lauf (bei 128 MB Speicher), dazu 0,003 $ pro Inserat aus den Suchresultaten oder 0,008 $ pro Inserat mit Detailseite. Die Beispielsuche mit 213 Inseraten kostet damit etwa 0,64 $.
Darf ich die Daten verwenden?
Das hängt von deinem Anwendungsfall ab. Für Preisauswertungen brauchst du keine Namen oder Telefonnummern von Privatpersonen. Wenn du Kontaktangaben speicherst oder anschreibst, gelten das Datenschutzgesetz (nDSG) und das Gesetz gegen den unlauteren Wettbewerb (UWG). Das ist keine Rechtsberatung.
Weiterführende Links
- Homegate.ch Scraper, Actor-Seite: Eingabefelder, Ausgabefelder und Preise im Überblick.
- Homegate.ch Scraper auf Apify: Der Actor mit Dokumentation und allen Parametern.
- Tutti.ch Scraper, Actor-Seite: Kleinanzeigen aus der Schweiz.
- Immowelt.de Scraper, Actor-Seite: Immobilienangebote aus Deutschland.
- Alle Tutorials auf Deutsch