Pricing
from $1.20 / 1,000 results
Homegate Scraper
DeprecatedScrape homegate.ch for Swiss real estate listings: price, mΒ², rooms, GPS, canton, features & descriptions. 37,500+ buy listings across all 26 cantons. No proxy required.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Homegate.ch Scraper
Extract structured real estate listings from homegate.ch β Switzerland's leading property platform with 37,500+ buy listings across all 26 cantons. Retrieves full property details from server-side rendered data. No API key required.
Why this scraper?
ποΈ All 26 Swiss cantons
Scrape any combination of cantons β ZΓΌrich, Bern, Genf, Waadt, Tessin, and more β or scrape all of Switzerland in one run.
π Rich structured output
Captures price (CHF), living space (mΒ²), room count, floor, build year, GPS coordinates, and 35+ property features including parking, balcony, garden, elevator, Minergie certification, mountain view, pet policy, child-friendliness, charging station, and more.
πΌοΈ Full image gallery
Returns all listing photos as a complete imageUrls array (typically 10β20+ images per property). Also extracts floorPlanUrls (PDF floor plans) and virtualTourUrl where available.
π Full descriptions
Property descriptions are extracted directly from the page's server-rendered data β no additional requests needed. Available as plain text, HTML, and Markdown.
πΊοΈ GPS coordinates
Latitude and longitude included for every listing where Homegate provides them, enabling map visualisation and proximity analysis.
π€ Agent & agency data
Captures listing agent name, phone number, email, agency ID, and agency logo URL for direct contact or lead enrichment workflows.
ποΈ New construction data
isNewBuilding and isNewConstruction flags identify new-build properties. newConstructionType and projectUrl provide further detail for development projects.
π Direct URL support
Supply any Homegate search results URL directly to scrape a custom filter (price range, number of rooms, location, etc.) exactly as configured in the Homegate interface.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array | [] | Homegate.ch search result URLs to scrape directly. Overrides cantons and propertyType. |
cantons | Array | [] | Canton slugs to scrape, e.g. kanton-zuerich, kanton-bern, kanton-genf. Leave empty for all of Switzerland. |
propertyType | String | immobilien | immobilien (all types), wohnung (apartments), or haus (houses). |
maxItems | Integer | 200 | Maximum listings to return. |
daysOld | Integer | 0 | Return only listings published within this many days. 0 disables the filter. |
Available canton slugs: kanton-zuerich, kanton-bern, kanton-genf, kanton-waadt, kanton-wallis, kanton-luzern, kanton-basel-stadt, kanton-basel-landschaft, kanton-aargau, kanton-solothurn, kanton-freiburg, kanton-tessin, kanton-graubuenden, kanton-thurgau, kanton-st-gallen, kanton-neuenburg, kanton-jura, kanton-zug, kanton-schwyz, kanton-uri, kanton-nidwalden, kanton-obwalden, kanton-glarus, kanton-appenzell-ausserrhoden, kanton-appenzell-innerrhoden, kanton-schaffhausen
Output schema
Listing identity & type
| Field | Type | Description |
|---|---|---|
id | String | Homegate listing ID. |
url | String | Full URL of the listing detail page. |
title | String | Listing title as published by the seller. |
offerType | String | Always "BUY" for sale listings. |
propertyType | String | Input property type filter used (immobilien, wohnung, haus). |
categories | Array | Homegate property categories, e.g. ["APARTMENT","FLAT"] or ["HOUSE","VILLA"]. |
listingType | String | null | Listing tier: "PREMIUM", "STANDARD", etc. |
platforms | Array | Platforms the listing is syndicated to (e.g. ["homegate","immoscout24","tutti"]). |
Price
| Field | Type | Description |
|---|---|---|
price | Number | null | Sale price in CHF. Null if not published. |
currency | String | Always "CHF". |
priceText | String | null | Formatted price string, e.g. "CHF 850'000". |
Location
| Field | Type | Description |
|---|---|---|
street | String | null | Street address. |
postalCode | String | null | Swiss postal code (4 digits). |
locality | String | null | City or municipality name. |
canton | String | null | Full canton name (e.g. "ZΓΌrich", "Bern", "Genf"). |
latitude | Number | null | GPS latitude. |
longitude | Number | null | GPS longitude. |
Characteristics β space & structure
| Field | Type | Description |
|---|---|---|
livingSpace | Number | null | Net living area in mΒ². |
totalFloorSpace | Number | null | Total floor space in mΒ² (may include non-living areas). |
lotSize | Number | null | Plot/land size in mΒ². |
numberOfRooms | Number | null | Room count in Swiss format (e.g. 3.5, 4.0). |
numberOfBathrooms | Number | null | Number of bathrooms. |
numberOfToiletsGuest | Number | null | Number of guest toilets. |
floor | Number | null | Floor the property is on. |
numberOfFloors | Number | null | Total number of floors in the building. |
ceilingHeight | Number | null | Ceiling height in metres. |
cubage | Number | null | Volume of the building in mΒ³. |
utilizationRatio | Number | null | Plot utilisation ratio (AusnΓΌtzungsziffer). |
yearBuilt | Number | null | Year of construction. |
yearLastRenovated | Number | null | Year of last renovation. |
Characteristics β features (Boolean | null)
| Field | Description |
|---|---|
isNewBuilding | New-build property. |
isOldBuilding | Listed as old/historic building. |
isGroundFloor | Ground-floor unit. |
hasParking | Parking space included. |
hasGarage | Garage included. |
hasBalcony | Has balcony. |
hasTerrace | Has terrace. |
hasGarden | Has garden. |
hasElevator | Building has elevator. |
isWheelchairAccessible | Wheelchair accessible. |
hasNiceView | Listed as having a notable view. |
hasMountainView | Has mountain view. |
isQuiet | Listed as quiet location. |
isSunny | Listed as sunny. |
isChildFriendly | Child-friendly. |
arePetsAllowed | Pets allowed. |
hasWashingMachine | Washing machine included or connection available. |
hasTumbleDryer | Tumble dryer included or connection available. |
hasDishwasher | Dishwasher included. |
hasFireplace | Has fireplace. |
hasCableTv | Cable TV connection. |
hasChargingStation | EV charging station available. |
isMinergieGeneral | Minergie energy efficiency certified (general). |
isMinergieCertified | Minergie Plus / Eco certified. |
Images & media
| Field | Type | Description |
|---|---|---|
imageUrls | Array | All listing photo URLs (typically 10β20+ per property). |
imageCount | Number | Number of photos. |
floorPlanUrls | Array | PDF floor plan URLs where provided. |
virtualTourUrl | String | null | Virtual tour link where provided. |
Agent & agency
| Field | Type | Description |
|---|---|---|
agentName | String | null | Listing agent full name. |
agentPhone | String | null | Agent phone number. |
agentEmail | String | null | Agent email address. |
agentAvatarUrl | String | null | Agent profile photo URL. |
agencyId | String | null | Homegate agency / lister ID. |
agencyLogoUrl | String | null | Agency logo image URL. |
New construction
| Field | Type | Description |
|---|---|---|
isNewConstruction | Boolean | null | Part of a new construction project. |
newConstructionType | String | null | Project type, e.g. "NEW_CONSTRUCTION_LIGHT". |
projectUrl | String | null | Developer project website URL. |
Description
| Field | Type | Description |
|---|---|---|
descriptionText | String | null | Full property description as plain text. |
descriptionHtml | String | null | Full description as HTML. |
descriptionMarkdown | String | null | Full description as Markdown. |
Dates & metadata
| Field | Type | Description |
|---|---|---|
publishDate | String | null | Publication date (YYYY-MM-DD). |
publishDateISO | String | null | Publication date in ISO 8601 format. |
contentHash | String | MD5 fingerprint of id + title + price for change detection. |
isRepost | Boolean | Always false. |
originalPublishDate | null | Reserved. |
originalUrl | null | Reserved. |
source | String | Always "homegate.ch". |
scrapedAt | String | ISO timestamp of when this record was scraped. |
Example output record
{"id":"4002873083","url":"https://www.homegate.ch/kaufen/immobilien/objekt4002873083","title":"4.5-Zimmer-Wohnung im OG mit zwei Balkonen","offerType":"BUY","propertyType":"immobilien","categories":["APARTMENT","FLAT"],"listingType":"PREMIUM","platforms":["homegate","immoscout24","alleimmobilien","home","anibis"],"price":1650600,"currency":"CHF","priceText":"CHF 1.650.600","livingSpace":null,"totalFloorSpace":112,"lotSize":1778,"numberOfRooms":4.5,"numberOfBathrooms":2,"floor":1,"yearBuilt":2026,"isNewBuilding":true,"street":"Eichacherstrasse 21","postalCode":"8904","locality":"Aesch ZH","canton":"ZΓΌrich","latitude":47.339204,"longitude":8.442492,"hasBalcony":true,"hasElevator":true,"hasGarage":true,"hasMountainView":true,"isSunny":true,"isQuiet":true,"isChildFriendly":true,"arePetsAllowed":true,"isWheelchairAccessible":true,"imageUrls":["https://media2.homegate.ch/listings/v2/e218sub/4002873083/image/9cc62bc8.jpg","https://media2.homegate.ch/listings/v2/e218sub/4002873083/image/37c2a85b.jpg"],"imageCount":16,"floorPlanUrls":["https://media2.homegate.ch/listings/v2/e218sub/4002873083/document/6956d46f.pdf"],"virtualTourUrl":"https://kuula.co/share/collection/7Ml1y?...","agentName":"Ramona Schiesser","agentPhone":"+41556104746","agentEmail":"ramona.schiesser@lerchpromotionen.ch","agencyId":"e218sub","agencyLogoUrl":"https://media2.homegate.ch/t_customer_logo/logos/l_e218sub_v2.jpg","isNewConstruction":true,"newConstructionType":"NEW_CONSTRUCTION_LIGHT","projectUrl":"https://ameichacher.ch/","descriptionText":"Ruhe, Sonne und eine beeindruckende Weitsicht ...","descriptionHtml":"<p>Ruhe, Sonne...</p>","descriptionMarkdown":"Ruhe, Sonne ...","publishDate":"2026-01-26","publishDateISO":"2026-01-26T17:03:33.924Z","contentHash":"a3f9c12e4b7d8e1f","isRepost":false,"source":"homegate.ch","scrapedAt":"2026-05-06T10:00:00.000Z"}
Examples
All buy listings in ZΓΌrich:
{"cantons":["kanton-zuerich"],"propertyType":"immobilien","maxItems":200}
Apartments in Bern and Genf:
{"cantons":["kanton-bern","kanton-genf"],"propertyType":"wohnung","maxItems":500}
Custom search URL (with price and rooms filter set in Homegate):
{"startUrls":[{"url":"https://www.homegate.ch/kaufen/immobilien/kanton-zuerich/trefferliste?pr=500000-1500000&nrooms=3-5"}],"maxItems":100}
Recent new listings across all of Switzerland:
{"propertyType":"immobilien","daysOld":7,"maxItems":1000}
π° Pricing
$1.50 per 1,000 results β you only pay for successfully retrieved listings.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate alternatives typically charge $29β$49/month regardless of usage.
Performance
| Run size | Approx. time |
|---|---|
| 200 listings | 1β2 min |
| 1,000 listings | 5β8 min |
| 5,000 listings | 25β40 min |
Known limitations
- Only buy (for-sale) listings are available β rental listings (
/mieten) are not accessible from the scraper infrastructure. - Pagination is capped at 50 pages (1,000 results) per search URL. To exceed this, combine multiple canton filters or use
startUrlswith different search configurations. - Publish dates are available only when Homegate includes them in the server-rendered data.
Technical details
- Source: window.INITIAL_STATE SSR injection (Vue/Pinia) β pure JSON-in-HTML, zero CSS selectors
- Memory: 256 MB
- Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
- v2.0: Removed cheerio; full image galleries, agent data, and 20+ new fields extracted entirely from SSR state
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support?.nl](mailto:info@unfencedgroup.nl) β we build on request.
Related scrapers
Other scrapers in our Real Estate β Western Europe collection:
- Comparis.ch Real Estate Scraper
- Housing.com India Property Scraper
- Immowelt.de Scraper β German Real Estate
- SeLoger Scraper β France Real Estate
- Kleinanzeigen Real Estate Scraper
Run it on a schedule
This actor is built for repeat use. Set it to run daily, weekly, or hourly, and the data keeps flowing without you touching it.
- Schedule runs β open the actor, go to Schedules, and pick a cadence. Each run only charges you for the results it returns.
- Connect it to your stack β push results straight to Google Sheets, Slack, a webhook, or your database using Apify Integrations. No glue code needed.
- Pull results via API β every run writes a clean dataset you can fetch with one API call, ready for whatever you build on top of it.
Set it once and it runs on its own.
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
