Homegate.ch Swiss Real Estate Scraper avatar

Homegate.ch Swiss Real Estate Scraper

Pricing

from $0.99 / 1,000 listings

Go to Apify Store
Homegate.ch Swiss Real Estate Scraper

Homegate.ch Swiss Real Estate Scraper

Scrape property listings from Homegate.ch by city, canton, and listing type, or from a pasted search URL. Get price, rooms, area, GPS coordinates, features, images, and agent contact info. Export as JSON, CSV, or Excel.

Pricing

from $0.99 / 1,000 listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Homegate.ch Swiss Real Estate Scraper

Scrape property listings from Homegate.ch — one of Switzerland's leading real-estate portals — into clean, structured JSON. The Homegate.ch Swiss Real Estate Scraper pulls the price, rooms, area, floor, full address, canton, GPS coordinates, features, and every listing image for any city, canton, or pasted search URL, with no login and no Homegate API.

Paste a Homegate.ch search URL, or build one from listing type, city, canton, price, and rooms, and get a structured record per property — price, rooms, area, floor, address, GPS coordinates, features, and 15–20 images per listing straight from the search results, with agent contact info available on request.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Actor: parsebird/homegate-ch-scraper (Apify). Scrapes real-estate listings from homegate.ch (Switzerland). Call with ApifyClient.
Input JSON fields:
searchUrls: string[] — Homegate.ch "trefferliste" search URLs; overrides the filters below
listingType: "rent" | "buy" (default "rent")
propertyType: "all"|"apartment"|"house"|"land"|"garage"|"commercial"|"office"|"furnished"|"multi_family" (default "all")
city: string — Swiss city name, e.g. "Zürich" · canton: string — Swiss canton name, e.g. "Zürich" (used when city is empty)
priceMin/priceMax: int (CHF, 0 = no bound) — applied after fetching
roomsMin/roomsMax: number (0 = no bound) — Swiss half-room system, applied after fetching
includeDetails: bool (default false) — fetch each listing's detail page for agent contact info and price breakdown
maxResults: int (default 100, 0 = unlimited)number of billed rows
maxPagesPerTask: int (default 20)20 listings per page
proxyConfiguration: { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CH" } (required — Homegate blocks datacenter IPs)
Output: one dataset item per listing — id, title, price, price_net, price_extra, currency, price_type, rooms, area_sqm,
floor, property_type, listing_type, address, city, postal_code, canton, latitude, longitude, description, features,
image_url, image_urls, agent_name, agent_company, agent_phone, agent_logo_url, agent_url (with includeDetails),
source_url, source_platform, listed_at, scraped_at.
Example: { "searchUrls": ["https://www.homegate.ch/mieten/immobilien/ort-zuerich/trefferliste"], "maxResults": 100, "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CH" } }
API: https://api.apify.com/v2/acts/parsebird~homegate-ch-scraper · Token: https://console.apify.com/account/integrations

What does the Homegate.ch Swiss Real Estate Scraper do?

Homegate.ch lists tens of thousands of Swiss apartments, houses, and commercial properties for rent and for sale. There is no public Homegate API — this Homegate scraper reads the site's own search data instead. For every property in a search it extracts:

  • 💶 Pricing — gross price, and (with includeDetails) net rent and extra costs (Nebenkosten) separately.
  • 📐 Size — living area in m², room count in the Swiss half-room system, and floor.
  • 📍 Location — full street address, city, postal code, canton, and GPS coordinates.
  • 🏷️ Features — balcony, parking, elevator, washing machine, pets allowed, Minergie, and more.
  • 🖼️ Media — every listing image (typically 15–20 per property), already in the search results.
  • 👤 Advertiser — agent or agency name, company, phone, logo, and website (with includeDetails).
  • 📅 Freshness — the listing date and the direct listing URL.

Common uses: Swiss real-estate market research, rent and price benchmarking by canton or city, private-buyer or renter lead sourcing, and building a property dataset or price-tracking dashboard.

Input parameters

ParameterTypeRequiredDefaultDescription
searchUrlsarrayNoHomegate.ch "trefferliste" URLs copied from your browser. Takes precedence over the filters below.
listingTypestringNorentrent (mieten) or buy (kaufen).
propertyTypestringNoallapartment, house, land, garage, commercial, office, furnished, or multi_family.
citystringNoSwiss city name, e.g. Zürich.
cantonstringNoSwiss canton name, e.g. Zürich. Used only when city is empty.
priceMin / priceMaxintegerNo0Price range in CHF (0 = no bound). Applied after fetching.
roomsMin / roomsMaxnumberNo0Room-count range (0 = no bound).
includeDetailsbooleanNofalseFetch each listing's detail page for agent contact info and price breakdown.
maxResultsintegerNo100Maximum listings to return (0 = unlimited). Billed rows.
maxPagesPerTaskintegerNo20Safety limit on result pages per search URL (20 listings per page).
proxyConfigurationobjectYesResidential, country CHHomegate.ch is protected by DataDome and blocks datacenter IPs — Swiss residential proxy is required.

Example inputs

Paste a search URL (Option 1):

{
"searchUrls": ["https://www.homegate.ch/mieten/immobilien/ort-zuerich/trefferliste"],
"maxResults": 100,
"includeDetails": false
}

Build a search from filters (Option 2):

{
"listingType": "buy",
"city": "Bern",
"priceMax": 900000,
"roomsMin": 3,
"maxResults": 50,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CH" }
}

With full details (agent contact info + price breakdown):

{
"searchUrls": ["https://www.homegate.ch/kaufen/immobilien/kanton-zuerich/trefferliste"],
"includeDetails": true,
"maxResults": 30
}

