Flatfox Rentals Scraper (Switzerland: apartments and houses) avatar

Flatfox Rentals Scraper (Switzerland: apartments and houses)

Pricing

$4.00 / 1,000 listings

Go to Apify Store
Flatfox Rentals Scraper (Switzerland: apartments and houses)

Flatfox Rentals Scraper (Switzerland: apartments and houses)

Scrapes Swiss apartment and house listings (rent and sale) from Flatfox's public API, with filters for city, ZIP, canton, price and rooms.

Pricing

$4.00 / 1,000 listings

Rating

0.0

(0)

Developer

WebAlpine Studio

WebAlpine Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does Swiss Rentals Scraper do?

Swiss Rentals Scraper collects apartment and house listings for rent or sale in Switzerland from Flatfox, one of the country's largest listing portals with roughly 36,000 active listings, and returns them as clean, flat JSON records. Filter by city, ZIP code, canton, price range, number of rooms and object category. Prices and living areas are the real values, not the randomised preview numbers Flatfox serves to casual scrapers.

The Actor talks only to Flatfox's public JSON API. No browser, no HTML parsing, no login, no proxies. A typical run with a city filter and 50 to 100 results finishes in under 15 seconds.

Why this actor

  • Public data only: the public JSON API of Flatfox, one of the larger Swiss real estate portals. Useful as a Homegate alternative data source for Swiss rental and sale listings, but note that it covers Flatfox listings only, not Homegate, ImmoScout24 or Comparis.
  • No login, no browser and no proxy. Plain HTTP requests, a typical run finishes in seconds.
  • Structured fields with real values: price, rooms, living area, address, ZIP, canton, coordinates, year built, agency, images and description.

Why use Swiss Rentals Scraper?

  • Market research: track asking rents and sale prices per city, ZIP or canton over time by scheduling the Actor daily.
  • Relocation and property services: feed fresh listings into your own alerts, CRM or client reports.
  • Data analysis: pull thousands of structured records with coordinates, rooms, surface, year built and agency into CSV or Excel in one run.
  • Developers: call it through the Apify API and get JSON back, with pagination, filtering and deduplication already handled.

How to use Swiss Rentals Scraper

  1. Open the Input tab and choose Rent or Sale.
  2. Optionally enter a city (e.g. Zürich, Bern, Lausanne), an exact ZIP code, or pick a canton.
  3. Optionally set a price range, a room range and an object category (apartment, house or any).
  4. Set Max items to the number of listings you want. The newest listings come first.
  5. Click Start. Results appear in the Output tab and can be downloaded as JSON, CSV, Excel or HTML, or fetched through the API.

Input

FieldTypeDescription
offerTypestringRENT or SALE. Default RENT.
citystringCity or municipality name, e.g. Zürich. Accent-insensitive, so Zurich also works. Leave empty for all of Switzerland.
zipstringExact 4-digit Swiss postal code, e.g. 8005.
cantonstringTwo-letter canton code, e.g. ZH, BE, VD, GE, TI.
minPrice / maxPriceintegerPrice range in CHF. Monthly rent for RENT, total price for SALE.
minRooms / maxRoomsnumberRoom count range, half rooms allowed, e.g. 3.5.
objectCategorystringAPARTMENT, HOUSE or ANY. ANY also returns shared flats, parking, commercial space and plots. Default ANY.
maxItemsintegerStop after this many listings. Default 100, maximum 10,000.

Example input for three-room flats in canton Bern up to CHF 2,500:

{
"offerType": "RENT",
"canton": "BE",
"minRooms": 3,
"maxPrice": 2500,
"maxItems": 100
}

Output

Each dataset item is one listing as a flat JSON record. Example from a real run (canton Bern, rent, 3+ rooms, up to CHF 2,500):

{
"source": "flatfox",
"listing_id": "86384926",
"url": "https://flatfox.ch/en/flat/hauptstrasse-4-3706-leissigen/86384926/",
"title": "Hauptstrasse 4, 3706 Leissigen - CHF 1’850",
"offer_type": "RENT",
"object_category": "APARTMENT",
"object_type": "APARTMENT",
"price_chf": 1850.0,
"price_period": "month",
"rent_net_chf": 1650.0,
"rent_charges_chf": 200.0,
"rooms": 4.0,
"surface_m2": 85.0,
"floor": 1,
"year_built": 1988,
"is_furnished": false,
"is_temporary": false,
"address": "Hauptstrasse 4, 3706 Leissigen",
"street": "Hauptstrasse 4",
"zip": "3706",
"city": "Leissigen",
"canton": "BE",
"latitude": 46.6573878,
"longitude": 7.7840874,
"available_from": "2026-12-01",
"published_at": "2026-09-22T13:48:30.538356+02:00",
"images": [
"https://cdn.flatfox.ch/t_listing_card_716x390/listings/v2/isx50985/4003492750/image/5473c310c0220c02506b8158b7b5ace6.png"
],
"description": "Per 1. Dezember 2026 oder nach Vereinbarung vermieten wir eine charmante 4-Zimmer-Wohnung in der idyllischen Gemeinde Leissigen am Thunersee. \n\nDas erwartet Sie ...",
"agency": "Ruchti Partner AG",
"scraped_at": "2026-09-22T20:52:32.248740+00:00"
}

Data fields

