FINN Eiendom Scraper: Norway Homes and Rentals
Pricing
from $1.04 / 1,000 homes
FINN Eiendom Scraper: Norway Homes and Rentals
FINN eiendom across Norway: homes for sale, rentals, new builds, holiday homes, plots and commercial property, by place, FINN's filters, agency or link, no login. Rows: prisantydning, totalpris, felleskostnader, BRA-i, price per m², eieform, agency, sales history. Pay per home, Excel, API, MCP.
Pricing
from $1.04 / 1,000 homes
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
FINN Eiendom Scraper: Norway Homes and Rentals
FINN real estate data from FINN eiendom, the real estate part of FINN.no: search FINN's real estate ads by place, by FINN's own filters, by agency, on a drawn map area, by a pasted FINN search link or by ad link and FINN code, in all 12 sections (homes for sale, rentals, new builds, holiday homes, homes abroad, plots, holiday plots, commercial property to rent or for sale, commercial plots, companies for sale, wanted ads), and get every ad as one row: asking price (prisantydning), total price (totalpris), shared costs (felleskostnader), area, bedrooms, property and ownership type (eieform), agency, viewings, map point, the price per square metre and the days on market. Turn on the ad page for the full property record (sales costs, common debt, tax value, BRA-i, BRA-e, P-rom, plot, energy label, building year, the housing cooperative, a project's units with their prices and sale status, a sold home's sale time), and add FINN's price statistics, the registered sales history and FINN's area profile per home. No login, no cookies.
Who uses it: real estate agents and agencies watching the market and every agency's stock, property investors screening prices per square metre, analysts and valuers tracking asking prices, days on market and sales by area, rental and relocation services, home buyers comparing one area, and teams feeding FINN eiendom data into their own sheets, apps or AI agents.
Quick start
- Open the Input tab and pick Sections (homes for sale is the default;
Homes to rent,New builds,Holiday homes for saleand the others) and Places (Oslo,Bergen,Trøndelag,Grünerløkka). - Narrow it with FINN's real estate filters: Lowest price and Highest price, Smallest area (m²), Bedrooms (at least), Property types, Ownership, Energy labels, Built in or after, Floor, Viewing days, Seller, Lowest price per m² and the section filters for rentals, holiday homes, wanted ads and companies.
- Or paste FINN links: search pages into Search links, ad links or FINN codes into Ad links or FINN codes, or give Agency ids to read every ad of one agency office.
- Keep Include the ad page on for the full property record (no extra charge), turn on the add-ons you want (Add FINN's price statistics, Add the sales history, Add the area profile), set Maximum rows and click Start. Download the rows as JSON, CSV or Excel, or read them through the Apify API.
The prefilled input reads 20 homes for sale in Oslo with their ad pages (measured on the final build 0.1.7: about 31 seconds; FINN's pace varied from about 30 seconds to 4 minutes that day). For a daily feed, schedule the run in Apify (set Posted within (hours) to 24 for the last day's ads) and keep the FINN codes you have seen in your own sheet or flow: this Actor keeps no memory between runs.
What you get
One row per ad (type: "listing", vertical: "realestate"), one free coverage row per search (type: "search"), free status
rows for anything that could not be delivered (type: "status") and a run summary (type: "summary").
Every fill figure below is counted on the rows of the real actor runs of 2026-10-23 (matrix er8 and er9: this Actor, build 0.1.4; the final build 0.1.7 adds the Results page event, withholds a private seller's local area that holds a number and changes no other field,
33 runs with rows, the national sweep left out): 1,190 rows without the ad page ("search row", 1,068 distinct ads) and 652 rows with
it ("ad page", 352 distinct ads), all with the personal data switch off, over all 12 sections (homes 1,748, lettings 27, leisuresale 17, ad links 14, newbuildings 7, businessrent 7, wanted 7, companyforsale 5, abroad 2, plots 2, leisureplots 2, businesssale 2, businessplots 2). A field FINN does not
show for an ad is null. "N of M" counts the rows where the field holds a value; "above 0" leaves out zeros.
On every row
| Field | What it is | Search row | Ad page |
|---|---|---|---|
adId, url, title | the FINN code (finnkode), the ad's link, its title | 1,190 of 1,190 | 652 of 652 |
kind | the FINN section it came from (homes, lettings, newbuildings, leisuresale, abroad, plots ...; null on an ad link row) | 1,190 of 1,190 | 638 of 652 |
price, priceSuggestion | the asking price (prisantydning); on a rental, the rent a month | 1,116 of 1,190 (1,084 above 0) | 615 of 652 (599 above 0) |
priceTotal | the total price with common debt and costs (totalpris) | 1,116 of 1,190 (1,080 above 0) | 615 of 652 (597 above 0) |
priceRange, priceTotalRange, bedroomsRange | a new build project's span of prices and bedrooms | 74 of 1,190 | 37 of 652 |
sharedCost | shared costs a month (felleskostnader) | 1,116 of 1,190 (634 above 0) | 615 of 652 (355 above 0) |
area | the area FINN shows on the search row, with its kind (p-rom, size ...) | 1,190 of 1,190 (1,152 above 0) | 638 of 652 (622 above 0) |
bedrooms, plotArea | bedrooms, the plot in m² | 1,116 of 1,190, 981 | 615 of 652, 547 |
propertyType, ownershipType | Leilighet, Enebolig, Hytte ...; Selveier, Andel, Aksje (eieform) | 1,186 of 1,190, 1,144 | 649 of 652, 643 |
location, localArea | the place as FINN shows it (a private seller's street address only with Include personal data), the local area as the seller wrote it (it can be a street name; on a private seller's ad a local area that holds a number is withheld) | 1,172 of 1,190, 805 | 652 of 652, 441 |
latitude, longitude, coordinateAccuracy | the map point and FINN's accuracy code | 1,176 of 1,190 (accuracy 1,182) | 652 of 652 |
imageUrl, imageUrls, imageCount | photo links (never downloaded) and their count | photos 1,187 of 1,190 (the count on every row) | photos 651 of 652 (the count on every row) |
publishedAt | FINN's latest publication (a renewed ad is new again) | 1,190 of 1,190 | 651 of 652 |
daysOnMarket, daysOnMarketSince | days from the first publication (ad page) or the latest one (search row) to the sale or the read, and which date it counts from | 1,190 of 1,190 | 651 of 652 |
status, soldAt | active or sold, and the sale time | 1,190 of 1,190, sale time 0 | 652 of 652, sale time 10 (every sold ad) |
sellerType, agencyName, companyName, companyLogo | private or business; the agency (megler), always delivered | 1,190 of 1,190; agency 1,151 | 652 of 652; agency 632 |
companyId | FINN's agency id (use it in Agency ids); on a search row the id in the agency's logo address | 1,144 of 1,190 | 632 of 652 |
companyWebsite, agencyAdsUrl | the agency's website, FINN's search of the agency's ads ("more ads from this broker") | ad page only | 484 and 441 of 652 |
pricePerSqm, totalPricePerSqm, sqmPriceArea, sqmPriceAreaBasis | asking and total price per m², over the area named in the basis: BRA-i, else P-rom, else BRA, else the search row's single area | 1,071, 1,067 and 1,100 (area and basis) of 1,190 | 599, 597 and 610 of 652 |
viewings | viewing times (visning), and the agency's viewing note when it writes one | 977 of 1,190 | 581 of 652 |
facilities | facilities (balcony, lift, parking ...) | 916 of 1,190 | 591 of 652 |
labels | FINN's labels on the ad (Visning i dag ...) | 65 of 1,190 | 43 of 652 |
promoted, promotion | FINN's paid highlight of the search row (pluss, premium) | true on 1,154 of 1,190 | true on 627 of 652 |
viewingToday, searchFlags | FINN's "viewing today" badge, every flag of the search row | badge on 1, flags 1,183 of 1,190 | badge on none, flags 638 of 652 |
searchKey, searchLabel, source, position, detailsIncluded, deliveryId, runId, scrapedAt | which search delivered the row, search or link, its place in the search, whether the ad page was read, run facts | every row | every row (the search fields empty on an ad link row) |
companyPhone and companyOrgNumber stay empty: FINN shows no agency phone or organisation number on its real estate pages.
companyEmail, companyAddress, municipality and county were empty on every measured row too.
With the ad page
With Include the ad page on (the prefill), and on every ad link row, each row also carries its ad page, read for each ad and included in the Home price. Counted on the 652 rows with the ad page:
| Field | What it is | Filled (measured) |
|---|---|---|
description, descriptionText, attributes, textSections, contentHash | the description as served and as text, every key fact as FINN labels it, the ad's text sections, a short hash of the description | 652 of 652 (text sections 650) |
firstPublishedAt, editedAt | the first publication, the last change | 565 and 652 of 652 |
streetAddress, postalCode, postalName | the street (a private seller's only with Include personal data), the post code and town | street 632, post code 652 of 652 |
usableArea, usableAreaI, usableAreaE, usableAreaB, openArea, primaryRoomArea, grossArea, areaDescription | BRA, BRA-i, BRA-e, BRA-b, open area (TBA), P-rom, gross area, the area text | BRA 586, BRA-i 580, BRA-e 500, open area 481, P-rom 44 of 652 |
rooms, floor, constructionYear, energyLabel, energyLabelColour | rooms, floor, building year, energy label and colour | 479, 398, 573 and 509 of 652 |
collectiveDebt, collectiveAssets, municipalFees, propertyTax, taxValue | fellesgjeld, fellesformue, kommunale avgifter, eiendomsskatt, ligningsverdi | 196, 230, 298, 146 and 504 of 652 |
salesCost, salesCostIncludes, sharedCostIncludes | the buyer's costs (omkostninger) and what they and the shared costs include | 586, 564 and 342 of 652 |
pricePerSqmWithDebt | FINN's own price per m²: asking price plus common debt over the area, rounded down as FINN shows it | 599 of 652 |
plotOwned, cadastre, mapImageUrl | owned or leased plot, the land register numbers (gnr, bnr), FINN's map image (a private seller's only with Include personal data) | 573, 618 and 632 of 652 |
housingCooperativeName, housingCooperativeOrgNumber, preemption, changeOfOwnershipInsurance, regulations | the housing cooperative (borettslag) and its organisation number, preemption (forkjøpsrett), change of ownership insurance, zoning text | 137, 137, 72, 577 and 190 of 652 |
viewingDetails, moreInfoLinks | each viewing with date, times and note; the agency's links (viewing sign up, valuation) | 581 and 619 of 652 |
prospectusUrl, floorPlanUrls, bidUrl, documents | the sales prospectus, floor plans, the electronic bidding link, attached documents | 570, 550, 554 and 4 of 652 |
videoUrl, virtualViewingUrl | a video and a 360 degree viewing | 360 viewing 5 of 5 rows found with Video or 360 viewing set to 360 viewing |
privateSaleService | the service a private owner sells through (such as Propr.no), business data; the seller is a private seller | 5 of 652 |
externalAdId, advertiserRef, adViewType, externalPartner | the agency's own ad id and reference, FINN's ad type, a partner site | 622, 615 and 652 of 652 |
monthlyRent, deposit, rentPerSqm, rentIncludes, rentalFrom, rentalTo, furnishing, animalsAllowed, refugeesWelcome | a rental's rent a month, deposit, rent per m², what the rent includes, the period, furnishing, pets, FINN hjerterom | rent 5 of 5 rentals, deposit 2, available from 5 |
projectName, projectPhases, units, unitsTotal, unitsSold, unitsAvailable | a new build project: every unit with its FINN code, sold or not, bedrooms, floor, areas, asking and total price, and the counts | units 3 of 5 new build rows (the other two carry no unit list) |
soldText, finnSqmPrice, areaSales, clicks | a sold ad's page: FINN's sold text, FINN's price per m², the last year's sales in its local area by price per m² (with the middle bucket), its click count | 10 of 10 sold rows |
companyForSale | a company for sale: its facts | 3 of 3 companies for sale |
brokers, contacts | the agency's brokers and contact persons (name, title, phone, mobile, e-mail) | only with Include personal data: 5 of 5 rows of the run with the switch on (run k28VQMb9ndfw3CGoV) |
With Extract contacts from texts: emails, phoneNumbers, websites, socialProfiles. With Include raw search row:
raw.
Example row
A home for sale in Oslo from the prefilled run, with its ad page (shortened; personal data off; run 0mQAZC6dB3VkXkxvW of 2026-10-23):
{"type": "listing", "vertical": "realestate", "kind": "homes", "adId": "479323754", "url": "https://www.finn.no/realestate/homes/ad.html?finnkode=479323754","title": "Innholdsrik 4-roms selveierleilighet i 2. etasje med to solrike uteplasser og garasjeplass med EL. Varmtvann inkludert!","priceSuggestion": 5800000, "priceTotal": 6068726, "sharedCost": 6502, "collectiveDebt": 122636, "propertyType": "Leilighet","ownershipType": "Selveier", "bedrooms": 3, "usableAreaI": 102, "constructionYear": 1989, "energyLabel": "E", "floor": 2,"pricePerSqm": 56863, "pricePerSqmWithDebt": 58065, "sqmPriceAreaBasis": "usableAreaI", "daysOnMarket": 0.2, "status": "active","location": "Gamle Enebakkvei 65, Oslo", "postalCode": "1188", "postalName": "Oslo", "latitude": 59.8657, "longitude": 10.8348,"agencyName": "DNB Eiendom AS", "companyId": "-3", "sellerType": "business", "viewings": ["2026-10-29T16:30", "2026-11-01T15:15"],"facilities": ["Balkong/Terrasse", "Barnevennlig", "Bredbåndstilknytning", "Garasje/P-plass"], "housingCooperativeName": null,"brokers": null, "detailsIncluded": true, "source": "search"}
The coverage row of each search (free)
Each search gets one free row: FINN's order it was read in (order), the filters sent (filtersSent), how many ads FINN counts
(adsOnFinn) and how many units (unitsOnFinn; a new build project counts its units), the slices, pages and rows read, the ads met
and delivered, how many were left out and by which filter (filteredOutBy), the ads still beyond reach (adsBeyondReach), whether the search was read to its end (complete) and why it stopped
(stoppedBy). With Price summary per search (on by default) it also carries priceSummary: count, lowest, quartiles, median,
mean and highest asking price of the ads met. From the add-on run of homes for sale in Bergen (TaQhKfiw0xwprHRZS):
{ "type": "search", "vertical": "realestate", "kind": "homes", "searchLabel": "in Homes for sale", "order": "newest first (FINN's default order here)","filtersSent": ["location=1.22046.20220"], "adsOnFinn": 663, "unitsOnFinn": 1205, "slicesRead": 0, "pagesRead": 1,"rowsRead": 50, "distinctAdsMet": 50, "adsBeyondReach": 0, "adsDelivered": 20, "filteredOut": 0, "filteredOutBy": {},"priceSummary": {"count": 50, "withoutPrice": 0, "currency": "NOK", "min": 0, "p25": 3090000, "median": 4240000, "p75": 5700000, "max": 12990000, "mean": 4877800},"complete": false, "stoppedBy": "maxItems" }
The add-ons
Each add-on is off by default, reads one more FINN page per delivered row, and is billed as its own event only on a row whose field
carries its data (<field>Status: "delivered"). Every other row says why its field is empty, free: notOffered (a kind of ad the
page does not serve), personalData (a private seller's or landlord's home with Include personal data off),
noRegisteredSales, shareFlatNotRegistered, noStatistics, noProfile, unavailable (FINN's area profile page says the
profile is not available right now, often on the newest ads; run them again later), failed or notRead. The page is read only for the rows chosen for delivery, after every
filter and cap. Each add-on page is read once (a page FINN fails to serve is failed, free; run the home again later). Each add-on
has a budget of its own for reads that bring nothing to bill (USD 0.003, plus a share of each of its events delivered): when FINN's page for one add-on keeps failing, that add-on stops for the rest of the run (status notRead,
one free row says so) and the homes and the other add-ons go on.
Measured on the real actor runs of 2026-10-23 (matrix er8 and er9, build 0.1.4): 200 homes for sale across Norway with the ad page: 184 of 200 carried price statistics, 139 of 200 carried a sales history, 197 of 200 carried an area profile; 20 homes for sale in Bergen with the ad page: 19 of 20 carried price statistics, 11 of 20 carried a sales history, 20 of 20 carried an area profile; 10 holiday homes without the ad page: 8 of 10 carried price statistics, 4 of 10 carried a sales history, 10 of 10 carried an area profile; 5 rentals in Oslo (both notOffered, free): 0 of 5 carried price statistics, 0 of 5 carried a sales history. Earlier the same day (09:44 to 10:01 UTC, build 0.1.2) FINN's area profile service failed: those rows carry unavailable, failed or notRead, and the area profile was billed on none of them. The add-ons work the same without the ad page.
Price statistics
With Add FINN's price statistics on, a resale home or holiday home gets priceStatistics from FINN's price statistics page
(prisstatistikk): FINN's price per m² of the ad (finnSqmPrice: asking price plus common debt per m²), its click count on FINN
(clicks), and the last year's sales in its local area and county for its property type (areaSales: area, property type,
number of sales and the histogram by price per m² in buckets of 1,000 kroner, with middleSqmPriceBucket). A sold ad whose own
page carries the block gets it free (fromAdPage, no event). Rentals, new builds and the other sections: notOffered, free.
Sales history
With Add the sales history on, a resale home or holiday home gets salesHistory: its earlier registered sales, each with its
date and price, as FINN shows them from Norkart's land register data (grunnboken). A home with no registered sale is
noRegisteredSales, a share flat (aksjeleilighet) is shareFlatNotRegistered (share flats are not in the register), both free. A
private seller's home only with Include personal data on.
Area profile
With Add the area profile on, an ad gets areaProfile: FINN's neighbourhood profile (Nabolagsprofil) of its place, by section
as FINN serves it (general, people, family, transport, environment, leisure, shopping): people by age, families and
children, education, housing stock and ownership, resident ratings (safety, noise and others), and the nearest public transport,
schools, kindergartens, shops and sport with walking and driving times. Every section but homes abroad, wanted ads and companies
for sale; a private seller's or landlord's home only with Include personal data on (the profile names its street and exact
point).
How much does it cost to scrape FINN eiendom?
You pay per event, with Apify's store discounts by plan. The ad page is included in the Home price: with Include the ad page on, and on every ad link row, it costs nothing extra.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Home (one real estate row, any section, its ad page included) | $1.45 per 1,000 | $1.33 per 1,000 | $1.20 per 1,000 | $1.04 per 1,000 |
| Results page (a search page that brings a home new in the run and delivers a home, up to 50 homes) | $0.70 per 1,000 | $0.64 per 1,000 | $0.58 per 1,000 | $0.50 per 1,000 |
| Price statistics (add-on, one per row that carries them) | $1.40 per 1,000 | $1.28 per 1,000 | $1.16 per 1,000 | $1.00 per 1,000 |
| Sales history (add-on, one per row with an earlier sale) | $1.40 per 1,000 | $1.28 per 1,000 | $1.16 per 1,000 | $1.00 per 1,000 |
| Area profile (add-on, one per row that carries it) | $1.40 per 1,000 | $1.28 per 1,000 | $1.16 per 1,000 | $1.00 per 1,000 |
| Actor start (once per run) | $0.0049 | $0.0049 | $0.0049 | $0.0049 |
Platinum and Diamond plans pay the Gold price. The Actor start is a flat fee per run, with no plan discount.
The Store pricing card shows these same prices per 1,000 events: "$1.04 / 1,000" on the Home row means one home costs about a tenth of a cent at Gold ($0.00104), and "$1.40 / 1,000" on an add-on row means one price statistics, sales history or area profile costs $0.0014 on the Free plan.
- Home is charged once per ad delivered as a row, from a search, an agency or a link, with or without its ad page.
- Results page is charged once per FINN search page the run reads that brings at least one home not met before in the run and from which a home is delivered (up to 50 homes a page, so about $0.01 per 1,000 homes at Gold). A page of repeats, a page whose homes are all left out by a filter (on the search row or on the ad page), a page FINN did not apply, the first page of a split, an empty search, ad links and every page of a run's restarted attempt are free. It keeps many small searches (one home each) worth reading on a slow FINN hour.
- Price statistics, Sales history and Area profile are charged only with their add-on on, and only on a row whose field carries the add-on's data. A row whose page has nothing (no registered sale, a share flat, a kind the page does not serve, a failed read) pays nothing for it.
- Never billed: the ad page, a search page with nothing new, repeats in the run, ads left out by a filter (the price per m² window included), a missing or removed ad, a refused setting, a search that finds nothing, coverage rows, status rows and the summary.
- Every run is charged the Actor start fee ($0.0049), also when it finds nothing (a keyword with no ads, a filter no ad passes, an input with nothing valid in it): such a run costs $0.0049.
- Example: 1,000 homes for sale from one search on the Gold plan cost $0.0049 (start) + 1,000 homes ($1.04) + 20 Results pages ($0.01) = $1.0549, as measured on this Actor (run siUiH62ZyepzUvffj). On the Free plan $0.0049 + $1.45 + $0.014 = $1.4689.
- Example with the ad page: the same 1,000 homes with Include the ad page on cost the same, $1.0549 on the Gold plan, since the ad page has no event of its own.
- Example with many small searches: 50 keyword searches of one home each with the ad page (run vcDfMi03y9rpISfLx) billed 50 homes and 43 Results pages (7 pages brought only homes already met): $0.0049 + $0.052 + $0.0215 = $0.0784 on the Gold plan.
- Example with all three add-ons: 200 homes for sale across Norway with the ad page, as measured on this Actor (run PDd5vYIo5FPG0rjpV, 2026-10-23): 183 carried billed price statistics, 142 a sales history and 197 an area profile, in 5 Results pages: $0.0049 + 200 homes ($0.208) + 522 add-on events ($0.522) + 5 Results pages ($0.0025) = $0.7374 on the Gold plan, $1.0292 on the Free plan. In the hour FINN's area profile service failed (run j2PajCMH9CGwz9No3) the same input carried no area profile, free. If every one of the 200 carried all three, the Gold plan total would be $0.8154.
Measured on this Actor (matrix er8 and er9, 2026-10-23, Norway's working day): the prefilled 20 homes with their ad pages in about 75 seconds (earlier prefilled runs the same day took from about 30 seconds to about 4 minutes); 1,000 homes for sale without the ad page in about 42 seconds; 300 homes with the ad page in about 6 minutes; 200 homes with the ad page and all three add-ons in about 14 minutes; 20 homes in Bergen with all three add-ons in about 97 seconds.
Input
The Actor has 76 settings; every one is in the Input tab with its own help text. The main ones:
| Setting | What it does |
|---|---|
propertyTypes | The sections, each its own search: homes (the default), lettings, newbuildings, leisuresale, abroad, plots, leisureplots, businessrent, businesssale, businessplots, companyforsale, wanted. |
keywords | Search words, each its own search (sjøutsikt, garasje, peis). FINN matches them in the ad texts. |
agencyIds | FINN agency ids, each a search of every ad of that office (FINN's own agency filter, which can also return a few ads of a sister office of the same chain; each row's companyId names its own office); negative for a whole chain. The id is a row's companyId with the ad page, and the number in the agency's logo address (companyLogo). |
listingStatuses | forSale, soldLast3Days (FINN keeps sold ads up for 3 days, with the sale time), comingForSale. |
searchUrls | FINN eiendom search links, read with all their filters (a travel time area or a drawn map area included). |
adUrls | Ad links or FINN codes (up to 5,000, new build units included), each read with its full ad page. A removed or unknown ad is a free status row. |
locations | Counties, municipalities or districts by FINN's Norwegian name (Oslo, Bergen, Trøndelag, Grünerløkka, Utlandet) or value. Several places are one search. |
latitude, longitude, radiusKm | FINN's own map radius around a point in Norway (1 to 500 km). |
polygon, boundingBox | A drawn area (3 to 100 points) or a rectangle, sent as FINN's own map area filters. |
minPrice, maxPrice, minTotalPrice, maxTotalPrice | Asking price (on rentals the rent a month) and total price in kroner, sent to FINN. |
minPricePerSqm, maxPricePerSqm | The asking price per m² window, checked on every row (pricePerSqm); a row whose price per m² cannot be worked out is left out, free. |
minArea, maxArea, minPlotArea, maxPlotArea, minBedrooms | Usable area, plot and bedrooms (1 to 5, FINN's "N+"). |
propertyKinds, ownershipTypes, facilities, energyLabels | FINN's names: Leilighet, Enebolig, Rekkehus, Hytte ...; Selveier, Andel, Aksje, Obligasjon; Balkong/Terrasse, Heis, Garasje/P-plass ...; A to G. |
minConstructionYear, maxConstructionYear, floors, newBuildOnly, usedHomesOnly, sellerType | Building year, floor (Ikke 1. etasje and the others), new or resale homes, private sellers or agencies only (sellerType is sent as FINN's own private seller filter where the section has one; a section without it refuses that search free, with a status row that says so). |
viewingDates, digitalViewings, postedToday | A viewing on given days, a video or 360 degree viewing, FINN's "Nye i dag". |
furnishing, petsAllowed, rentalStartMonths, refugeesWelcome | Rentals: furnished or not, pets allowed, the month it is free from, FINN hjerterom. |
leisureSituations, plotOwnedOnly, occupants, companyCategories | Holiday homes and homes abroad (mountains, sea, inland; owned plot), wanted ads (occupants), companies for sale (category). |
attributeFilters | Any other filter of the section's own FINN filter list, by FINN's name or label: {"plot_area": {"min": 1000}}. |
postedAfter, postedWithinHours, includeKeywords, requireAllKeywords, excludeKeywords, titleOnly, excludeAdIds | Filters checked on every row; an ad left out is free. |
maxItems, maxItemsPerSearch, maxPagesPerSearch, maxRowsPerSearch | Paid rows per run (default 100), per search, pages per search (50 ads a page), rows read per search, the rows left out by a filter included (no limit by default). |
includeDetails | The ad page (on in the prefill, off by default through the API), included in the Home price. |
includePriceStatistics, includeSalesHistory, includeAreaProfile | The three add-ons (above). |
includePersonalData | The personal data switch (below). |
priceSummary, includeRawData, descriptionFormat, descriptionMaxLength, outputFields, compactOutput, excludeEmptyFields, extractContacts, phoneExtractionMode | The price summary per search (on by default); FINN's search row; description asServed, text or markdown and a length cut; your own field list or core fields only; empty fields left out; e-mails, phones, websites and social profiles found in the texts. |
failIfIncomplete, maxFailedRequestsPercent, proxyConfiguration, requestsPerSecond, maxConcurrency, maxRequestRetries | Fail the run when a search is incomplete or too many reads failed; your own proxy links; the pace (0.2 to 2 requests a second, default 1), requests in flight (1 to 4, default 4), retries (0 to 5, default 2). |
A run reads at most 300 searches. A setting that belongs to another FINN part (cars, Torget, jobs) is refused with a free row, a
monitor or alert setting (monitorName, trackChanges, a Telegram, Slack, Discord, WhatsApp or webhook setting) refuses the run
with a free row that says this Actor keeps no monitor, and an empty input is refused with a free row (only the run's start fee is
charged).
Example inputs
Rentals in Oslo that allow pets, furnished, with the ad page:
{ "propertyTypes": ["lettings"], "locations": ["Oslo"], "petsAllowed": true, "furnishing": ["furnished"], "includeDetails": true, "maxItems": 100 }
Resale flats in Bergen between 60,000 and 90,000 kroner per m², with price statistics and the sales history:
{ "locations": ["Bergen"], "propertyKinds": ["Leilighet"], "usedHomesOnly": true, "minPricePerSqm": 60000, "maxPricePerSqm": 90000,"includeDetails": true, "includePriceStatistics": true, "includeSalesHistory": true, "maxItems": 200 }
Homes sold in the last 3 days in Oslo, with FINN's price per m² and the area's sales from the sold ad's page:
{ "listingStatuses": ["soldLast3Days"], "locations": ["Oslo"], "includeDetails": true, "maxItems": 50 }
Holiday homes by the sea on an owned plot, with the area profile:
{ "propertyTypes": ["leisuresale"], "leisureSituations": ["seaside"], "plotOwnedOnly": true, "includeAreaProfile": true, "maxItems": 100 }
Every filter is checked
Every named filter is resolved against the section's own FINN filter list. A value the list does not offer (a place, a property
type, an energy label) is a free row that lists the values it does offer, and the search delivers nothing: an unknown value never
widens a search. Every page FINN answers must echo back exactly the filters sent; a filter FINN dropped in silence makes that page a
free search_not_applied row and the search delivers nothing more.
Past FINN's 2,500 ad cap
FINN serves at most 50 pages of one search, 2,500 ads at 50 a page, while homes for sale alone counted 26,684 ads (40,239 units,
a new build project counting each of its units) on 2026-10-23. When FINN counts more ads than that and you want more, the search is split into slices by FINN's own place counts
(county, municipality, district), then into price bands. An ad met in an earlier slice is skipped free. The coverage row says how
many slices were read and how many ads stayed beyond reach (adsBeyondReach), and a search is complete only when its slices met
about every ad FINN counted. Measured on the private test copy of this Actor: every home for sale in Norway, 26,684 of FINN's
26,684 ads in 22 slices and 549 pages, in 954 seconds and USD 0.15 of platform usage (run 2pctggG4TA10Raetc, 2026-10-23).
The same sweep on this Actor itself: 26,684 of 26,684 in 22 slices and 549 pages, in 1,482 seconds and USD 0.16 of platform
usage (run EvsRDjzh6la2eMVk8, 2026-10-23). On the final build 0.1.7: 26,754 ads against FINN's count of 26,749 (FINN's count moves while a sweep reads), in 22 slices and
549 pages, with 0 ads beyond reach and the search complete, in 1,074 seconds and USD 0.15 of platform usage (run
FeLCT0to7SpvYCoI0, 2026-10-23); at the Gold price that is 26,754 homes ($27.82) and 545 Results pages ($0.27) plus the start fee.
Personal data
A private seller is an ad FINN flags as private, or a private owner selling through a service such as Propr.no (FINN's
thirdPartyAdvertiser; privateSaleService names the service). With Include personal data off (the default), these fields
are null: the agency's brokers and contact persons (brokers,
contacts: names, titles, phones and e-mails), a private seller's or landlord's FINN id (sellerId), street (streetAddress; the
place shown is then the local area, which a private seller may have written as the street name; one that holds a house number is withheld too), land register numbers (cadastre), map image (mapImageUrl), the sales history and the area
profile of a private seller's or landlord's home (status personalData, free), the contacts found in the texts of private ads (Extract contacts from texts)
and the raw search row of a private ad. A private seller's map point is rounded to 2 decimals (about 1 km) when FINN gives it to
the address. Turning the switch on adds all of these and the exact map point. The agency's name, FINN id, website, logo and its search of
ads (agencyAdsUrl) are business data and always delivered; FINN shows no agency phone or organisation number on its real
estate pages. Titles, descriptions, viewing notes (viewings, viewingDetails) and the pre-emption text are delivered
exactly as FINN serves them, so an ad's own text can name a person (a broker, a cooperative's board chair) or give a phone number
or e-mail. You are responsible for a lawful use of personal data, GDPR included.
What this Actor does NOT do
- No monitor and no alerts. It keeps no memory between runs: no "new only" rows, no price change, sold or removal tracking
against an earlier run, and no Telegram, Slack, Discord, WhatsApp or webhook messages. Schedule it in Apify, use Posted within
(hours) or New today for the newest ads, and compare the rows (
adId,price,status) in your own sheet, n8n or Make flow. A monitor or alert setting refuses the run with a free row. - No sort order. FINN's robots.txt asks robots not to send its sort parameter, so searches are read in FINN's default order, newest first (the coverage row names it). A pasted link's sort is dropped with a warning. The price per m² window and the price summary per search answer price questions without it.
- No map tiles. FINN's robots.txt closes its map pages to robots; the drawn area (
polygon) and the box (boundingBox) give a map area on the search itself. - No login and no FINN app gateway. No FINN account, saved searches or signed app routes; only the pages FINN shows logged out.
- No Torget, cars or jobs. Only FINN eiendom; FINN's Torget products (Nybrukt included), cars and jobs are other FINN parts and their settings are refused with a free row.
- No neighbourhood address list. FINN's ad page carries an empty list of nearby addresses (0 of 24 active home pages read on 2026-10-23), so there is no such field.
- No sold price and no price history from FINN. FINN never shows what a home sold for and keeps no history of an ad's asking price; keep each run's rows to build your own.
- No sales history beyond the register. The sales history is the registered past sales from Norkart's land register data as FINN shows it; share flats (aksjeleiligheter) are not in the register.
- No phone reveal. FINN has no reveal call; brokers' phones and e-mails come from the ad page, with Include personal data.
- No expired homes as rows. An ad FINN no longer shows, or shows as expired or no longer active, is a free status row.
- No unpaid crawling. A run stops with a status row when its unpaid work (pages whose ads were all filtered out or already delivered, missing ads, the reads that check a search's filters) passes a small budget (USD 0.0004, plus the run's slowest read so one slow FINN answer never stops a run on its own, plus a share of every billed event): narrow the search or loosen the filters checked on each row. A list of ad links whose first links are gone stops the same way before any home is delivered (measured on this Actor: 40 gone links before 10 live ones stopped after 30 reads): put live links first, or read old links in a run of their own. The ads and links not reached are free and counted in the summary.
API and integrations
Run it and get the rows in one call (replace YOUR_TOKEN):
curl -X POST "https://api.apify.com/v2/acts/automation_craft~finn-eiendom-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"propertyTypes": ["homes"], "locations": ["Oslo"], "includeDetails": true, "maxItems": 100}'
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('automation_craft/finn-eiendom-scraper').call({ propertyTypes: ['lettings'], locations: ['Bergen'], includeDetails: true, maxItems: 50 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((x) => x.type === 'listing'));
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation_craft/finn-eiendom-scraper").call(run_input={"locations": ["Trondheim"], "includeDetails": True, "includeSalesHistory": True, "maxItems": 100})homes = [x for x in client.dataset(run["defaultDatasetId"]).iterate_items() if x["type"] == "listing"]
AI agents can run it as a tool through Apify's MCP server (https://mcp.apify.com, tool automation_craft/finn-eiendom-scraper);
set compactOutput or outputFields and keep maxItems small. The Actor also runs from n8n, Make and Zapier through their Apify
integrations, and on a schedule in the Apify Console.
FAQ
How do I scrape FINN eiendom listings?
Pick the sections and places, add FINN's filters or paste a FINN eiendom search link, set Maximum rows and start the run: no code, no login and no proxy setup. Each home comes as one row with its price, total price, shared costs, area, bedrooms, agency and price per m², and with Include the ad page its full property record, as JSON, CSV or Excel or through the Apify API.
Is there a FINN eiendom API?
FINN's own API is open only to businesses with an agreement with FINN. This Actor works as one for public FINN eiendom ads: call it
through the Apify API with sections, places, filters, agency ids, search links or FINN codes and read the rows back as JSON, in one
call with run-sync-get-dataset-items.
Can I see what a home sold for on FINN?
FINN never shows a sold price. A sold ad stays on FINN for 3 days with its sale time; with Sale status set to soldLast3Days
and the ad page on, the row carries the sale time, FINN's price per m² of the ad and the last year's sales in its area by price per
m². With Add the sales history, a resale home or holiday home also gets its earlier registered sales (date and price) as FINN
shows them from Norkart.
How do I get the newest homes on FINN every day?
Schedule the run in the Apify Console (daily or more often) with Posted within (hours) set to 24, or New today on:
each run delivers the homes FINN published in that window, each billed as a Home. This Actor keeps no memory between runs and sends
no alerts, so a home still in the window is delivered again; keep the FINN codes (adId) you have seen in your own sheet, or let an
n8n, Make or Zapier flow drop them and send the rest wherever you want.
Why does this Actor run with limited permissions?
It needs nothing more: it writes only to its own run's dataset and key-value store. Limited permissions keep your other Apify data out of its reach.
Changelog
- 0.1 (2026-10-23): first release: FINN eiendom ads in all 12 sections by place, FINN's real estate filters, agency, drawn map area, search link or FINN code; the ad page in the Home price; price per m², days on market, project units and sold ad facts; the price statistics, sales history and area profile add-ons; searches split past FINN's 2,500 ad cap with a free coverage row; brokers and private sellers' data behind the personal data switch. Full history in the Changelog tab.
More data tools by Automation Craft
- FINN.no Scraper: Torget, Cars, Homes and Jobs
- FINN Jobs Scraper: Norway Job Ads, Employers
- SeLoger Scraper: Listings, Prices and Agencies
- Bien'ici Scraper: France Real Estate Ads & DPE
- Immowelt Scraper: Rents, Prices and Energy Data
- PAP Scraper: pap.fr Real Estate Ads & Phones
- willhaben Scraper: Immobilien, Cars, Jobs & Ads