Flatfox Property Scraper avatar

Flatfox Property Scraper

Pricing

from $0.79 / 1,000 property listings

Go to Apify Store
Flatfox Property Scraper

Flatfox Property Scraper

Scrape Flatfox.ch property listings for rent or sale: price, rooms, living space, address, coordinates, photos, agency, and dates. Search by city, postal code, filters, or paste Flatfox search URLs. Export JSON, CSV, Excel.

Pricing

from $0.79 / 1,000 property listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Flatfox Property Scraper

Flatfox Property Scraper extracts structured real estate data from Flatfox.ch — Switzerland's agency-direct rental and sales portal. Search any Swiss city, region, or postal code, filter by price, rooms, and living space, or paste Flatfox search-result URLs, and get clean listing data ready for analysis, monitoring, or lead generation.

Turn a Flatfox search into an analysis-ready dataset — net and gross rent, selling price, rooms, living space, floor, build year, feature tags, exact coordinates, canton, all photos, and agency name, address and logo — for rentals and sales across the whole of Switzerland.

Copy to your AI assistant

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

Actor: parsebird/flatfox-scraper — scrapes property listings from flatfox.ch (Swiss real estate, rent + sale). Input: {"startUrls": [{"url": "https://flatfox.ch/en/search/?offer_type=RENT&north=47.43&south=47.32&east=8.63&west=8.45"}], "offerType": "RENT", "location": "Zurich", "objectCategories": ["APARTMENT","HOUSE"], "priceMin": null, "priceMax": 2500, "roomsMin": "2.5", "roomsMax": "4.5", "spaceMin": null, "spaceMax": null, "sortBy": "newest", "maxResults": 100, "maxResultsPerUrl": 0, "ignoreUrlFailures": true}. Provide startUrls (Flatfox search URLs) OR the build-a-search fields. Leave location empty to search all of Switzerland. objectCategories: APARTMENT, HOUSE, SECONDARY, SHARED, INDUSTRY, PARK. sortBy: newest | price_asc | price_desc | rooms_asc | rooms_desc | space_desc. Run via ApifyClient("YOUR_TOKEN").actor("parsebird/flatfox-scraper").call(run_input=input). Output per listing: id, reference, title, description, objectCategory, objectType, offerType, price, priceUnit, priceDisplayType, rentNet, rentCharges, rentGross, sellingPrice, livingSpace, surfaceProperty, surfaceUsable, numberOfRooms, floor, yearBuilt, yearRenovated, isFurnished, isTemporary, attributes, street, zipcode, city, publicAddress, latitude, longitude, state, country, movingDate, movingDateType, publishedAt, createdAt, images, coverImage, agencyName, agencyAddress, agencyLogo, url. Get an API token at https://console.apify.com/account#/integrations. Full API spec: https://apify.com/parsebird/flatfox-scraper/api

What does Flatfox Property Scraper do?

Flatfox Property Scraper is a Flatfox scraper and Swiss real estate data extractor. Flatfox lists apartments, houses, shared flats, commercial space, and parking directly from landlords and agencies across Switzerland, and this actor reads that public search data into a structured dataset.

🔍 Two ways to search — build a search from an origin city or postal code plus filters, or paste one or more Flatfox search-result URLs and the scraper mirrors the filters and map area from each URL.

🏙️ Every Swiss location — search "Zurich", "Geneva", "Lausanne", a canton, a postal code like "8005", or leave the location empty to scan all of Switzerland.

🗺️ Beats the map limit — Flatfox returns a limited number of pins per map area. The scraper automatically subdivides dense regions so large cities return far more than a single search would.

💰 Full pricing breakdown — display price, rentNet, rentCharges, rentGross, and sellingPrice for sales, plus the price unit and display type.

📐 Property detail — rooms (including half rooms like 3.5), living space, property and usable surface, floor, build year, renovation year, furnished and temporary flags, and a list of feature attributes (balcony, elevator, parking, pets allowed, and more).

📍 Precise location — street, postal code, city, full public address, canton, country, and exact latitude/longitude.

🏢 Agency and media — agency name, postal address, and logo, plus every full-resolution photo and the cover image.

Why scrape Flatfox?

  • Build a Swiss rental market dataset — price per m², rooms, and availability by city or canton
  • Track new listings on a route or in a neighbourhood and get notified when they appear
  • Generate agency leads — every listing carries the managing agency's name and address
  • Feed a property portal, CRM, or relocation tool with structured Flatfox listings
  • Run price and supply analysis for rent or for sale across regions

What data can you extract with Flatfox Property Scraper?

