Etuovi.com Real Estate Scraper
Pricing
from $3.00 / 1,000 results
Etuovi.com Real Estate Scraper
Scrape property listings from Etuovi.com, Finland's largest real estate portal. Search apartments, houses, plots, holiday homes, and farms/forest estates by city or region, with filters for price, size, rooms, construction year, and more.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape Etuovi.com — Finland's largest real estate marketplace (part of Alma Media). Search apartments, houses, plots, holiday homes, and farm/forest estates by city, region, postal code, or street, with filters for price, size, rooms, construction year, seller type, and more. HTTP-only via the public Etuovi search API. No auth, no proxy, no cookies.
What this actor does
- Five property categories: apartments & houses, plots & building sites, holiday homes & cottages, farms & forest estates, garages & other properties
- Location search: any city, region, neighborhood, postal code, or street address in Finland — combine multiple locations in one search
- Rich filters: building type, room count, price range, price per m², size range, plot area, construction year, new-building status, seller type (agency vs private), open-bidding status, publish-time window, heating system, overall condition, ownership type, plot ownership, unit storey layout, floor position, sauna, balcony, elevator, monthly maintenance charge, waterfront/shore access, has-video, open-house showing status (upcoming / premiere / today / tomorrow), commute time from a point (walk/cycle/drive/public transport), and free-text keyword search
- 8 sort orders: newest/oldest, price low/high, size small/large, construction year old/new
- Full listing data: address, city, price, rooms, size, construction year, agent/agency contact, next open-house showings, and photo gallery
- Empty fields are omitted
Output per listing
id,friendlyId— Etuovi's internal and public listing identifierspublished— whether the listing is currently live on Etuovi.compropertyType,propertyTypeCode— human-readable category and raw codepropertySubtype— building type (e.g. "Detached house", "Cottage", "Forest estate")address,areaAndCity,city,fullLocationlatitude,longitudeprice— asking price in EURsize— living area / plot area in m² (matches thesizeSmallToLarge/sizeLargeToSmallsort key)totalArea— total area in m², when Etuovi reports one (e.g. detached houses, where this also includes garages, basements, or outbuildings and can exceedsize)forestLandArea— forest area in m² (farm/forest estates)rooms— Finnish room-structure notation (e.g.4h, k, s= 4 rooms, kitchen, sauna)roomCountLabel,constructionYear,newBuilding,developmentPhase— new-building construction status (Pre-marketing/Under construction/Move-in ready), when the listing is a new-buildfloorLevel,floorCount— the listing's floor, and the total floors in the buildingunitFloorCount— how many floors the unit itself spans (e.g. a duplex apartment inside a taller building spans 2 of its own floors), when Etuovi reports itpreviousPrice— the listing's prior asking price, when Etuovi reports a price changehasOpenBidding,isCompanyAnnouncement,hasVideo,hasPanoramasellerName— private seller's name, when the listing is not from an agencyofficeName,officeWebsite,officeLogoUrl— listing agencyagentName,agentImageUrl— listing agent, when availablepublishedAt,updatedAtnextShowings[]— upcoming open-house dates/timesmainImageUrl,images[],floorPlanImageUrlsourceUrl— canonicaletuovi.com/kohde/...listing pagerecordType: "listing",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
propertyType | string | RESIDENTIAL | Property category — RESIDENTIAL / PLOT / LEISURE / ESTATE / OTHER |
locations | array | – | City / region / postal code / street to search. Leave empty for all of Finland |
residentialPropertyTypes | array | – | Building type filter (only applies when propertyType=RESIDENTIAL) |
roomCounts | array | – | Restrict to specific room counts |
priceMin / priceMax | int | – | Price range in EUR |
sizeMin / sizeMax | int | – | Living-area range in m² |
yearMin / yearMax | int | – | Construction-year range |
freeTextSearch | string | – | Keyword search (e.g. sauna, pool, fireplace) |
newBuildingSearchCriteria | string | ALL_PROPERTIES | ALL_PROPERTIES / ONLY_NEW_BUILDINGS / NO_NEW_BUILDINGS |
sellerType | string | ALL | ALL / OFFICE (agencies only) / USER (private sellers only) |
bidType | string | ALL | ALL / OPEN_BID / NO_OPEN_BID |
publishingTimeSearchCriteria | string | ANY_DAY | Restrict to recently published listings |
heatingSystems | array | – | Heating system filter (only applies when propertyType=RESIDENTIAL) — district heating, electric, geothermal, oil, gas, wood, heat pump, air-to-water heat pump, exhaust-air heat pump, solar, or not known |
overallConditions | array | – | Seller-reported condition (RESIDENTIAL only) — good / satisfactory / tolerable / unclassified |
ownershipTypes | array | – | Form of ownership (RESIDENTIAL only) — freehold, right-of-occupancy, partial ownership, other, not known |
plotHoldingTypes | array | – | Plot ownership under the building (RESIDENTIAL only) — own / leased / optionally redeemable lease |
residentialFloorCountTypes | array | – | Unit storey layout (RESIDENTIAL only) — single-storey, two-storey, multi-storey, one-and-a-half-storey, not known |
floorPositionInHighrise | array | – | Unit's floor position in the building (RESIDENTIAL only) — bottom / middle / top / not known |
saunaType | string | ANY | Sauna filter (RESIDENTIAL only) — ANY / OWN_SAUNA / HOUSING_COMPANY_SAUNA / NO_SAUNA |
hasBalcony | boolean | false | Only listings with a balcony (RESIDENTIAL only) |
hasElevator | boolean | false | Only listings in buildings with an elevator (RESIDENTIAL only) |
pricePerSqmMin / pricePerSqmMax | int | – | Price-per-m² range in EUR (RESIDENTIAL only) |
maintenanceChargeMin / maintenanceChargeMax | int | – | Monthly housing-company maintenance charge (vastike) range in EUR (RESIDENTIAL only) |
plotAreaMin / plotAreaMax | int | – | Plot area range in m² (applies to RESIDENTIAL, PLOT, and LEISURE only) |
hasShore | boolean | false | Only listings with direct shore/waterfront access (all property categories) |
hasVideo | boolean | false | Only listings with a video tour (all property categories) |
hasUpcomingShowing | boolean | false | Only listings with a future open-house showing scheduled (all property categories) |
hasPremiereShowing | boolean | false | Only listings whose next showing is their first-ever ("premiere") showing (all property categories) |
hasShowingToday | boolean | false | Only listings with an open-house showing today (all property categories) |
hasShowingTomorrow | boolean | false | Only listings with an open-house showing tomorrow (all property categories) |
travelTimeLat / travelTimeLon | number | – | Latitude/longitude of a point to measure commute time from (e.g. a workplace). Both must be set together to enable the filter. Applies to all property categories |
travelTimeMinutes | int | 30 | Only listings reachable from the commute point within this many minutes (5–240) |
travelTimeTransportMethod | string | WALKING | Commute mode — WALKING / CYCLING / DRIVING / PUBLIC_TRANSPORT |
travelTimeLocationName | string | – | Optional cosmetic label for the commute point (doesn't affect matching) |
sortBy | string | newest | Sort order (see enum below) |
maxItems | int | 30 | Hard cap on emitted listings (1–5000) |
Example: apartments in Helsinki, 2–3 rooms, under 400k
{"propertyType": "RESIDENTIAL","locations": ["Helsinki"],"roomCounts": ["TWO_ROOMS", "THREE_ROOMS"],"priceMax": 400000,"sortBy": "priceLowToHigh","maxItems": 50}
Example: holiday cottages with a keyword, sorted by size
{"propertyType": "LEISURE","locations": ["Mikkeli", "Savonlinna"],"freeTextSearch": "oma ranta","sortBy": "sizeLargeToSmall","maxItems": 50}
Example: private-seller detached houses built after 2010
{"propertyType": "RESIDENTIAL","residentialPropertyTypes": ["DETACHED_HOUSE"],"sellerType": "USER","yearMin": 2010,"maxItems": 50}
Example: forest estates nationwide
{"propertyType": "ESTATE","maxItems": 50}
Example: district-heated, elevator apartments with a sauna and balcony
{"propertyType": "RESIDENTIAL","locations": ["Tampere"],"heatingSystems": ["DISTRICT_HEATING"],"saunaType": "OWN_SAUNA","hasBalcony": true,"hasElevator": true,"maintenanceChargeMax": 400,"maxItems": 50}
Example: waterfront cottages with a video tour, sorted by size
{"propertyType": "LEISURE","hasShore": true,"hasVideo": true,"sortBy": "sizeLargeToSmall","maxItems": 50}
Example: apartments within a 20-minute walk of Helsinki city centre
{"propertyType": "RESIDENTIAL","travelTimeLat": 60.1699,"travelTimeLon": 24.9384,"travelTimeMinutes": 20,"travelTimeTransportMethod": "WALKING","travelTimeLocationName": "Helsinki city centre","maxItems": 50}
Example: apartments with an open-house showing today or tomorrow
{"propertyType": "RESIDENTIAL","locations": ["Espoo"],"hasShowingToday": true,"hasShowingTomorrow": true,"maxItems": 50}
Use cases
- Real estate market analysis — track asking prices, price-per-m², and inventory by city or region
- PropTech products — feed live Finnish listings into a search or comparison app
- Relocation & investment research — compare housing stock across Finnish cities
- Lead generation — find newly listed or private-seller properties in a target area
- Forestry & land investors — monitor farm and forest-estate listings nationwide
FAQ
What's the data source? The public search API behind etuovi.com, Finland's largest real-estate marketplace, operated by Alma Media. This actor is an independent third-party tool and is not affiliated with Alma Media or Etuovi.com.
Does this cover rental listings? No — Etuovi.com lists properties for sale only. Alma Media's rental listings live on a separate site (vuokraovi.com), which is out of scope for this actor.
Why do some listings lack an agent name or photos? Those fields are only populated by Etuovi for listings with "premium" placement. The actor never fabricates missing data — the field is simply omitted.
What does the rooms field mean? It's Etuovi's Finnish room-structure shorthand, e.g. 4h, k, s means 4 rooms + kitchen (k) + sauna (s). It's the most descriptive room field the source provides.
How is city determined? Etuovi doesn't expose a standalone city field on search results — city is derived from the last word of the listing's area/city string (addressLine2). For the rare compound-name municipality, use the fullLocation field for the complete, unparsed string.
Are prices in EUR? Yes, all prices are the listing's asking price in euros as shown on Etuovi.com.
What's the difference between size and totalArea? size is the living area (the same field Etuovi sorts on for sortBy: sizeSmallToLarge/sizeLargeToSmall), so it always matches the requested sort order. totalArea, when Etuovi reports one, additionally counts garages, basements, or outbuildings — for detached houses it's often larger than size.
How fresh is the data? Real-time — every run queries Etuovi's live search API directly.
What's the difference between floorCount and unitFloorCount? floorCount is the total number of floors in the building. unitFloorCount is how many of those floors the individual unit itself occupies — e.g. a duplex apartment inside a 5-storey building has floorCount: 5 and unitFloorCount: 2. Most listings only report floorCount; unitFloorCount appears when Etuovi tracks it separately (mainly apartments, terraced houses, and cottages).
Why do filters like heatingSystems or hasElevator only work for propertyType=RESIDENTIAL? Etuovi's own search API rejects those fields with 400 Bad Request for plots, holiday homes, farms/forest estates, and garages — they describe attributes of lived-in residential units (heating system, sauna, elevator access, monthly maintenance charge) that don't exist for a building plot or forest estate. plotAreaMin/plotAreaMax are the one exception that also work on PLOT and LEISURE. hasShore and hasVideo work on every property category.
Can I see the heating system, condition, or sauna type in the output? No — those are search-time filter criteria only. Etuovi's search results endpoint doesn't echo them back per listing (only the full listing detail page does, which this actor doesn't fetch to keep the scraper fast and request-cheap). You can filter by heatingSystems=["WOOD"], for example, but the matched records won't carry a heatingSystem output field.
How does the commute-time filter work? Set travelTimeLat/travelTimeLon to the coordinates of a point (e.g. a workplace or city centre — get these from Google Maps by right-clicking the point), then set travelTimeMinutes and travelTimeTransportMethod. The actor only returns listings Etuovi's own routing engine estimates are reachable from that point within the given time by the given transport method. travelTimeLocationName is an optional label only used for your own reference — it doesn't affect matching. Both travelTimeLat and travelTimeLon must be set together, or the filter is ignored.