FINN.no Scraper: Torget, Cars, Homes and Jobs avatar

FINN.no Scraper: Torget, Cars, Homes and Jobs

Pricing

from $1.04 / 1,000 listings

Go to Apify Store
FINN.no Scraper: Torget, Cars, Homes and Jobs

FINN.no Scraper: Torget, Cars, Homes and Jobs

Norway's FINN.no in one Actor: Torget, cars, MC and boats, homes and rentals, jobs, by keyword, place, FINN filters or links, no login, read past the 50 page cap. Rows carry price, totalpris, felleskostnader, bedrooms, make, mileage, employer, deadline. Monitor alerts, pay per row, Excel, API.

Pricing

from $1.04 / 1,000 listings

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

FINN.no Scraper: Torget, Cars, Homes and Jobs

FINN.no scraper for Norway's largest marketplace: search all four parts of FINN.no in one run, Torget (the general marketplace), cars and other vehicles (17 FINN motor searches: cars, MC, boats, caravans, motorhomes, trucks, tractors and more), real estate (12 FINN eiendom sections: homes for sale, homes to rent, new builds, holiday homes, plots, commercial property, companies for sale) and jobs, by keyword, by place, by FINN's own filters, by a pasted FINN search link or by ad link and FINN code. Each ad is one row with its price, place, map point, published time, photos and the vertical's own facts (make, model, year, mileage, fuel; total price, shared costs, area, bedrooms; employer, deadline, apply link). Turn on the ad page, at no extra charge, for the full description, every key fact, car equipment and EU control dates, property costs, energy label and viewings. A search FINN caps at 50 pages is split by FINN's own facets so the run reads past the cap, and a free coverage row says what FINN counts and what was read. No login, no cookies. A monitor delivers only ads it never delivered before, with price changes and removed ads if you like, and can send them to Telegram, Slack, Discord, WhatsApp or your own webhook.

Who uses it: car dealers and buyers watching new Tesla, Volvo or Toyota ads, flat hunters and property investors following new homes and rentals in Oslo, Bergen or Trondheim, resellers watching Torget bargains, recruiters and analysts reading Norwegian job ads, and teams feeding FINN data into their own sheets, apps or AI agents.

Quick start

  1. Open the Input tab and pick the Verticals: torget, vehicles, realestate, jobs (several at once if you like).
  2. Narrow them: Vehicle types (car, mc, boat ...), Real estate sections (homes, lettings ...), Job searches, Torget categories (Sofaer, Møbler og interiør), Keywords (sofa, tesla model y, sykepleier) and Places (Oslo, Bergen, Trøndelag, Grünerløkka).
  3. Or paste FINN links: search pages into Search links, ad links or FINN codes into Ad links or FINN codes.
  4. Add filters (price, seller type, make, model, year, mileage, bedrooms, total price, occupation, extent ...), 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 used cars in Oslo: measured, 4 seconds and 2 requests (run dWfBgSx71Jdc1SNUH on the test build of 2026-10-22). To receive new ads only, give the run a Monitor name and schedule it (daily or more often).

What you get

One row per ad (type: "listing", with vertical set to torget, vehicles, realestate or jobs), one coverage row per search (type: "search"), free status rows for anything that could not be delivered (type: "status"), a run summary (type: "summary"), and in a monitor with Track changes a row per ad that left FINN (type: "removed").

Every fill figure below is measured, and each one appears only in these four tables. They were counted on real FINN answers saved during the build spike of 2026-10-21 and 2026-10-22: search rows de-duplicated by ad id, and real ad pages read by this Actor's own ad page parser. "Search row" means the row without the ad page; "ad page" means the row with Include the ad page on (or from an ad link). A field FINN does not show for an ad is null.

On every row

FieldWhat it is
adId, url, title, vertical, kindthe FINN code, the ad's link, its title, the vertical and the FINN search it came from (car, homes, all ...; null on an ad link row)
price, currencythe price in kroner (NOK; jobs have none)
status, soldAtactive or sold, and when FINN gives it, the time it was sold
publishedAt, firstPublishedAt, editedAtFINN's latest publication (the time of the search row: a renewed ad is new again; on an ad link row the ad page's date), the first publication from the ad page, the last change (ad page)
location, streetAddress, postalCode, postalNamethe place as FINN shows it, and from the ad page the street and post code
latitude, longitude, coordinateAccuracythe map point and FINN's accuracy code
imageUrl, imageUrls, imageCountphoto links (never downloaded)
sellerType, sellerIdprivate or business; the seller's FINN id
companyName, companyId, companyOrgNumber, companyPhone, companyEmail, companyWebsite, companyAddress, companyLogoa business seller's (dealer, shop, agency, employer) data, always delivered
labels, description, descriptionText, attributes, contentHashFINN's labels, the description of the ad page as served and as text, every key fact as label and value, a short hash of the description
searchKey, searchLabel, source, position, detailsIncludedwhich search delivered the row, search or link, its place in the search, whether the ad page was read
monitorName, deliveryId, runId, scrapedAt, change, possibleRepostOfmonitor and run facts; change in monitor runs with Track changes