FieldTypeDescription
idnumberUnique Flatfox listing identifier
referencestring | nullAgency reference code
titlestringListing headline
descriptionstring | nullFull listing description text
objectCategorystringAPARTMENT, HOUSE, SECONDARY, SHARED, INDUSTRY, or PARK
objectTypestringMore specific type (APARTMENT, OFFICE, GARAGE_SLOT, …)
offerTypestringRENT or SALE
pricenumber | nullDisplay price in CHF (monthly for rentals)
priceUnit / priceDisplayTypestringPrice unit (e.g. monthly, sell) and how it is shown
rentNet / rentCharges / rentGrossnumber | nullNet rent, utility charges, and gross rent in CHF
sellingPricenumber | nullSelling price in CHF for for-sale listings
livingSpace / surfaceProperty / surfaceUsablenumber | nullAreas in square metres
numberOfRoomsnumber | nullNumber of rooms (e.g. 3.5)
floor / yearBuilt / yearRenovatednumber | nullFloor and construction dates
isFurnished / isTemporarybooleanFurnished and temporary-lease flags
attributesstring[]Feature tags (balcony, lift, parkingspace, pets_allowed, …)
street / zipcode / city / publicAddressstring | nullAddress parts and the full display address
latitude / longitudenumber | nullExact coordinates
state / countrystring | nullCanton code and country code (CH)
movingDate / movingDateTypestring | nullAvailable-from date and how it is expressed
publishedAt / createdAtstringPublication and creation timestamps
imagesstring[]Full-resolution photo URLs
coverImagestring | nullCover photo URL
agencyName / agencyAddress / agencyLogostring | nullListing agency details
urlstringDirect Flatfox listing URL
scrapedAtstringISO 8601 timestamp of the run

How to use Flatfox Property Scraper

  1. Open Flatfox Property Scraper and click Try for free.
  2. Either paste Search URLs from flatfox.ch (the scraper reads the filters from each URL), or leave URLs empty and use the Build a Search fields.
  3. For a built search: set Offer type (rent or sale), a Location (city or postal code, or empty for all of Switzerland), and any Property categories.
  4. Add filters: min/max price, min/max rooms (half rooms like 2.5 are allowed), min/max living space.
  5. Choose a Sort by order and set Max results (and optionally Max results per URL).
  6. Click Start, then export the dataset as JSON, CSV, Excel, or HTML, or pull it via API.

Input parameters

ParameterTypeRequiredDefaultDescription
startUrlsarrayNoFlatfox search-result URLs. Filters and map area are read from each URL; Build-a-Search filters below are layered on where the URL omits them
offerTypestringNoRENTRENT or SALE (built search only)
locationstringNoCity, region, or postal code. Empty = all of Switzerland
objectCategoriesarrayNoallAPARTMENT, HOUSE, SECONDARY, SHARED, INDUSTRY, PARK
priceMin / priceMaxintegerNoPrice bounds in CHF (monthly rent for rentals)
roomsMin / roomsMaxstringNoRoom bounds, half rooms allowed (e.g. 2.5)
spaceMin / spaceMaxintegerNoLiving-space bounds in m²
sortBystringNonewestnewest, price_asc, price_desc, rooms_asc, rooms_desc, space_desc
maxResultsintegerNo100Total listings across all searches. 0 = as many as available
maxResultsPerUrlintegerNo0Per-search / per-URL cap. 0 = no per-URL limit
ignoreUrlFailuresbooleanNotrueSkip a failing search and continue, instead of stopping the run
proxyConfigurationobjectNoApify ProxyDatacenter proxy is enough for Flatfox

Output example

{
"id": 421337,
"reference": "ZH-4021",
"title": "Bright 3.5-room apartment near the lake",
"description": "Renovated apartment with balcony, modern kitchen, and lake views...",
"objectCategory": "APARTMENT",
"objectType": "APARTMENT",
"offerType": "RENT",
"price": 2450,
"priceUnit": "monthly",
"priceDisplayType": "TOTAL",
"rentNet": 2200,
"rentCharges": 250,
"rentGross": 2450,
"sellingPrice": null,
"livingSpace": 86,
"surfaceProperty": null,
"surfaceUsable": null,
"numberOfRooms": 3.5,
"floor": 2,
"yearBuilt": 1998,
"yearRenovated": 2021,
"isFurnished": false,
"isTemporary": false,
"attributes": ["balcony", "elevator", "pets_allowed"],
"street": "Seestrasse 14",
"zipcode": "8002",
"city": "Zürich",
"publicAddress": "Seestrasse 14, 8002 Zürich",
"latitude": 47.3567,
"longitude": 8.5361,
"state": null,
"country": "CH",
"movingDate": "2026-08-01",
"movingDateType": "DATE",
"publishedAt": "2026-06-10T09:22:00Z",
"createdAt": "2026-06-10T09:20:00Z",
"images": ["https://flatfox.ch/media/listing/421337/01.jpg"],
"coverImage": "https://flatfox.ch/media/listing/421337/cover.jpg",
"agencyName": "Lakeview Immobilien AG",
"agencyAddress": "Bahnhofstrasse 5, 8001 Zürich, CH",
"agencyLogo": "https://flatfox.ch/media/agency/logo.png",
"url": "https://flatfox.ch/en/flat/bright-3-5-room-apartment/421337/"
}

