Homegate.ch Switzerland Real Estate Scraper
Pricing
from $1.20 / 1,000 results
Homegate.ch Switzerland Real Estate Scraper
Extract rental and for-sale listings from Homegate.ch, Switzerland's leading real estate portal. Get prices, addresses, rooms, and property details as structured JSON.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Homegate.ch Scraper

Scrape real estate listings from Homegate.ch — Switzerland's largest real estate marketplace. Filter by regions, transaction, maxItems and more. No API key required.
Why this scraper?
⚡ Fast & cost-efficient extraction
No browser required — parses structured JSON embedded in server-rendered HTML. Automatic gzip decompression.
🏠 Market coverage
Switzerland's largest property portal — 9,800+ CHF-denominated listings across all cantons.
💰 Rich structured data
35+ fields per listing including GPS coordinates, full street address, postal code, living space, floor, year built, all characteristics, full description, multiple images, and publish date.
🔍 Flexible filters
Filter by canton or city slug — from kanton-zuerich to ort-genf to kanton-waadt.
📍 Location & GPS
Latitude/longitude returned for nearly every listing. Full street address and postal code included.
🔗 Direct URL support
Paste any Homegate search-results URL into startUrls and the scraper paginates that exact search — every filter you set on the site is preserved.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
transaction | string | "buy" | buy (Kaufen) or rent (Mieten). |
regions | array | ["kanton-zuerich", "kanton-waadt"] | Homegate geo slugs, one per line — cantons (kanton-zuerich, kanton-bern) or cities (ort-genf, ort-basel). Leave empty to sweep all 11 built-in regions. |
maxItems | integer | 100 | Maximum listings returned across all regions. |
minPrice | integer | (empty) | Only listings priced at or above this amount in CHF. |
maxPrice | integer | (empty) | Only listings priced at or below this amount in CHF. |
daysOld | integer | (empty) | Only listings published in the last N days. Set to 1 for a daily new-listings feed. |
startUrls | array | (empty) | Homegate search-results URLs. When provided, regions is ignored and these searches are paginated instead. Price and age filters still apply. |
Price filters exclude listings marked price-on-request, since those carry no comparable amount.
Output schema
{"id": "4002873083","url": "https://www.homegate.ch/kaufen/immobilien/4002873083","transaction": "buy","listingType": "PREMIUM","propertyType": "Apartment","categories": ["APARTMENT", "FLAT"],"title": "4.5-Zimmer-Wohnung im OG mit zwei Balkonen","description": "Ruhe, Sonne und eine beeindruckende Weitsicht...","priceText": "CHF 1'650'600","priceAmount": 1650600,"priceCurrency": "CHF","postalCode": "8904","street": "Eichacherstrasse 21","city": "Aesch ZH","region": "kanton-zuerich","country": "CH","latitude": 47.339204341352,"longitude": 8.442492384535,"numberOfRooms": 4.5,"numberOfBathrooms": 2,"floor": 1,"livingSpace": 112,"lotSize": 1778,"yearBuilt": 2026,"hasBalcony": true,"hasGarage": true,"hasElevator": true,"hasParking": true,"isNewBuilding": true,"images": ["https://media2.homegate.ch/listings/v2/e218sub/4002873083/image/9cc62bc835cdfce96c839b233969d836.jpg","https://media2.homegate.ch/listings/v2/e218sub/4002873083/image/37c2a85bd065be0d5bec015b2cb4f2fa.jpg"],"documents": [{ "title": "Grundriss Whg. 101", "url": "https://media2.homegate.ch/..." }],"externalUrls": [{ "type": "VIRTUAL_TOUR", "title": "virtuelle Besichtigung", "url": "https://kuula.co/..." }],"agencyId": "e218sub","platforms": ["homegate", "immoscout24", "alleimmobilien", "home", "immostreet"],"publishDate": "2026-01-26","publishDateISO": "2026-01-26T17:03:33.924Z","source": "homegate.ch","scrapedAt": "2026-05-06T07:30:00.000Z","contentHash": "a1b2c3d4e5f6a7b8"}
Field reference
| Field | Type | Coverage | Notes |
|---|---|---|---|
id | string | 100% | Homegate listing ID |
url | string | 100% | Direct listing URL |
transaction | string | 100% | buy or rent |
listingType | string | 100% | PREMIUM, STANDARD, BASIC |
propertyType | string | 100% | Human-readable: Apartment, House, Villa, etc. |
categories | array | 100% | Raw categories from API: APARTMENT, FLAT, HOUSE, etc. |
title | string | 100% | Listing title in German |
description | string | 100% | Full listing description (HTML) |
descriptionMarkdown | string | 100% | Description as plain text |
priceText | string | ~88% | Formatted: CHF 1'650'600 |
priceAmount | number | ~88% | Numeric price; null for price-on-request |
priceCurrency | string | 100% | Always CHF |
postalCode | string | 100% | Swiss 4-digit postal code |
street | string | ~92% | Full street address with number |
city | string | 100% | City/locality name |
region | string | 100% | Input slug used, e.g. kanton-zuerich |
country | string | 100% | Always CH |
latitude | number | 100% | GPS latitude (WGS84) |
longitude | number | 100% | GPS longitude (WGS84) |
numberOfRooms | number | 100% | Room count incl. half-rooms (e.g. 4.5) |
numberOfBathrooms | number | ~48% | Bathroom count |
floor | number | ~64% | Floor number (0 = ground) |
livingSpace | number | ~96% | Living area in m² |
lotSize | number | ~52% | Plot size in m² (houses) |
yearBuilt | number | ~96% | Construction year |
hasBalcony | boolean | ~92% | Has balcony or terrace |
hasGarage | boolean | ~84% | Has garage |
hasElevator | boolean | ~48% | Has elevator |
hasParking | boolean | ~64% | Has parking space |
isNewBuilding | boolean | ~56% | New construction |
images | array | 100% | All listing images (typically 5–20 URLs) |
documents | array | ~56% | Floor plans, brochures (PDF URLs) |
externalUrls | array | ~36% | Virtual tours, project websites |
agencyId | string | ~32% | Agency code for the lister |
platforms | array | 100% | Portals listing is active on |
publishDate | string | 100% | YYYY-MM-DD |
publishDateISO | string | 100% | ISO 8601 with time |
source | string | 100% | Always homegate.ch |
scrapedAt | string | 100% | ISO 8601 scrape timestamp |
contentHash | string | 100% | MD5 dedup hash |
Examples
Properties for sale in Zürich canton:
{ "regions": ["kanton-zuerich"], "transaction": "buy", "maxItems": 100 }
Rental listings in Geneva:
{ "regions": ["ort-genf"], "transaction": "rent", "maxItems": 200 }
Multi-region national sweep:
{"regions": ["kanton-zuerich","kanton-waadt","kanton-aargau","kanton-bern","kanton-luzern","ort-genf","ort-basel"],"transaction": "buy","maxItems": 2000}
Daily feed of new listings (run on a schedule):
{"daysOld": 1,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours, ideal as a daily new-listings alert.
💰 Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate real estate data providers typically charge $99–$299/month regardless of usage. At 10,000 results/month, this scraper costs significantly less with no subscription.
Use the Max results cap in the input to control your spend exactly.
Performance
Measured on 28 July 2026 at 512 MB:
| Run size | Time |
|---|---|
| 20 listings | ~40-60 s |
| 100 listings | ~2 min |
| 1,000 listings | ~15-20 min |
Homegate sits behind Cloudflare, so each search page is fetched through an unlocking layer that takes 30-40 s per page. Pages within a region are fetched in parallel, which is why larger runs scale better than the per-page figure suggests. Runs stop cleanly and return what they collected if they approach the run timeout.
Known limitations
- Price: ~12% of listings use price-on-request —
priceAmountisnull, and these are excluded when a price filter is set. - Street: ~8% of listings omit the street address (postal code + city are still present).
- Agent contact details: not returned. Agent names, direct phone numbers and email addresses are personal data and are deliberately excluded from output.
- Price and age filters are applied to the parsed results, not passed to Homegate. A narrow filter reads more pages to fill
maxItems. - Pagination depth: 50 pages per region, so 1,000 listings per region. Split a large canton across city slugs to go deeper.
Technical details
- Method: JSON-HTML — parses
window.__INITIAL_STATE__(server-side rendered JSON) from search pages - Source: Homegate.ch — Switzerland's largest real estate marketplace
- Memory: 512 MB
- Retry: Per-attempt timeouts escalate and the network identity is re-rolled on a stalled fetch
- Deduplication: In-run de-duplication by listing ID;
contentHashsupports cross-run change detection - Output fields: 35+ fields
- Pagination: Up to 50 pages per region (1,000 listings per region)
Rate this actor
If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.
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