With Extract contacts from texts: emails, phoneNumbers, websites, socialProfiles. With Include raw search row: raw.

Torget

Measured on 1,054 Torget search rows and 50 Torget ad pages.

FieldWhat it isFilled (measured)
priceasking price in kroner (0 for a give away)1,054 of 1,054 search rows (1,003 above 0)
tradeTypeTil salgs, Gis bort, Ønskes kjøpt1,054 of 1,054 search rows
location, latitude, longitude, publishedAtplace, map point, published time1,054 of 1,054 search rows
imageUrlsphoto links1,052 of 1,054 search rows; 50 of 50 ad pages
companyNamethe shop or business seller197 of 1,054 search rows (every business row)
brandthe brand FINN shows (IKEA, Apple)261 of 1,054 search rows; 13 of 50 ad pages
shippingAvailable, buyNow, sellerPaysShippingFiks ferdig shipping and buy now50 of 50 ad pages
description, categoryPath, categoryfull description, FINN's category tree50 of 50 ad pages
conditionSom ny - Ikke synlig brukt and the other FINN conditions30 of 50 ad pages
attributesthe ad page's key facts31 of 50 ad pages
postalCode, postalNamepost code and town50 of 50 ad pages
companyPhone, companyAddress, companyOrgNumberthe shop card3 of the 3 business ad pages among the 50

Cars and other vehicles

Measured on 1,165 car search rows (584 dealer and 581 private) and 286 vehicle ad pages (cars, motorcycles, boats and other kinds).

FieldWhat it isFilled (measured)
make, model, year, mileage, fuel, price, dealerSegmentthe car's basics and Privat, Forhandler or Merkeforhandler1,165 of 1,165 search rows
transmissionAutomat or Manuell1,163 of 1,165 search rows
series, modelSpecification, registrationClass, drivingRangeKm, warrantyMonths, serviceDocumentsmore search row factswhen FINN shows them
companyNamethe dealer584 of 584 dealer search rows
vin, platechassis number and registration platedealer search rows: VIN 581 of 584, plate 459 of 584; private sellers only with Include personal data
sellerKnowledge, knownDamages, damagesDetails, majorRepairsthe seller's own answers on a private car ("Selgers kjennskap til bilen": damages, repairs, tuning), as servedsellerKnowledge 80, knownDamages 64, damagesDetails 33, majorRepairs 61 of 286 ad pages
vehicleRegisterUrlthe Statens vegvesen lookup the ad page links to (it carries the plate)192 of 286 ad pages; private sellers only with Include personal data
descriptionthe full description278 of 286 ad pages
colour, powerHp, seats, doors, bodyType, wheelDrive, engineVolume, weightthe specificationcolour 235, power 210, seats 181, body type 155, wheel drive 164, weight 240 of 286 ad pages
firstRegistration, owners, nextEuControl, lastEuControlregistration and EU control (EU-kontroll)163, 118, 99 and 26 of 286 ad pages
priceExclRegistration, registrationFee, priceTotalprice without and with the registration fee231, 221 and 160 of 286 ad pages
equipmentthe equipment list155 of 286 ad pages
warranty, conditionReport, condition, salesFormwarranty, condition report, condition, sales form80, 20, 64 and 158 of 286 ad pages
batteryCapacity, co2electric and emission facts39 and 86 of 286 ad pages
dealer, companyPhone, companyEmail, companyWebsite, companyAddressthe dealer carddealer card 142 of 286 ad pages (the dealer ads); phone 108, e-mail 122, website 108, address 141
boatClass, lengthFeet, widthCm, motorType, motorSize, maxSpeedKnots, hoursUsedboat and machine facts of the search rowboat and machine searches

Real estate

Measured on 4,547 real estate search rows over all 12 sections (1,817 homes for sale, 1,000 homes to rent) and 269 real estate ad pages.