Download results in JSON, CSV, Excel, or HTML from the Apify Console or via the API.

Use cases

  • 📊 Rental market research — build a price-per-m² and supply dataset by city, canton, or category
  • 🔔 New-listing monitoring — schedule the actor and alert on fresh listings in a target area
  • 🧲 Agency lead lists — pull the managing agency name and address from every listing
  • 🏠 Relocation and search tools — power an apartment-finder with structured Flatfox data
  • 🤖 Real estate bots and dashboards — feed a chatbot or BI dashboard with live listings
  • 💹 Investment analysis — compare asking prices and yields for for-sale properties across regions

How it works

  1. Search spec — each Search URL is parsed for its filters and map bounds; a built search uses your fields, and a location is geocoded to a bounding box.
  2. Map pins — Flatfox's public search returns lightweight listing pins for a map area, capped per request.
  3. Subdivision — when a map area hits the cap, it is split into quadrants and re-queried, so dense cities return far more than one search.
  4. Filter — price and category are applied at the source; room and living-space bounds are checked against each listing's real values.
  5. Detail — every remaining listing is fetched in full (photos, agency, attributes, description) and mapped to a clean record.
  6. Cap and output — results are truncated to maxResults (and maxResultsPerUrl) and pushed to the dataset.

The actor uses lightweight httpx requests and stays under 512 MB — no browser required.

How much does it cost to scrape Flatfox?

Flatfox Property Scraper uses pay-per-event pricing. One event is charged per listing pushed to the dataset. Platform compute is included.

PlanPrice per listingPrice per 1,000 listings
Free$0.00099$0.99
Bronze$0.00089$0.89
Silver$0.00089$0.89
Gold$0.00079$0.79

Example: a run that returns 500 listings costs $0.50 on the Free plan. Listings dropped by filters or the result caps are never charged.

You can run Flatfox Property Scraper with the free monthly usage credits on every Apify plan.

Integrations and API access

Flatfox Property Scraper works with the full Apify platform:

  • API access — run it and fetch results via the REST API or the Python and JavaScript clients
  • Scheduling — set up recurring runs with the Apify Scheduler to track new listings
  • Webhooks — trigger downstream work when a run finishes
  • Integrations — push data to Google Sheets, Slack, Zapier, Make, Airtable, and more

Python example

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"location": "Geneva",
"offerType": "RENT",
"objectCategories": ["APARTMENT"],
"priceMax": 3000,
"roomsMin": "3",
"sortBy": "price_asc",
"maxResults": 300,
}
run = client.actor("parsebird/flatfox-scraper").call(run_input=run_input)
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["price"], listing["numberOfRooms"], listing["city"], listing["url"])

JavaScript example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const input = {
startUrls: [
{ url: 'https://flatfox.ch/en/search/?offer_type=SALE&north=47.43&south=47.32&east=8.63&west=8.45' },
],
maxResults: 500,
maxResultsPerUrl: 250,
};
const run = await client.actor('parsebird/flatfox-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((l) => console.log(`${l.sellingPrice ?? l.price}\t${l.numberOfRooms}\t${l.publicAddress}`));

Pricing

EventPrice per event (Free)Price per 1,000
listing-scraped$0.00099$0.99

One event per listing in the dataset. Bronze, Silver, and Gold plans pay less — see the cost section above.

FAQ

Where does the data come from? Flatfox's public property search and listing pages — the same data anyone browsing flatfox.ch sees. No login and no Flatfox account is required.

How do I search a specific area? Enter a city or postal code in Location, or paste a Flatfox search URL that already has the map area and filters set. Leave Location empty to search all of Switzerland.

Why did my search return fewer results than maxResults? Flatfox limits how many listings a single map area returns. The scraper subdivides busy areas automatically, but a very narrow filter (for example a rare room count in a small town) may still have fewer matching listings than your cap.

Are half rooms supported in the room filter? Yes. Enter values like 2.5 or 4.5 in roomsMin / roomsMax.

Does it cover both rentals and sales? Yes. Set offerType to RENT or SALE for a built search, or use a Flatfox URL with offer_type=RENT or offer_type=SALE.

Can I scrape several cities or searches in one run? Yes. Add multiple Search URLs, or run the actor on a schedule with different locations. Use maxResultsPerUrl to balance results across them.

Can I schedule recurring runs? Yes — use Apify scheduling and webhooks to keep a listings feed fresh.

Found a bug or need a field added? Open the Issues tab on the Actor page.

Flatfox Property Scraper collects publicly available information: property listings and agency contact details that Flatfox publishes for anyone to browse. It does not log in, submit applications, or access personal data.

Scraping public data is generally legal, as reaffirmed by the US Ninth Circuit in hiQ Labs v. LinkedIn. Make sure your use complies with applicable law (including Swiss and EU data-protection rules) and with Flatfox's Terms of Use. This actor is independent and not affiliated with or endorsed by Flatfox. See Apify's guide to the legality of web scraping.