What data can you extract from Homegate.ch?

FieldDescription
id / source_urlListing identifier and direct URL
title / descriptionListing title and full text description
price / price_net / price_extra / currency / price_typeGross price, and (with details) net rent and extra costs
rooms / area_sqm / floorRoom count (half-room system), living area, and floor
property_type / listing_typeNormalised property category and rent vs. buy
address / city / postal_code / cantonFull location breakdown
latitude / longitudeGPS coordinates
featuresBalcony, parking, elevator, washing machine, pets allowed, Minergie, and more
image_url / image_urlsPrimary image and the full gallery (15–20 images typical)
agent_name / agent_company / agent_phone / agent_logo_url / agent_urlAdvertiser contact details (with includeDetails)
listed_at / scraped_atPublication date and extraction timestamp

Output example

{
"id": "4002927362",
"title": "2.5-Zimmer-Wohnung mit Wintergarten",
"price": 2225,
"price_net": 2050,
"price_extra": 175,
"currency": "CHF",
"price_type": "rent_monthly",
"rooms": 2.5,
"area_sqm": 60,
"floor": 4,
"property_type": "apartment",
"listing_type": "rent",
"address": "Im Isengrind, 8046 Zürich",
"city": "Zürich",
"postal_code": "8046",
"canton": "ZH",
"latitude": 47.42223,
"longitude": 8.51208,
"features": ["balcony", "parking", "elevator", "washing_machine", "nice_view", "quiet", "pets_allowed"],
"image_url": "https://media2.homegate.ch/listings/v2/.../image/....jpg",
"source_url": "https://www.homegate.ch/mieten/4002927362",
"source_platform": "homegate.ch",
"listed_at": "2026-02-13T12:45:58.392Z",
"scraped_at": "2026-09-04T12:00:00.000Z"
}

Download the dataset as JSON, CSV, Excel, HTML, or XML from the Storage tab or the Apify API.

Use cases

  • Rent and price benchmarking — compare prices per m² across cities and cantons.
  • Private-buyer / renter lead sourcing — collect fresh listings the moment they're posted.
  • Portfolio and portal seeding — feed a property-comparison site with Homegate inventory.
  • Agency monitoring — track what a specific agency lists, at what price, with includeDetails.
  • Market dashboards — schedule daily runs and chart supply and pricing over time.

How it works

  1. URL — the scraper uses your searchUrls, or builds one from listingType, propertyType, city, or canton.
  2. Listing — it reads each result page's server-rendered data (20 listings per page): price, rooms, area, address, coordinates, features, and images.
  3. Paginate — it walks through pages until maxResults, maxPagesPerTask, or the end of the results.
  4. Filter — price and room-count bounds run in memory over the fetched listings.
  5. Detail — when includeDetails is on, each listing's page is opened for agent contact info and the net-rent / extra-costs breakdown.
  6. Rows stream to the dataset.

How much does it cost to scrape Homegate.ch?

This actor is pay per result with two events.

EventPrice per 1,000
listing-scraped — every saved listingFree $1.39 · Bronze $1.29 · Silver $1.19 · Gold $0.99
listing-detail-scraped — additional, only with includeDetailsFree $5.99 · Bronze $5.49 · Silver $4.99 · Gold $4.49

A small platform Actor start fee also applies per run. Scraping 1,000 listings without details on the Free plan costs about $1.39; with includeDetails on, each listing also adds the detail-event price. maxResults caps the billed rows.

How to scrape Homegate.ch

  1. Click Try for free and sign in to Apify.
  2. Open Homegate.ch in your browser, search the way you normally would, and copy the URL — or fill in listing type, city / canton, and price/room filters here instead.
  3. Set max results (start low, e.g. 20).
  4. Turn on Fetch full listing details if you need agent contact info.
  5. Click Start, then watch rows appear in the Output tab.
  6. Export from Storage, or pull results via the API.

Run it via API

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/homegate-ch-scraper").call(run_input={
"searchUrls": ["https://www.homegate.ch/mieten/immobilien/ort-zuerich/trefferliste"],
"maxResults": 100,
"proxyConfiguration": {"useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CH"},
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["title"], "-", listing["price"], listing["currency"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/homegate-ch-scraper').call({
listingType: 'buy',
city: 'Bern',
priceMax: 900000,
maxResults: 50,
proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'], apifyProxyCountry: 'CH' },
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with Apify integrations.

FAQ

Do I need a Homegate account or API key? No. The scraper reads public Homegate.ch search pages only. Homegate has no public API — this actor is the alternative.

Why does proxyConfiguration matter so much here? Homegate.ch runs DataDome bot protection and blocks datacenter IPs outright. Swiss residential proxy is set by default and is required for reliable runs.

Do I need includeDetails to get images, coordinates, or features? No. The search results already carry full address, GPS coordinates, all images, features, and description. includeDetails only adds agent contact info and the net-rent / extra-costs price split.

Where do canton values come from? When includeDetails is on, the canton comes directly from the listing's own detail page. Otherwise it's resolved live from the listing's postal code — not a hardcoded table.

Why did my price or room filter return fewer listings than expected? Homegate does not expose price or room count as URL filters, so priceMin/Max and roomsMin/Max run after fetching. A listing that omits its price is dropped by a min/max bound — set bounds to 0 to see everything.

Something's not working. Open an issue on the Issues tab with your input and the run link — we respond quickly.

Homegate.ch listing pages are public information that any visitor can see without logging in. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow Homegate's Terms of Use and the Swiss FADP / GDPR when handling any personal data, and consult a lawyer if you are unsure. See Apify's guide on the legality of web scraping.

Browse all ParseBird actors on Apify Store.