FieldWhat it isFilled (measured)
price, priceSuggestion, priceTotalasking price (prisantydning) and total price (totalpris)4,547 of 4,547 search rows; 188 and 187 of 269 ad pages
sharedCostshared costs a month (felleskostnader)4,344 of 4,547 search rows; 92 of 269 ad pages
area, bedrooms, propertyTypearea (with its kind, such as p-rom), bedrooms, property type (Leilighet, Enebolig)4,544, 4,543 and 4,474 of 4,547 search rows
ownershipTypeSelveier, Andel, Aksje2,745 of 4,547 search rows (1,817 of 1,817 homes for sale)
agencyNamethe agency3,433 of 4,547 search rows; 228 of 269 ad pages
viewingsviewing times (visning)1,968 of 4,547 search rows of the research sample (1,691 of 1,817 homes for sale), 1,141 of 3,586 homes of one real run (Oslo and Hurdal, many without a viewing set yet); 207 of 269 ad pages
latitude, longitude, imageUrlsmap point and photos4,547 and 4,510 of 4,547 search rows
localArea, priceRange, priceTotalRange, bedroomsRange, isProject, comingForSale, furnishedsearch row facts of projects and rentalswhen FINN shows them
descriptionthe full description269 of 269 ad pages
usableArea, primaryRoomArea, grossArea, plotAreaareas in m2203, 52, 8 and 185 of 269 ad pages
rooms, floor, constructionYear, energyLabelrooms, floor, year built, energy label135, 162, 189 and 170 of 269 ad pages
collectiveDebt, collectiveAssets, municipalFees, propertyTaxfellesgjeld, fellesformue, kommunale avgifter, eiendomsskatt48, 52, 109 and 54 of 269 ad pages
monthlyRent, depositrent a month and deposit of a rental56 and 28 of 269 ad pages
facilities, cadastre, projectUnitsfacilities, the cadastre numbers (a private seller's only with Include personal data), the units of a new build project230, 214 and 14 of 269 ad pages
clicksthe ad's click count where the ad page shows one6 of 269 ad pages
prospectusUrl, floorPlanUrls, documents, bidUrlthe sales prospectus, floor plan images, attached documents, the electronic bidding link172, 171, 15 and 174 of 269 ad pages
mapImageUrlFINN's map image of the ad's point266 of 269 ad pages; a private seller's only with Include personal data
brokersthe agency's brokers228 of 269 ad pages, only with Include personal data

Jobs

Every job row carries its ad page (billed as one Job). Measured on 137 job ad pages (582 job search rows for the search fields).

FieldWhat it isFilled (measured)
jobTitle, heading, occupationTitlethe job title, the ad's heading, FINN's structured title135, 137 and 107 of 137
employerName, companyOrgNumber, companyAddress, companyWebsite, companyLogothe employer137, 136, 132, 125 and 126 of 137
employerDescriptionthe employer's own textwhen the ad has one
description, descriptionText, finnSummarythe job text and FINN's own summary137 of 137
positions, duration, sector, occupationspositions, Fast or temporary, sector, occupation fields137 of 137
jobType, industriesjob type and industries126 of 137
deadline, deadlineTextapplication deadline (søknadsfrist)97 and 91 of 137 ad pages; 471 of 582 search rows
applyUrl, easyApply, jobLabelsthe apply link and the "Enkel søknad" labelapply link 131 of 137
skills, skillsDetail, keywordsskills and keywords121, 121 and 102 of 137
workLanguage, remoteworking language and home office80 and 58 of 137
extent, leadershipCategory, startDatefull or part time, manager level, startfew ads state them: extent 11 and manager level 15 of 137 saved ad pages; extent and start 0 of 200 jobs of one real run
salary, salaryType, salaryExtrathe salary as FINN shows it4 of 137 (few FINN job ads give one)
municipality, county, latitude, longitude, workLocationswhere the job is132 of 137
jobSourceFINN for FINN's own job ads, NAV for the NAV ads FINN shows beside themevery row
videoUrl, sourceUrl, externalAdIdvideo, the original ad, the employer's own ad id20, 11 and 88 of 137
contactscontact persons (name, title, phone, mobile, e-mail)136 of 137, only with Include personal data

Example rows

A car from the prefilled run (shortened; a private seller, personal data off, run dWfBgSx71Jdc1SNUH):

{
"type": "listing", "vertical": "vehicles", "kind": "car", "adId": "479278405",
"url": "https://www.finn.no/mobility/item/479278405", "title": "Volkswagen Golf IV",
"price": 56942, "currency": "NOK", "status": "active", "publishedAt": "2026-10-21T23:22:22.000Z",
"location": "Oslo", "latitude": 59.87, "longitude": 10.81991, "coordinateAccuracy": 5, "imageCount": 30,
"sellerType": "private", "sellerId": null, "companyName": null,
"make": "Volkswagen", "series": "Golf-Serie", "model": "Golf IV", "year": 2002, "mileage": 142200,
"fuel": "Bensin", "transmission": "Automat", "registrationClass": "Personbil", "dealerSegment": "Privat",
"plate": null, "vin": null, "source": "search", "position": 2, "detailsIncluded": false
}

A Torget ad with its ad page (shortened, run 5akUXSLAGaJ0QJxvm):

{
"type": "listing", "vertical": "torget", "kind": "all", "adId": "479261704",
"url": "https://www.finn.no/recommerce/forsale/item/479261704", "title": "Sofaer gis bort",
"price": 0, "currency": "NOK", "publishedAt": "2026-10-21T23:09:47.000Z", "location": "Hønefoss",
"postalCode": "3513", "postalName": "Hønefoss", "imageCount": 4, "sellerType": "private", "sellerId": null,
"attributes": [{ "label": "Tilstand", "value": "Godt brukt - Synlig brukt" }],
"categoryPath": [{ "id": "78", "name": "Møbler og interiør" }, { "id": "7756", "name": "Sofaer og lenestoler" }, { "id": "8374", "name": "Sofaer" }],
"category": "Sofaer", "condition": "Godt brukt - Synlig brukt", "tradeType": "Gis bort",
"shippingAvailable": false, "detailsIncluded": true
}

A home for sale with its ad page (shortened; an agency's ad, from the local end to end test of 2026-10-21):

{
"type": "listing", "vertical": "realestate", "kind": "homes", "adId": "459347131",
"url": "https://www.finn.no/realestate/homes/ad.html?finnkode=459347131",
"price": 3100000, "priceSuggestion": 3100000, "priceTotal": 3178590, "sharedCost": 3000,
"location": "Eidsveien 480E, Blaker", "streetAddress": "Eidsveien 480E", "postalCode": "1925", "postalName": "Blaker",
"sellerType": "business", "companyName": "EiendomsMegler 1 Lillestrøm", "agencyName": "EiendomsMegler 1 Lillestrøm",
"propertyType": "Leilighet", "ownershipType": "Selveier",
"area": { "from": 89, "to": 89, "unit": "m²", "kind": "size" }, "usableArea": 102, "plotArea": 1284,
"bedrooms": 2, "rooms": 3, "floor": 2, "constructionYear": 1960, "energyLabel": "F", "brokers": null,
"detailsIncluded": true
}

A job (shortened, from the same local test):

{
"type": "listing", "vertical": "jobs", "adId": "479273514", "url": "https://www.finn.no/job/ad/479273514",
"jobTitle": "Boutique Manager - butikksjef i 100% fast stilling", "employerName": "L'Occitane Norge AS",
"companyOrgNumber": "912473902", "companyAddress": "Brodtkorbsgate 7, 1338 Sandvika",
"municipality": "Bærum", "county": "Akershus", "positions": 1, "deadline": "2026-11-12", "duration": "Fast",
"sector": "Privat", "industries": ["Butikk og varehandel", "Velvære"], "occupations": ["Butikksjef"],
"workLanguage": ["Norsk", "Engelsk"], "salary": null, "applyUrl": "https://www.finn.no/job-apply/479273514/job/apply",
"jobSource": "FINN", "contacts": null, "source": "search", "detailsIncluded": true
}

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 for it (adsOnFinn), the slices, pages and rows read, the ads met and delivered, how many were left out and by which filter (filteredOutBy), how many a monitor already knew (knownToMonitor), 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 price of the ads met. From the prefilled run (dWfBgSx71Jdc1SNUH):

{ "type": "search", "vertical": "vehicles", "kind": "car", "searchLabel": "in Used cars (vans, new, leasing and auctions by filter)",
"filtersSent": ["location=0.20061"], "adsOnFinn": 4298, "slicesRead": 0, "pagesRead": 1, "rowsRead": 50, "distinctAdsMet": 50,
"adsBeyondReach": 0, "adsDelivered": 20, "filteredOut": 0, "filteredOutBy": {},
"priceSummary": { "count": 50, "withoutPrice": 0, "currency": "NOK", "min": 16942, "p25": 74532, "median": 319900, "p75": 419900, "max": 2399900, "mean": 349059.16 },
"complete": false, "stoppedBy": "maxItems" }

How much does it cost to scrape FINN.no?

You pay per event, with Apify's store discounts by plan. Each vertical has its own row event, and the ad page is included in the row price: with Include the ad page on, on every ad link row and on every job row, it costs nothing extra.

EventFree planBronzeSilverGold
Listing (one Torget ad row)$1.45 per 1,000$1.33 per 1,000$1.20 per 1,000$1.04 per 1,000
Vehicle (one car, MC, boat or other vehicle row)$1.45 per 1,000$1.33 per 1,000$1.20 per 1,000$1.04 per 1,000
Home (one real estate row, any section)$1.45 per 1,000$1.33 per 1,000$1.20 per 1,000$1.04 per 1,000
Job (one job row, its ad page included)$0.94 per 1,000$0.94 per 1,000$0.94 per 1,000$0.90 per 1,000
Results page (monitor runs only, one search page read)$0.70 per 1,000$0.64 per 1,000$0.58 per 1,000$0.50 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 prices per 1,000 events: "$1.45 / 1,000" on the Listing row means one Torget ad row costs $0.00145, about a seventh of a cent.

  • Listing, Vehicle, Home and Job are charged once per ad delivered as a row, from a search or a link, with or without its ad page. In a monitor with Track changes they are also charged per row delivered again because the ad changed or came back, and per removed row; with Deliver unchanged ads too, per unchanged row.
  • Results page is charged only in a monitor run (Monitor name set): one per search page read, whatever it held, so a monitor pays for checking even on a day with nothing new. A read that failed or that FINN did not apply is free. Runs without a monitor never pay it.
  • Never billed: the ad page, repeats in the run, rows left out by a filter, NAV job ads left out, ads a monitor already delivered, a missing or removed ad, a refused setting, a search that finds nothing, coverage rows, status rows, the summary and every notification.
  • The Actor start ($0.0049) is charged once per run, also when the run 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 on the Bronze plan: 1,000 Torget rows cost $0.0049 (start) + 1,000 listings ($1.33) = $1.3349. The Free plan pays $1.4549, the Silver plan $1.2049, the Gold plan $1.0449.
  • Example with the ad page on the Gold plan: 1,000 cars with equipment, EU control and the dealer card cost $0.0049 + 1,000 vehicles ($1.04) = $1.0449, the same as without the ad page. On the Free plan $0.0049 + $1.45 = $1.4549.
  • Example of 1,000 jobs: $0.0049 + 1,000 jobs ($0.94) = $0.9449 on the Free, Bronze and Silver plans; $0.9049 on the Gold plan.
  • Example of a daily monitor of homes for sale in one place on the Gold plan, with the default window of 100 rows (2 pages of 50) and 10 new homes: start ($0.0049) + 2 results pages ($0.001) + 10 homes ($0.0104) = $0.0163. A day with nothing new: $0.0059.
  • Example of a monitor of 50 saved Torget searches (one page each with the default window) on the Gold plan, on a day with nothing new: $0.0049 + 50 results pages ($0.025) = $0.0299.
  • The prefilled run of 20 cars costs $0.0049 + 20 vehicles ($0.029) = $0.0339 on the Free plan (measured event counts: run dWfBgSx71Jdc1SNUH charged 1 start and 20 Vehicle events).

Input

SettingWhat it does
verticalstorget, vehicles, realestate, jobs: each searched on its own, once per keyword. Left empty, the vertical comes from the vertical settings you give, else Torget.
keywordsSearch words, each its own search (up to 300, 100 characters each). Left empty, the vertical is searched without words in FINN's default order (newest first on vehicles and real estate, relevance on Torget and jobs).
torgetCategoriesTorget categories by FINN's Norwegian name or value (Møbler og interiør, Sofaer, 0.78), each its own search.
vehicleTypes17 FINN motor searches: car, mc, scooter, atv, snowmobile, boat, boatEngine, boatDock, caravan, mobileHome, truck, bus, construction, tractor, agriTools, threshers, b2bAll. Left empty: used cars.
propertyTypes12 FINN eiendom sections: homes, lettings, newbuildings, leisuresale, abroad, plots, leisureplots, businessrent, businesssale, businessplots, companyforsale, wanted. Left empty: homes for sale.
jobTypesall (the default), parttime, management, nav (the NAV job ads FINN shows beside its own).
locationsCounties, municipalities or districts by FINN's Norwegian name (Oslo, Bergen, Trøndelag, Grünerløkka) or value, in every vertical. Several places are one search.
latitude, longitude, radiusKmFINN's own map radius around a point in Norway (1 to 500 km), every vertical.
minPrice, maxPrice, sellerType, postedTodayPrice in kroner (for rentals the rent), private or business sellers (Torget, vehicles, real estate), FINN's "Nye i dag".
conditions, tradeTypes, brands, shippingOnlyTorget: condition, for sale, give away or wanted, brand, Fiks ferdig only.
makes, models, minYear, maxYear, minMileage, maxMileage, minPowerHp, maxPowerHp, minSeats, maxSeats, fuelTypes, transmissions, bodyTypes, wheelDrives, colours, salesForms, vansOnlyVehicle filters by FINN's names (Tesla, Model Y, El, Automat, SUV/Offroad, Firehjulsdrift, Leasing). A model series answers to its name without FINN's "-Serie" suffix: Golf finds Golf-Serie.
propertyKinds, minBedrooms, minArea, maxArea, minTotalPrice, maxTotalPrice, minPlotArea, maxPlotArea, ownershipTypes, facilities, newBuildOnlyReal estate filters (Leilighet, Enebolig, Selveier, Balkong/Terrasse ...).
occupations or industries, extents, sectors, remoteOptions, includeNavAdsJob filters (IT utvikling, Helse og omsorg, Heltid, Offentlig, Delvis hjemmekontor); occupations and industries never together. NAV ads are left out free unless includeNavAds is on; job rows say jobSource FINN or NAV.
attributeFiltersAny other filter of the search's own FINN filter list by its name or label: {"energy_label": ["A", "B"], "construction_year": {"min": 2015}, "job_duration": ["Fast"]}.
postedAfter, postedWithinHoursA date (YYYY-MM-DD, Norway time) or a number of hours, checked on every row.
includeKeywords, requireAllKeywords, excludeKeywords, titleOnly, excludeAdIdsWords a row must hold (one or all) or must not hold, in the title only if you like; FINN codes you already have. A row left out is free.
searchUrlsFINN search links of the four verticals, read with all their filters (up to 300).
adUrlsAd links of any vertical or FINN codes (up to 5,000), each read with its ad page. A removed or unknown one is a free status row.
maxItems, maxItemsPerSearch, maxPagesPerSearch, maxRowsPerSearchPaid rows per run (default 100), rows per search, pages per search, rows read per search (a monitor's window, 100 by default).
includeDetails, includePersonalData, includeRawDataThe ad page (included in the row price), the personal data switch, FINN's own search row.
descriptionFormat, descriptionMaxLength, compactOutput, excludeEmptyFields, extractContacts, phoneExtractionMode, priceSummaryDescription asServed, text or markdown; a length cut; core fields only; empty fields left out; e-mails, phones, websites and social profiles found in the texts; the free price summary.
monitorName, resetMonitor, trackChanges, changesToDeliver, emitUnchanged, markReposts, skipRepostsThe monitor (below).
telegramBotToken, telegramChatId, slackWebhookUrl, discordWebhookUrl, whatsappAccessToken, whatsappPhoneNumberId, whatsappTo, webhookUrl, webhookSecret, webhookHeaders, notificationLimit, notifyOnlyChangesFree notifications of the rows a run delivered (below).
failIfIncomplete, maxFailedRequestsPercent, proxyConfiguration, requestsPerSecond, maxConcurrency, maxRequestRetriesFail 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 2), retries (0 to 5, default 2).

A run reads at most 300 searches (verticals times their types times Torget categories times keywords, plus search links). A vertical only setting (a make, a bedroom count, an occupation) given while the run also searches a vertical it does not apply to refuses the run with a free row: a filter is never silently left out of some searches.

One input per vertical

Torget: sofas in Oslo between 500 and 3,000 kroner.

{ "verticals": ["torget"], "keywords": ["sofa"], "locations": ["Oslo"], "minPrice": 500, "maxPrice": 3000, "maxItems": 200 }

Cars: private Tesla Model Y from 2021 with under 80,000 km, with the ad page.

{ "verticals": ["vehicles"], "vehicleTypes": ["car"], "makes": ["Tesla"], "models": ["Model Y"], "minYear": 2021,
"maxMileage": 80000, "sellerType": "private", "includeDetails": true, "maxItems": 100 }

Real estate: flats for sale in Bergen with 2 or more bedrooms, a total price up to 5 million and energy label A or B.

{ "verticals": ["realestate"], "propertyTypes": ["homes"], "locations": ["Bergen"], "propertyKinds": ["Leilighet"],
"minBedrooms": 2, "maxTotalPrice": 5000000, "attributeFilters": { "energy_label": ["A", "B"] }, "maxItems": 100 }

Jobs: full time nursing jobs in Trøndelag.

{ "verticals": ["jobs"], "keywords": ["sykepleier"], "locations": ["Trøndelag"], "extents": ["Heltid"], "maxItems": 100 }

Every filter is checked

Every named setting is resolved against the search's own FINN filter list. A value the list does not offer (a make, a place, a category) 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 50 page cap

FINN serves at most 50 pages of one search: 2,500 ads at 50 a page, 10,000 on Torget at 200 a page. When FINN counts more ads than that and you want more, the search is split into slices by FINN's own facets with their counts: Torget by category, sub category and product category, then place; vehicles by make and model, then place; real estate by county, municipality and district; jobs by place, then extent. A slice still past the cap is split again, and a scope no facet splits is cut into price bands (none on jobs). 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) or sit on a place or category none of its parts holds (adsNoSliceHolds: FINN counts a few ads on a municipality and none of its districts), and a search is complete only when its slices met about every ad FINN counted and no such ad was left.

Ad pages

With Include the ad page on, each delivered row's ad page is read and merged: the full description, every key fact, all images, the seller's or dealer's card, car equipment, EU control dates and the price with fees, property costs, energy label, facilities and viewings. It is included in the row's Listing, Vehicle or Home price at no extra charge; it takes about a second per row at the default pace. Ad links are always delivered with their page, and job rows always carry theirs. An ad that FINN no longer shows, or shows as no longer active or expired, is a free status row.

Monitor: only new ads, with price changes and alerts

Give the run a Monitor name and schedule it. Each run reads the window of every search (Rows read per search, 100 by default), pays a Results page per page it reads, and delivers only the ads this monitor never delivered before; each is delivered and billed once per monitor, and the ones it knows are free. Vehicles and real estate come newest first, so a window of 100 sees every new ad between daily runs of a narrow search; Torget and jobs answer in FINN's relevance order (newest first in every read without words we measured, ranked by match with words), so a new ad can sit deeper in the search: give those a window that holds the whole search (the coverage row's adsOnFinn), and the coverage row sets newAdsMayLieBeyond whenever the window did not. With Track changes, a known ad comes again when its price changed (priceChanged, with the previous price, the first seen price and a price history), its title, photo count, place or status changed (updated) or it came back (reappeared); Changes to deliver narrows it to price changes or price drops. With Include the ad page on, a known ad's page is read again when its search row changed (price, title, place, the photos the search row shows, status): a change only the ad page shows waits for such a run. When a run read every search to its end, each tracked ad it no longer met is checked on its ad page and reported once as a removed row (held back when more than half and more than 5 are missing at once). Mark reposts marks a new ad whose vertical, title, price and seller match one the monitor delivered (possibleRepostOf); Skip reposts leaves them out free. Reset the monitor starts it empty. One monitor name belongs to one set of settings: a run with other settings under the same name reads nothing and says why. A monitor remembers up to 60,000 ads.

Because a monitor pays a Results page for every search page it reads, a monitor of many searches with nothing new pays the start fee plus one Results page per search page read: 50 saved Torget searches checked on a day with nothing new cost $0.0049 + 50 x $0.0005 = $0.0299 on the Gold plan. Fewer, wider searches keep this low: several places in Places are one search, while each keyword and each Torget category is its own search.

Notifications are free and list the rows the run delivered, in a monitor run or any other: Telegram through your own bot (one message per row, up to Rows per notification rows, default 10, at most 30, then a line naming the rest), one Slack, Discord or WhatsApp Cloud API message listing up to that many rows, and a webhook that receives up to 1,000 rows per run in JSON batches of 100, signed with HMAC SHA-256 (header x-signature-sha256) when you give a secret, with up to 10 headers of your own. Notify changes only leaves new ads out. A failed notification gets a free status row and never fails the run.

A monitor for new rentals in Oslo, with price changes and a Telegram alert:

{ "verticals": ["realestate"], "propertyTypes": ["lettings"], "locations": ["Oslo"], "monitorName": "oslo-lettings",
"trackChanges": true, "telegramBotToken": "YOUR_BOT_TOKEN", "telegramChatId": "YOUR_CHAT_ID" }

Free status rows

Nothing is billed for a FINN code or ad link that FINN no longer shows, a refused setting or list item (a free row names it by its position and says why), a filter value FINN does not offer, a search FINN did not apply, a search that finds nothing (its coverage row says adsOnFinn: 0), or a search or link the run did not reach. Measured on the test build: a nonsense keyword (run M33oQgLiBib4sgsKD) and three refused items (run aMz9Cfglt1l3OGj5G) each charged only the Actor start. A run writes up to 20 such rows plus one per billed event (and at most 200 of one kind); the summary counts all of them.

Personal data

With Include personal data off (the default), a private seller's FINN id (sellerId), the street of a private seller's ad (streetAddress; on a private real estate ad the place shown is then the local area), its cadastre numbers and mapImageUrl, a private seller's vehicle plate, vin (also left out of attributes) and vehicleRegisterUrl, every contact person (contacts: dealers', agencies' and employers' staff) and the real estate brokers are null, and so are the contacts found in the texts of private ads and job 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. A business's data (dealers, shops, agencies, employers: name, organisation number, address, phone, e-mail, website, logo) is business data and always delivered. Titles and descriptions are delivered exactly as FINN serves them, so an ad's own text can name a person or give a phone number. You are responsible for a lawful use of personal data, GDPR included.

