Newhome.ch Scraper
Pricing
from $1.20 / 1,000 results
Newhome.ch Scraper
The only Swiss scraper covering BOTH buy & rent on newhome.ch. 40k+ listings, GPS coordinates on every listing, 20+ property features. Pay only for results.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

Extract property listings from newhome.ch at scale, covering both buy and rent across all of Switzerland. Every listing comes with GPS coordinates, structured pricing, 20+ property features, full descriptions and image galleries. No API key required.
Why this scraper?
🇨🇭 Built for Switzerland
A dedicated Swiss scraper, not a global tool with a country dropdown. Price handling, cantons, and location search are tuned for newhome.ch, and descriptions can be pulled in German, French, Italian or English.
🏠 Buy and rent in one place
Scrape rentals, sales, or both in a single run. Filter across residential, commercial, storage, land and parking listings.
📍 GPS on every listing
Latitude and longitude are returned for every property, alongside street, postal code, city, canton and canton code — ready to plot on a map.
🏷️ Structured pricing
Price, net price, price per m², currency and a negotiable flag, parsed from the listing rather than scraped as free text.
🛁 20+ property features
Balcony, garage, elevator, fireplace, basement, wheelchair access, fibre, car charging, Minergie and more — each returned as a clean boolean.
📝 Full descriptions and media
Complete listing description in HTML, plain text and Markdown, plus every image URL, YouTube tour and 3D model link the listing publishes.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
offerType | string | "rent" | rent, buy, or both. |
locations | array | (empty) | Swiss city names to filter by, e.g. Zürich, Bern, Lausanne. Empty means all of Switzerland. |
propertyTypes | array | (empty) | Any of residential, commercial, storage, land, parking. Empty means all types. |
minRooms | number | (none) | Only return listings with at least this many rooms (e.g. 2.5). |
maxRooms | number | (none) | Only return listings with at most this many rooms. |
minPrice | integer | (none) | Minimum price in CHF. Monthly rent for rentals, total price for sales. |
maxPrice | integer | (none) | Maximum price in CHF. |
daysOld | integer | 0 | Only return listings published within this many days. 0 = no filter. |
sortBy | string | "date" | date, price_asc, price_desc, or rooms_desc. |
maxItems | integer | 200 | Maximum number of listings to return. |
immoCodes | array | (empty) | Fetch specific listings by their newhome immoCode IDs. When set, all other filters are ignored. |
language | string | "de" | Description language: de, fr, it or en. |
proxyConfig | object | Residential / CH | Proxy settings. Swiss residential proxy is used by default and is required to reach the source reliably. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given listing are returned as null (or false for feature flags) rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | newhome immoCode, unique per listing. |
url | string | Canonical listing URL on newhome.ch. |
title | string | Listing headline. |
offerType | string | rent or buy. |
propertyType | string | Residential, Commercial, Special, Storage, Land or Parking. |
propertySubType | integer | newhome sub-type code. |
secondaryPropertySubTypes | array | Additional sub-type codes. |
listingNumber | string | Agency reference number. |
availabilityType | integer | Availability status code. |
price | number | Headline price in CHF (monthly rent or sale price). |
priceNet | number | Net price where published. |
priceNetM2 | number | Price per square metre. |
currency | string | Always CHF. |
priceNegotiable | boolean | Whether the price is marked negotiable. |
priceText | string | Price formatted for display, e.g. CHF 1'290'000. |
street | string | Street address where published. |
postalCode | string | Postal code. |
city | string | City. |
canton | string | Canton name. |
cantonCode | string | Two-letter canton code, e.g. BE. |
latitude | number | Latitude. |
longitude | number | Longitude. |
livingArea | number | Living area in m². |
rooms | number | Number of rooms. |
floorsInBuilding | integer | Number of floors in the building. |
constructionYear | integer | Year built. |
renovationYear | integer | Year last renovated. |
availabilityDate | string | Date available (YYYY-MM-DD). |
legalForm | integer | Legal form code. |
hasView | boolean | Has a notable view. |
hasBalcony | boolean | Has a balcony. |
hasGarage | boolean | Has a garage. |
hasParking | boolean | Has a parking space. |
hasElevator | boolean | Has an elevator. |
hasFireplace | boolean | Has a fireplace. |
hasBasement | boolean | Has a basement. |
hasAttic | boolean | Has an attic. |
isWheelchairAccessible | boolean | Wheelchair accessible. |
isPetsAllowed | boolean | Pets allowed. |
isChildFriendly | boolean | Child friendly. |
isMinergie | boolean | Minergie-certified. |
hasCarCharging | boolean | Has an EV charging station. |
hasFiber | boolean | Fibre internet available. |
hasCableTV | boolean | Cable TV available. |
hasHobbyRoom | boolean | Has a hobby room. |
hasStorageRoom | boolean | Has a storage room. |
isHousingAssociationAllowed | boolean | Housing association permitted. |
hasKitchenSharedUse | boolean | Kitchen for shared use. |
hasBuildingLandDevelopment | boolean | Building land is developed. |
hasElectricity | boolean | Electricity connection available. |
hasGas | boolean | Gas connection available. |
hasWater | boolean | Water connection available. |
hasRailConnection | boolean | Rail connection nearby. |
companyName | string | Listing agency name. |
companyUrl | string | Agency website. |
listingWebsiteUrl | string | External listing URL. |
contactProviderId | integer | newhome provider ID. |
contactLogoUrl | string | Agency logo URL. |
contactPhoneOffice | string | Agency office phone. |
isChiffre | boolean | Blind (chiffre) listing. |
hasTopPromotion | boolean | Top-promoted listing. |
hasHighlightPromotion | boolean | Highlighted listing. |
hasSpecialPromotion | boolean | Specially promoted listing. |
imageUrls | array | Listing image URLs. |
youtubeUrls | array | Video tour links. |
model3DUrls | array | 3D model / virtual tour links. |
descriptionHtml | string | Full description, HTML. |
descriptionText | string | Full description, plain text. |
descriptionMarkdown | string | Full description, Markdown. |
publishDate | string | Publish date (YYYY-MM-DD). |
publishDateISO | string | Publish date, ISO 8601. |
contentHash | string | Stable hash for change detection. |
isRepost | boolean | Whether this listing was seen before. |
originalPublishDate | string | First-seen publish date for reposts. |
originalUrl | string | First-seen URL for reposts. |
source | string | Always newhome.ch. |
scrapedAt | string | Scrape timestamp, ISO 8601. |
Example record
{"id": "5938854","url": "https://www.newhome.ch/res/5938854","title": "Architekturschönheit mit Parkanlage","offerType": "rent","propertyType": "Residential","listingNumber": "25-119831","price": null,"currency": "CHF","priceNegotiable": false,"postalCode": "3005","city": "Bern","canton": "Bern","cantonCode": "BE","latitude": 46.940366,"longitude": 7.4489326,"hasBalcony": false,"hasGarage": false,"hasElevator": false,"companyName": null,"contactPhoneOffice": "+41 31 326 00 73","imageUrls": ["https://www.newhome.ch/res/5938854/ort-bern/haus/villa-145791220-d.jpg","https://www.newhome.ch/res/5938854/ort-bern/haus/villa-145791221-d.jpg"],"youtubeUrls": [{ "url": "https://www.youtube.com/embed/jrPIxtHiLe0" }],"descriptionText": "Exklusiv zur Vermietung: Stadtvilla mit Charme und Prestige...","publishDate": "2025-10-14","source": "newhome.ch","scrapedAt": "2026-07-02T10:28:12.453Z"}
Examples
1. All rentals in a city
{ "offerType": "rent", "locations": ["Zürich"], "maxItems": 200 }
2. Apartments to buy in a price range
{ "offerType": "buy", "locations": ["Lausanne"], "propertyTypes": ["residential"], "minPrice": 500000, "maxPrice": 1200000, "sortBy": "price_asc" }
3. Fresh listings only, both buy and rent
{ "offerType": "both", "locations": ["Bern", "Basel"], "daysOld": 3, "sortBy": "date" }
4. Specific listings by ID
{ "immoCodes": ["5938854", "5475664"], "language": "en" }
💰 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 alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.90 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 3–6 minutes |
| 10,000 results | 30–50 minutes |
Known limitations
- Rental and sale prices are sometimes withheld by the agency and returned as
null. - Room count, living area and construction year depend on what the agency fills in; they are often absent on land and parking listings.
- Blind (chiffre) listings expose limited address and contact detail by design.
- Very large all-of-Switzerland runs are best split by canton or city to keep each run comfortably within its time budget.
Technical details
- Source: newhome.ch — Swiss buy and rent property listings
- Coverage: nationwide, filterable by city, canton, property type, price and rooms
- Retry: automatic retry on network errors with exponential backoff
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