FieldDescription
sourceAlways flatfox.
listing_idFlatfox listing id, unique per record.
urlPublic listing page.
titleListing title.
offer_typeRENT or SALE.
object_categoryAPARTMENT, HOUSE, SHARED, PARK, COMMERCIAL, PLOT and others as used by Flatfox.
object_typeFiner type, e.g. FLAT, ATTIC_FLAT, SINGLE_HOUSE.
price_chfReal display price in CHF, or null for price on request.
price_periodmonth, total (sale), year_per_m2 (commercial) or null.
rent_net_chf, rent_charges_chfNet rent and charges when Flatfox splits them.
rooms, surface_m2, floor, year_builtNumeric details, null when not provided.
is_furnished, is_temporaryBooleans from the listing.
address, street, zip, city, cantonLocation. canton is derived from the ZIP code.
latitude, longitudeCoordinates as published by Flatfox.
available_fromMove-in date, ISO 8601 date.
published_atListing publication time, ISO 8601 with timezone.
imagesList of image URLs.
descriptionPlain text description in the listing's language (German, French, Italian or English).
agencyAdvertising agency name, or null for private landlords.
scraped_atTime the record was collected, ISO 8601 UTC.

Fields the source does not provide are null. Nothing is invented.

How long does a run take?

Measured on 22 September 2026:

InputResultsDuration
Rent, Zürich, 50 items507 s
Rent, whole Switzerland, 100 items1006 s
Rent, canton Bern, 3+ rooms, max CHF 2,500, 30 items3018 s
Sale, houses, whole Switzerland, 20 items207 s
Rent, ZIP 8005, apartments up to 2.5 rooms, 100 items29 (all available)26 s

The Actor finds candidates through Flatfox's map endpoint, which filters by price, rooms, offer type, category and area on the server, then fetches the exact details in batches of 100. It stops as soon as maxItems listings match, so small requests are fast. Runs that need thousands of results, or a very narrow filter inside a large area, take longer because more batches have to be checked. A polite delay of 0.3 to 1 second is kept between requests.

Pricing

This Actor uses pay per result. You pay USD 0.004 per listing, which is USD 4.00 per 1,000 results. There is no charge per run or per request, and a run that returns no results produces no result charges.

ResultsPrice
100USD 0.40
1,000USD 4.00
10,000USD 40.00

A daily alert with the 25 newest listings in one city costs USD 0.10 per run, about USD 3 per month. Set maxItems to cap the cost of a run.

Tips

  • Set city or zip whenever you can. Both are geocoded once to a bounding box so only listings in that area are checked.
  • Use objectCategory: "APARTMENT" or "HOUSE" to exclude parking, shared rooms and commercial space, which are common in the ANY results.
  • Listings with no public price (price on request) never match a minPrice or maxPrice filter, so add a wide range only if you want to drop them.
  • Results are ordered newest first, so maxItems: 20 on a daily schedule is a cheap way to get the latest listings for an area.

This Actor only reads Flatfox's public listing API, the same data shown to any visitor of flatfox.ch. It does not require a login and does not bypass any access control. It does not collect personal data about tenants or applicants; agency names are business information published on the listing. What you do with the data, and whether that use complies with Flatfox's terms and applicable law, is your responsibility.

Limitations and known issues

  • Flatfox only. homegate.ch, immoscout24.ch and newhome.ch answer 403 or 503 to automated requests even with browser-like headers. Support for them is planned as future work and would require a browser or proxy setup.
  • Location lookup. City and ZIP inputs are geocoded through OpenStreetMap Nominatim. If a place cannot be found the run fails with a clear message so you can fix the spelling. If the geocoder is unreachable the Actor scans all of Switzerland and filters by name instead, which is slower but still correct.
  • City matching is by name. The city filter matches the city field of the listing as entered by the landlord, so a listing in Zürich-Oerlikon labelled as "Oerlikon" is not returned for city: "Zürich". Use a canton or ZIP for full coverage.
  • Canton is derived from ZIP. A ZIP range table maps postcodes to cantons. A few border villages with ZIPs in a neighbouring canton's range may be assigned to that canton.
  • Coverage per run. Discovery is capped at 400 map requests per run, which is far above what any real filter needs, but an unfiltered "everything in Switzerland" run with maxItems: 10000 is limited by that cap and by the 10,000 item maximum.

FAQ

Are the prices real? Yes. Flatfox serves randomised prices and living areas (roughly plus or minus 25 percent) in its listing feed and map pins to deter scrapers. This Actor uses those only to discover candidates and always re-fetches the exact values through the per-listing lookup before checking your filters and returning a record.

Why does the API not filter by city? Flatfox's listing feed accepts no location or price filters. The map endpoint does, but by coordinates, which is why the Actor geocodes your city or ZIP to a bounding box and then checks the city name on the exact data.

Can I get all listings in Switzerland? Yes, leave the location empty and set maxItems up to 10,000. Expect a few minutes, since each batch of 100 listings is one request.

Something is wrong or missing. Open an issue on the Actor's Issues tab with your input and the run id.

Changelog

0.1.x (2026-09-25): README with concrete pricing and keywords (Swiss real estate, Homegate alternative). No change to the output.

0.1 (2026-09-22): Initial release. Flatfox rent and sale listings with filters for city, ZIP, canton, price, rooms and object category. Server-side candidate discovery through the map endpoint, exact values through batched lookups, newest listings first.