How long a run takes

FINN is read through Apify's datacenter proxy on one sticky session, at about one request a second with 2 in flight by default. Measured on the platform (test build, 2026-10-22):

  • Search rows are fast: the 20 car prefill in 4 seconds (2 requests), 60 Torget sofas in 4 seconds (2 requests).
  • Ad pages take about a second each at the default pace: 6 Torget ads with their ad pages in 10 seconds (8 requests). So 1,000 rows with ad pages take about 20 minutes.

When FINN refuses a request, the Actor pauses and asks once more on the same address; a second refusal in a row stops the run's reads with a free status row. It never switches to fresh addresses to get past a refusal. What was delivered stays delivered, and every search or link not reached is free and counted.

What this Actor does NOT do

  • No other sites. Only FINN.no.
  • 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 on vehicles and real estate, FINN's relevance order on Torget and jobs; the coverage row names it). A monitor of a Torget or job search sees every new ad only when its window (maxRowsPerSearch) holds the whole search. A pasted link with a sort is read in FINN's order, and a free status row (sort_dropped) says so. Posted within does not need an order: it checks each row's own date.
  • No private sellers' phone numbers on Torget and vehicle ads. FINN serves none there to a visitor: a private seller is reached by FINN's messages. Business phones (dealers, shops, agencies) come from the ad page, and a private seller's phone on a real estate ad, where FINN shows it, is in contacts with Include personal data.
  • No login and no account data. No saved searches, favourites, messages or Fiks ferdig purchases; nothing is posted and no contact form is sent.
  • No view or favourite counts. FINN's statistics pages are not read; a real estate ad page's own click count is delivered as clicks where the page shows one.
  • No occupations and industries together. FINN asks robots not to combine them; the run refuses that input with a free row.
  • No photo downloads. Photo links only.
  • No salary estimates. salary is what the job ad states, and few FINN job ads state one.
  • No unpaid crawling. A run stops with a status row when its unpaid work (pages whose rows 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 a share of every billed event): narrow the search or loosen the filters checked on each row.
  • No large monitors of ad links. A monitor with Track changes reads the page of every ad link again each run, and an unchanged ad is free, so such a run checks about 20 unchanged links before that budget ends. To watch many ads, monitor the searches that hold them (a Results page per page read pays for the check).

Use it from an AI agent (MCP)

AI agents can run this Actor as a tool through Apify's MCP server: connect your MCP client to https://mcp.apify.com and add automation_craft/finn-scraper to its tools. The agent then sends the same input as above (for example {"verticals": ["vehicles"], "makes": ["Volvo"], "locations": ["Bergen"], "maxItems": 20}) and reads the rows back. For agents, set compactOutput (only the core fields on each row) and excludeEmptyFields, keep maxItems small, and read the coverage row (type: "search") to see whether a search was read to its end and how many ads FINN counts.

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-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"verticals": ["realestate"], "propertyTypes": ["homes"], "locations": ["Trondheim"], "minBedrooms": 3, "maxItems": 100}'

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('automation_craft/finn-scraper').call({ verticals: ['vehicles'], vehicleTypes: ['car'], makes: ['Volvo'], models: ['XC60'], fuelTypes: ['Plug-in hybrid bensin'], 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 ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("automation_craft/finn-scraper").call(run_input={"verticals": ["jobs"], "keywords": ["utvikler"], "locations": ["Oslo"], "monitorName": "oslo-dev-jobs"})
jobs = [x for x in client.dataset(run["defaultDatasetId"]).iterate_items() if x["type"] == "listing"]

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.no listings?

Pick the verticals (Torget, vehicles, real estate or jobs), type keywords or paste a FINN search link, set Maximum rows and start the run: no code, no login and no proxy setup. Each ad comes as one row with its price, place, published time and the vertical's own facts, as JSON, CSV or Excel or through the Apify API.

Is there a FINN.no API?

FINN's own API is open only to businesses with an agreement with FINN, such as advertisers listing their own ads. This Actor works as one for public FINN ads: call it through the Apify API with verticals, keywords, filters, search links or FINN codes and read the rows back as JSON, in one call with run-sync-get-dataset-items.

All of them, up to your Maximum rows. FINN shows at most 50 pages of one search; past that, the Actor splits the search by FINN's own categories, makes, places or price bands, skips repeats free, and the free coverage row says how many ads FINN counts and how many stayed beyond reach.

How do I get alerts for new FINN ads?

Give the run a Monitor name and schedule it: each run delivers only the ads this monitor never delivered before and can send them to Telegram, Slack, Discord, WhatsApp or your own webhook at no extra charge, with no FINN account. A monitor run pays a Results page per search page it checks, so a day with nothing new costs the start fee plus those reads.

Do FINN job rows include the salary?

When the ad states one: salary, salaryType and salaryExtra hold it as FINN shows it, and few FINN job ads give one (4 of the 137 measured job ad pages). Every job row carries its full ad page: employer and organisation number, deadline, sector, occupations, skills, FINN's own summary and the apply link.

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, and a monitor keeps its memory in a named key-value store it creates itself. Limited permissions keep your other Apify data out of its reach.

Changelog

  • 0.1 (2026-10-22): first release: Torget, vehicles, real estate and jobs in one run; keywords, places, FINN's own filters checked against its own answer, search links, ad links and FINN codes; searches split past FINN's 50 page cap with a free coverage row; ad pages included in the row price; a monitor with change tracking, removals, reposts and free notifications; private sellers' data behind the personal data switch.

More data tools by Automation Craft