# Finn.no Scraper (`crawlerbros/finn-no-scraper`) Actor

Scrape Finn.no - Norway's largest classifieds marketplace. Search for items, cars, motorcycles, boats, real estate (for sale, for rent, holiday homes, plots, commercial, businesses for sale), and jobs across all categories. Get ad titles, prices, locations, images, sellers, and direct listing URLs.

- **URL**: https://apify.com/crawlerbros/finn-no-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Finn.no Scraper

Scrape **Finn.no** — Norway's largest online classifieds marketplace with millions of listings across items for sale, cars, motorcycles, boats, trucks & trailers, buses, construction machinery, agriculture equipment, caravans, motorhomes, real estate (for sale, for rent, holiday homes, plots, commercial, businesses for sale), and jobs. Choose from 24 modes to target one specific vertical with its own rich filter set (price, year, mileage, location, and more), or fan out across the 5 highest-volume categories in a single run with `searchAll`. HTTP-only — no login, cookies, API key, or proxy required.

### What this actor does

- **24 modes** — items, cars, motorcycles & mopeds, boats, trucks & trailers, buses, construction machinery, agriculture equipment, caravans, motorhomes, 11 real-estate sub-verticals, and jobs, each with its own filters and output fields
- **`searchAll` fan-out** — one run across items, cars, real estate for sale, real estate for rent, and jobs — the 5 highest-volume categories
- **Deep per-vertical filters** — make/model-adjacent enums, condition/fuel/transmission dropdowns, equipment & amenity checklists, and year/mileage/price/power/area range filters
- **Sort & scope controls** — relevance, newest/oldest, price, or distance; filter by Norwegian county (fylke) and "published today"
- **Empty fields are omitted** — only fields with real data are returned; nothing comes back as `null`

### Output per listing

- `adId` — Finn.no ad ID (finnkode)
- `heading` — ad headline
- `vertical` — human-readable category, e.g. `Items for sale`, `Cars & vehicles`, `Boats`, `Real estate (for sale)`, `Jobs`
- `price` — price in NOK (asking price for real estate for sale, monthly rent for real estate for rent)
- `currency` — always `NOK`
- `priceTotal` — total price incl. costs (real estate for sale)
- `sharedCostMonthly` — monthly shared/common cost (real estate for sale)
- `location` — listing location (city/street)
- `publishedDate` — ISO timestamp the ad was published
- `imageUrl` — first/cover image URL
- `imageUrls` — all gallery image URLs (items, cars, mc, boats, real estate)
- `adUrl` — direct link to the listing
- `seller` — seller/dealer/company/broker name (cars, mc, boats, jobs, real estate)
- `brand` — product brand (items)
- `condition` — ad/trade type: `Til salgs` (for sale), `Gis bort` (giving away), or `Ønskes kjøpt` (wanted) (items)
- `sellerType` — private seller vs. dealer (items)
- `make`, `carModel`, `modelSpecification`, `year`, `mileage`, `mileageUnit`, `transmission`, `fuel`, `dealerSegment` — vehicle specs (cars, mc, trucks, buses, construction machinery, agriculture, caravans, motorhomes; field subset varies by vertical)
- `drivingRangeKm` — WLTP driving range in km (cars, EVs only)
- `warrantyMonths` — remaining warranty duration in months (cars, mc, when attached)
- `registrationClass` — registration/tax class, e.g. `Personbil` (cars)
- `vin` — vehicle identification number (cars, mc, when disclosed)
- `salesForm` — sales form, e.g. `Bruktbil til salgs`, `Leasing`, `Auksjon` (cars only)
- `regNo` — vehicle registration number (mc, trucks, buses, motorhomes, when disclosed)
- `engineVolumeCc` — engine displacement in cc (mc, motorhomes)
- `hoursUsed` — operating hours, the agricultural equivalent of mileage (agriculture, when disclosed)
- `motorType` — motor placement, e.g. `Innenbords` (inboard), `Utenbords` (outboard) (boats)
- `motorFuel` — motor fuel type (boats)
- `motorPowerHp` — motor power in horsepower (boats)
- `boatClass` — boat type/class, e.g. `Yacht`, `Seilbåt/Motorseiler` (boats)
- `boatLengthFt` — length in feet (boats)
- `boatWidthCm` — beam/width in cm (boats)
- `boatMaxSpeedKnots` — top speed in knots (boats, when disclosed)
- `positions`, `jobLocations` — number of open positions, all listed locations (jobs)
- `applicationDeadline` — ISO timestamp of the application deadline (jobs, when set)
- `propertyType`, `ownerType`, `neighborhood`, `bedrooms`, `areaSizeSqm`, `plotSizeSqm` — property details (real estate, all 11 sub-verticals; `plotSizeSqm` is the primary size field for plot-only sub-verticals)
- `viewingTimes` — ISO timestamps of upcoming open-house viewings (real estate, when scheduled)
- `furnished` — furnished status (`Møblert`/`Delvis møblert`/`Umøblert`) (real estate for rent)
- `mode` — which mode produced this record, e.g. `searchItems`, `searchCars`, `searchRealEstate`
- `scrapedAt` — ISO timestamp of scrape

Only fields with real data are included — empty/unavailable fields are omitted rather than returned as `null`. A real `0` (e.g. a sailboat with no engine) is always kept; only truly absent values are omitted.

**Note on `condition` vs. the `itemCondition` input filter:** these are different concepts. `itemCondition` narrows search results by the item's physical condition (brand new, like new, well used, etc.) — a search-only facet Finn.no doesn't echo back per listing. The `condition` output field reflects whether the ad is a sale, a free giveaway, or a "wanted" post — always available, but a different concept. If you want a filter whose value shows up in the output `condition` field, use `tradeType` instead.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | select | `searchItems` | `searchAll`, `searchCars`, `searchMc`, `searchBoats`, `searchRealEstate`, `searchRealEstateRentals`, `searchRealEstateLeisureSale`, `searchRealEstateLeisurePlots`, `searchRealEstateAbroad`, `searchRealEstateNewBuildings`, `searchRealEstatePlots`, `searchRealEstateBusinessSale`, `searchRealEstateBusinessRent`, `searchRealEstateBusinessPlots`, `searchRealEstateCompanyForSale`, `searchTrucks`, `searchBuses`, `searchConstructionMachinery`, `searchAgricultureTractors`, `searchAgricultureCombines`, `searchAgricultureTools`, `searchCaravans`, `searchMotorhomes`, `searchJobs`, `searchItems` |
| `query` | string | `iPhone` | Keyword to search. Leave empty to browse all listings in the selected category |
| `sortBy` | select | `relevance` | `relevance`, `newest`, `oldest`, `priceAsc`, `priceDesc`, `closest` |
| `location` | select | – (any county) | Norwegian county (fylke) — applies to every mode, including each vertical inside `searchAll` |
| `category` | select | – (any category) | Torget top-level category (`mode=searchItems`) |
| `itemCondition` | select | – (any condition) | Item's physical condition, e.g. "Brand new", "Like new" (`mode=searchItems`); narrows results but is not itself echoed on any output field — see the `condition` note above |
| `tradeType` | select | – (any ad type) | Ad type — for sale / giving away / wanted (`mode=searchItems`); value IS reflected on the output `condition` field |
| `forRent` | select | – (either) | Buy vs. rent (`mode=searchItems`) |
| `sellerType` | select | – (any seller) | Private seller vs. dealer (`mode=searchItems`) |
| `carFuel` | select | – (any fuel) | Vehicle fuel type, e.g. Petrol, Diesel, Electric (`mode=searchCars`) |
| `carBodyType` | select | – (any body type) | Vehicle body type, e.g. SUV, Sedan, Estate (`mode=searchCars`) |
| `carTransmission` | select | – (any transmission) | Automatic or Manual gearbox (`mode=searchCars`) |
| `carDealerSegment` | select | – (any seller) | Private / brand dealer / other dealer (`mode=searchCars`) |
| `carWheelDrive` | select | – (any drivetrain) | Front / rear / four-wheel drive (`mode=searchCars`) |
| `carColour` | select | – (any colour) | Exterior colour, 16 values (`mode=searchCars`) |
| `carSalesForm` | select | – (any sales form) | Used/new/leasing/auction/offers-wanted (`mode=searchCars`) |
| `carRegistrationClass` | select | – (any class) | Vehicle registration/tax class — passenger car, van, light truck, etc. (`mode=searchCars`) |
| `carWarrantyInsurance` | select | – (any) | Warranty / right-of-exchange / manufacturer-programme offer attached (`mode=searchCars`) |
| `carDocumentation` | select | – (any) | Which report/history document is attached (`mode=searchCars`) |
| `carWheelSets` | select | – (any) | One vs. two-or-more wheel sets included (`mode=searchCars`) |
| `carEquipment` | array (multi-select) | – (any) | Equipment checklist, e.g. Bluetooth, cruise control, tow hitch (`mode=searchCars`); matches **any** selected item |
| `carSmoothTrade` | boolean | `false` | Only cars enrolled in Finn's "Smidig bilhandel" programme (`mode=searchCars`) |
| `carYearMin` / `carYearMax` | integer | – | Model year range (`mode=searchCars`) |
| `carMileageMin` / `carMileageMax` | integer | – | Odometer range in km (`mode=searchCars`) |
| `carEnginePowerMin` / `carEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchCars`) |
| `carSeatsMin` / `carSeatsMax` | integer | – | Number-of-seats range (`mode=searchCars`) |
| `carDrivingRangeMin` / `carDrivingRangeMax` | integer | – | WLTP driving range in km, EVs (`mode=searchCars`) |
| `carTrailerWeightMin` / `carTrailerWeightMax` | integer | – | Allowed trailer weight range in kg (`mode=searchCars`) |
| `jobExtent` | select | – (any extent) | Full-time or Part-time (`mode=searchJobs`) |
| `jobDuration` | select | – (any form) | Employment form — permanent, temporary, project, etc. (`mode=searchJobs`) |
| `jobSector` | select | – (any sector) | Private / public / organizations / cooperative (`mode=searchJobs`) |
| `jobWorkingLanguage` | select | – (any language) | Norwegian or English (`mode=searchJobs`) |
| `jobHomeOffice` | select | – (any arrangement) | At the office / partly remote / fully remote (`mode=searchJobs`) |
| `jobManagerRole` | select | – (any level) | Manager / team lead / director (`mode=searchJobs`) |
| `jobWorkExperience` | select | – (any level) | No experience / junior / experienced / management (`mode=searchJobs`) |
| `jobEducation` | select | – (any level) | Required education level, 8 values (`mode=searchJobs`) |
| `jobOccupation` | select | – (any occupation) | Top-level occupation, 84 values (`mode=searchJobs`) |
| `jobIndustry` | select | – (any industry) | Employer industry, 69 values (`mode=searchJobs`) |
| `jobApplicationDeadline` | select | – (any) | How soon the application deadline is (`mode=searchJobs`) |
| `propertyType` | select | – (any property type) | Property type, e.g. Apartment, Detached house (`mode=searchRealEstate` / `searchRealEstateRentals`) |
| `realEstateLifecycle` | select | – (any status) | For sale / sold in last 3 days / coming for sale (`mode=searchRealEstate`) |
| `realEstateIsNewProperty` | select | – (either) | New build vs. resale (`mode=searchRealEstate`) |
| `realEstateOwnershipType` | select | – (any type) | Freehold / co-op share / housing-company share / bond (`mode=searchRealEstate`) |
| `realEstateEnergyLabel` | select | – (any label) | Official energy rating A–G (`mode=searchRealEstate`) |
| `realEstateFloor` | select | – (any floor) | Which floor the unit is on (`mode=searchRealEstate` / `searchRealEstateRentals`) |
| `realEstateFurnished` | select | – (any furnishing) | Furnished / partly furnished / unfurnished (`mode=searchRealEstateRentals`) |
| `realEstateAnimalsAllowed` | select | – (any) | Only rentals that explicitly allow pets (`mode=searchRealEstateRentals`) |
| `realEstateMinBedrooms` | select | – (any) | Minimum bedroom count, "N+" (`mode=searchRealEstate` / `searchRealEstateRentals`) |
| `realEstateSellerType` | select | – (any) | Private seller vs. estate broker (`mode=searchRealEstate`) |
| `realEstateFacilities` | array (multi-select) | – (any) | Amenities checklist, e.g. balcony, elevator, EV charging (`mode=searchRealEstate` / `searchRealEstateRentals`); matches **any** selected item |
| `realEstateAreaSqmMin` / `realEstateAreaSqmMax` | integer | – | Internal floor-area range in m² (`mode=searchRealEstate` / `searchRealEstateRentals`) |
| `realEstateConstructionYearMin` / `realEstateConstructionYearMax` | integer | – | Construction year range (`mode=searchRealEstate`) |
| `realEstatePlotSizeSqmMin` / `realEstatePlotSizeSqmMax` | integer | – | Plot/land size range in m² (`mode=searchRealEstate`) |
| `realEstateCommonCostMin` / `realEstateCommonCostMax` | integer | – | Shared/common monthly cost range in NOK (`mode=searchRealEstate`) |
| `realEstateTotalPriceMin` / `realEstateTotalPriceMax` | integer | – | Total price incl. collective debt, NOK range (`mode=searchRealEstate`) |
| `mcType` | select | – (any type) | Motorcycle/moped/ATV/snowmobile type, 21 values (`mode=searchMc`) |
| `mcCondition` | select | – (either) | New vs. used motorcycle (`mode=searchMc`) |
| `mcFuel` | select | – (any fuel) | Motorcycle fuel type (`mode=searchMc`) |
| `mcYearMin` / `mcYearMax` | integer | – | Model year range (`mode=searchMc`) |
| `mcMileageMin` / `mcMileageMax` | integer | – | Odometer range in km (`mode=searchMc`) |
| `mcEnginePowerMin` / `mcEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchMc`) |
| `mcEngineVolumeMin` / `mcEngineVolumeMax` | integer | – | Engine displacement range in cc (`mode=searchMc`) |
| `boatClass` | select | – (any class) | Boat type/class, 15 values (`mode=searchBoats`) |
| `boatMotorType` | select | – (any) | Inboard / outboard / other motor placement (`mode=searchBoats`) |
| `boatFuel` | select | – (any fuel) | Boat motor fuel type (`mode=searchBoats`) |
| `boatMaterial` | select | – (any material) | Hull building material (`mode=searchBoats`) |
| `boatYearMin` / `boatYearMax` | integer | – | Model year range (`mode=searchBoats`) |
| `boatLengthFtMin` / `boatLengthFtMax` | integer | – | Length range in feet (`mode=searchBoats`) |
| `boatMotorPowerMin` / `boatMotorPowerMax` | integer | – | Motor power range in hp (`mode=searchBoats`) |
| `boatWidthCmMin` / `boatWidthCmMax` | integer | – | Beam/width range in cm (`mode=searchBoats`) |
| `boatMaxSpeedMin` / `boatMaxSpeedMax` | integer | – | Top speed range in knots (`mode=searchBoats`) |
| `truckSegment` | select | – (any group) | Vehicle group, e.g. Tow truck, Tanker, Crane truck, 21 values (`mode=searchTrucks`) |
| `busSegment` | select | – (any group) | Bus / minibus / other (`mode=searchBuses`) |
| `constructionSegment` | select | – (any category) | Machinery category, e.g. Excavator, Wheel loader, Crane, 17 values (`mode=searchConstructionMachinery`) |
| `agricultureToolsType` | select | – (any category) | Implement category, e.g. Tillage, Sprayers, Forestry, 12 values (`mode=searchAgricultureTools`) |
| `commercialDealerSegment` | select | – (any seller) | Private seller vs. dealer (`mode=searchTrucks` / `searchBuses` / `searchConstructionMachinery` / agriculture modes) |
| `truckYearMin` / `truckYearMax` | integer | – | Model year range (`mode=searchTrucks`) |
| `truckEnginePowerMin` / `truckEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchTrucks`) |
| `truckWeightMin` / `truckWeightMax` | integer | – | Total weight range in kg (`mode=searchTrucks`) |
| `busYearMin` / `busYearMax` | integer | – | Model year range (`mode=searchBuses`) |
| `busEnginePowerMin` / `busEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchBuses`) |
| `constructionYearMin` / `constructionYearMax` | integer | – | Model year range (`mode=searchConstructionMachinery`) |
| `constructionEnginePowerMin` / `constructionEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchConstructionMachinery`) |
| `agricultureYearMin` / `agricultureYearMax` | integer | – | Model year range (agriculture modes) |
| `agricultureEnginePowerMin` / `agricultureEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchAgricultureTractors` / `searchAgricultureCombines`) |
| `caravanSegment` | select | – (any group) | Vehicle group — Caravan / Trailer tent / Other (`mode=searchCaravans`) |
| `motorhomeSegment` | select | – (any type) | Body type — Alcove / A-class / Van conversion / etc., 5 values (`mode=searchMotorhomes`) |
| `rvCondition` | select | – (either) | New vs. used (`mode=searchCaravans` / `searchMotorhomes`) |
| `rvLocation` | select | – (any) | Currently in Norway vs. abroad (`mode=searchCaravans` / `searchMotorhomes`) |
| `rvSleepers` | select | – (any) | Sleeper-berth bucket, e.g. "3-4" (`mode=searchCaravans` / `searchMotorhomes`) |
| `motorhomeSeats` | select | – (any) | Registered seat-count bucket, e.g. "4-5" (`mode=searchMotorhomes`) |
| `motorhomeTransmission` | select | – (any) | Automatic or Manual gearbox (`mode=searchMotorhomes`) |
| `motorhomeWheelDrive` | select | – (any) | Front / rear / four-wheel drive (`mode=searchMotorhomes`) |
| `caravanDealerSegment` | select | – (any seller) | Private seller vs. dealer (`mode=searchCaravans` / `searchMotorhomes`) |
| `caravanYearMin` / `caravanYearMax` | integer | – | Model year range (`mode=searchCaravans`) |
| `caravanWeightMin` / `caravanWeightMax` | integer | – | Total weight range in kg (`mode=searchCaravans`) |
| `caravanLengthMin` / `caravanLengthMax` | integer | – | Length range in cm (`mode=searchCaravans`) |
| `caravanWidthMin` / `caravanWidthMax` | integer | – | Width range in cm (`mode=searchCaravans`) |
| `motorhomeYearMin` / `motorhomeYearMax` | integer | – | Model year range (`mode=searchMotorhomes`) |
| `motorhomeWeightMin` / `motorhomeWeightMax` | integer | – | Total weight range in kg (`mode=searchMotorhomes`) |
| `motorhomeLengthMin` / `motorhomeLengthMax` | integer | – | Length range in cm (`mode=searchMotorhomes`) |
| `motorhomeMileageMin` / `motorhomeMileageMax` | integer | – | Odometer range in km (`mode=searchMotorhomes`) |
| `motorhomeEnginePowerMin` / `motorhomeEnginePowerMax` | integer | – | Engine power range in hp (`mode=searchMotorhomes`) |
| `itemFreeShippingOnly` | boolean | `false` | Only item listings offering free shipping (`mode=searchItems`) |
| `publishedToday` | boolean | `false` | Only listings published today ("Nye i dag") — applies to every mode |
| `priceMin` | integer | – | Min price in NOK |
| `priceMax` | integer | – | Max price in NOK |
| `maxItems` | integer | `20` | Max listings to return (1–1000). For `searchAll`, split evenly across the 5 categories |

**Note on `maxItems` with no `query`:** requesting a large `maxItems` (e.g. 1000) with `query` left empty (browsing all listings in a category) can return fewer records than requested, because Finn.no's query-less browse view doesn't advance monotonically across result pages. When this happens the run's status message reports the shortfall explicitly (e.g. *"Scraped 721 listings from Finn.no (fewer than the requested 1000: ...)"*) instead of silently truncating. Searches with a real `query` (including the default `query: "iPhone"`) reliably deliver the full requested count.

Every mode-specific filter above is simply ignored when the selected `mode` doesn't support it — no error, no crash. When running `searchAll`, every filter is applied to the vertical(s) it belongs to (e.g. `carFuel` only affects the cars leg).

#### Example: quick keyword search

```json
{
  "mode": "searchItems",
  "query": "iPhone",
  "sortBy": "newest",
  "maxItems": 30
}
```

#### Example: filtered used-car search

```json
{
  "mode": "searchCars",
  "carFuel": "El",
  "carYearMin": 2020,
  "carMileageMax": 50000,
  "location": "Oslo",
  "sortBy": "priceAsc",
  "maxItems": 25
}
```

#### Example: rental apartments in a specific area

```json
{
  "mode": "searchRealEstateRentals",
  "location": "Oslo",
  "priceMax": 15000,
  "realEstateMinBedrooms": "2+",
  "maxItems": 20
}
```

#### Example: cross-category daily snapshot

```json
{
  "mode": "searchAll",
  "query": "sykkel",
  "publishedToday": true,
  "maxItems": 50
}
```

### Use cases

- **Resale & arbitrage** — track newly listed items and price movements to spot resale opportunities
- **Car dealerships & buyers** — monitor the used-car market for specific makes, fuel types, or price bands
- **Real estate agencies & investors** — watch new for-sale or rental listings in a target county or neighbourhood
- **Recruiters & job boards** — aggregate open positions by industry, sector, or work arrangement
- **Market researchers & pricing analysts** — build cross-category snapshots of NOK pricing trends with `searchAll`
- **Equipment & fleet buyers** — source used trucks, construction machinery, or agriculture equipment by year and engine power

### FAQ

**What is Finn.no?**
Finn.no is Norway's largest online marketplace, operated by Schibsted Media Group. It hosts millions of listings for items, cars, motorcycles, boats, real estate, jobs, travel, and more.

**Do I need a Finn.no account?**
No. Public listings are accessible without login, cookies, or an API key.

**How are prices returned?**
Prices are in Norwegian Krone (NOK) as integers.

**What does "Search all categories" (`searchAll`) do?**
It queries items, cars, real estate for sale, real estate for rent, and jobs in the same run and splits `maxItems` evenly across those five categories, giving a cross-category snapshot in a single run. The niche verticals (motorcycles, boats, the 9 real-estate sub-verticals, and the 8 commercial/RV modes) aren't part of this fan-out — select them individually via `mode`.

**Does this cover trucks, buses, construction machinery, agriculture equipment, caravans, and motorhomes?**
Yes. `searchTrucks`, `searchBuses`, and `searchConstructionMachinery` cover commercial vehicles. `searchAgricultureTractors`, `searchAgricultureCombines`, and `searchAgricultureTools` cover farm equipment. `searchCaravans` and `searchMotorhomes` cover recreational vehicles — each with its own vehicle-group/category filters and year/engine-power/weight/length range filters.

**Does this cover rental properties too, or just homes for sale?**
Both. `searchRealEstate` covers homes for sale; `searchRealEstateRentals` covers homes for rent, with its own monthly-rent pricing and furnished-status field. Nine further sub-verticals are available individually: holiday homes for sale, holiday-home plots, property abroad, new-build projects, residential plots, commercial premises for sale/rent, commercial plots, and businesses for sale as a going concern.

**Does this cover motorcycles and boats too, or just cars?**
Yes. `searchMc` covers motorcycles, mopeds, ATVs, and snowmobiles; `searchBoats` covers boats — each with its own filter set and output fields (registration number & engine displacement for MC; motor power, length, width, and top speed for boats).

**How many listings can I scrape per run?**
Up to 1,000 using `maxItems`.

**Can I sort results?**
Yes — by relevance (default), newest/oldest first, price ascending/descending, or distance.

**Can I filter by county, category, condition, fuel type, occupation, energy label, etc.?**
Yes — see the Input table above. Every filter that doesn't apply to the currently selected `mode` is simply ignored, with no error.

**Are there filters that aren't available?**
A few facets are intentionally left out because Finn.no's underlying value sets are too large or too unstable to keep as a reliable dropdown: item sub-categories (500+ values), item/car brand (up to ~1,800 values), job sub-occupations (~214 values beneath the 84 top-level `jobOccupation` values), and per-vertical vehicle `make` on trucks/buses/construction/agriculture/caravans/motorhomes (10–212 values each). Use `query` for these (e.g. `query: "Samsung"` or `query: "Scania"`). Viewing dates and map/radius search are also out of scope since they're rolling/date-based or client-side-only on Finn.no; scheduled viewing times that Finn does return per listing still appear in the `viewingTimes` output field.

**Why do vehicle year filters (e.g. `carYearMax`) top out at 2027?**
Finn.no's vehicle year filter stops working correctly once a bound goes past the site's current live ceiling — instead of narrowing results, it silently returns the unfiltered set. The input schema caps at the current live ceiling to avoid that. Finn extends the ceiling by roughly a year whenever the next model year goes on sale; for a newer model year in the meantime, use `query` (e.g. `query: "2028 modell"`).

**Is this affiliated with Finn.no?**
No, this is a third-party actor that reads Finn.no's public search results. It is not affiliated with or endorsed by Finn.no or Schibsted Media Group.

# Actor input Schema

## `mode` (type: `string`):

What to search on Finn.no.

## `query` (type: `string`):

Keyword to search for (e.g. 'iPhone', 'sofa', 'BMW'). Leave empty to browse all listings in the selected category/mode.

## `sortBy` (type: `string`):

Order in which listings are returned.

## `location` (type: `string`):

Restrict results to a Norwegian county. Applies to every mode (including each vertical inside 'Search all categories').

## `publishedToday` (type: `boolean`):

Only return listings published today (Nye i dag). Applies to every mode.

## `category` (type: `string`):

Torget top-level category. Only applies when mode is 'Search items for sale' (or the items leg of 'Search all categories').

## `itemCondition` (type: `string`):

Filter by the item's physical condition (tilstand). Only applies when mode is 'Search items for sale' (or the items leg of 'Search all categories'). Note: Finn.no doesn't return this field on individual listings, only as a search filter, so it narrows results but isn't echoed back on the output records (the output `condition` field is a different concept — see README).

## `tradeType` (type: `string`):

Filter by Finn's ad/trade type. Only applies when mode is 'Search items for sale'. Unlike itemCondition, this value IS reliably reflected back on the matching output records' `condition` field.

## `forRent` (type: `string`):

Filter items listed for purchase vs. for rent. Only applies when mode is 'Search items for sale'.

## `sellerType` (type: `string`):

Filter by private seller vs. dealer/retailer. Only applies when mode is 'Search items for sale'. Note: Finn.no doesn't return a raw seller-type field on item listings, so this narrows results but isn't itself echoed back on item output records.

## `itemFreeShippingOnly` (type: `boolean`):

Only return item listings offering free shipping (Gratis frakt). Only applies when mode is 'Search items for sale'.

## `carFuel` (type: `string`):

Vehicle fuel type. Only applies when mode is 'Search cars & vehicles'.

## `carBodyType` (type: `string`):

Vehicle body/karosseri type. Only applies when mode is 'Search cars & vehicles'.

## `carTransmission` (type: `string`):

Gearbox type. Only applies when mode is 'Search cars & vehicles'.

## `carDealerSegment` (type: `string`):

Filter by private seller, brand dealer, or other car dealer. Only applies when mode is 'Search cars & vehicles'. Reflected back on the output `dealerSegment` field.

## `carWheelDrive` (type: `string`):

Vehicle drivetrain. Only applies when mode is 'Search cars & vehicles'.

## `carColour` (type: `string`):

Vehicle exterior colour. Only applies when mode is 'Search cars & vehicles'.

## `carSalesForm` (type: `string`):

How the vehicle is being sold (used/new/leasing/auction/offers). Only applies when mode is 'Search cars & vehicles'.

## `carRegistrationClass` (type: `string`):

Vehicle registration/tax class (avgiftsklasse). Only applies when mode is 'Search cars & vehicles'.

## `carWarrantyInsurance` (type: `string`):

Filter by attached warranty or insurance offer. Only applies when mode is 'Search cars & vehicles'.

## `carDocumentation` (type: `string`):

Filter by which report/history documents are attached to the listing (not the vehicle's physical condition). Only applies when mode is 'Search cars & vehicles'.

## `carWheelSets` (type: `string`):

Filter by number of wheel sets (summer/winter) included in the sale. Only applies when mode is 'Search cars & vehicles'.

## `carEquipment` (type: `array`):

Filter for cars with specific equipment (multi-select — a car matching ANY selected item is included). Only applies when mode is 'Search cars & vehicles'.

## `carYearMin` (type: `integer`):

Minimum vehicle model year. Only applies when mode is 'Search cars & vehicles'.

## `carYearMax` (type: `integer`):

Maximum vehicle model year. Only applies when mode is 'Search cars & vehicles'.

## `carMileageMin` (type: `integer`):

Minimum odometer reading in kilometres. Only applies when mode is 'Search cars & vehicles'.

## `carMileageMax` (type: `integer`):

Maximum odometer reading in kilometres. Only applies when mode is 'Search cars & vehicles'.

## `carEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower (hk). Only applies when mode is 'Search cars & vehicles'.

## `carEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower (hk). Only applies when mode is 'Search cars & vehicles'.

## `carSeatsMin` (type: `integer`):

Minimum number of seats. Only applies when mode is 'Search cars & vehicles'.

## `carSeatsMax` (type: `integer`):

Maximum number of seats. Only applies when mode is 'Search cars & vehicles'.

## `carDrivingRangeMin` (type: `integer`):

Minimum WLTP driving range in kilometres (electric vehicles). Only applies when mode is 'Search cars & vehicles'.

## `carDrivingRangeMax` (type: `integer`):

Maximum WLTP driving range in kilometres (electric vehicles). Only applies when mode is 'Search cars & vehicles'.

## `carTrailerWeightMin` (type: `integer`):

Minimum allowed trailer weight in kilograms. Only applies when mode is 'Search cars & vehicles'.

## `carTrailerWeightMax` (type: `integer`):

Maximum allowed trailer weight in kilograms. Only applies when mode is 'Search cars & vehicles'.

## `carSmoothTrade` (type: `boolean`):

Only return listings enrolled in Finn's 'Smidig bilhandel' (smooth car trade) payment/ownership-transfer programme. Only applies when mode is 'Search cars & vehicles'.

## `mcType` (type: `string`):

Motorcycle/moped/ATV/snowmobile type. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcCondition` (type: `string`):

New vs. used motorcycle. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcFuel` (type: `string`):

Motorcycle fuel type. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcYearMin` (type: `integer`):

Minimum motorcycle model year. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcYearMax` (type: `integer`):

Maximum motorcycle model year. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcMileageMin` (type: `integer`):

Minimum odometer reading in km. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcMileageMax` (type: `integer`):

Maximum odometer reading in km. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcEngineVolumeMin` (type: `integer`):

Minimum engine displacement in cubic centimetres. Only applies when mode is 'Search motorcycles & mopeds'.

## `mcEngineVolumeMax` (type: `integer`):

Maximum engine displacement in cubic centimetres. Only applies when mode is 'Search motorcycles & mopeds'.

## `boatClass` (type: `string`):

Boat type/class. Only applies when mode is 'Search boats'.

## `boatMotorType` (type: `string`):

Inboard/outboard/other motor placement. Only applies when mode is 'Search boats'.

## `boatFuel` (type: `string`):

Boat motor fuel type. Only applies when mode is 'Search boats'.

## `boatMaterial` (type: `string`):

Boat hull building material. Only applies when mode is 'Search boats'.

## `boatYearMin` (type: `integer`):

Minimum boat model year. Only applies when mode is 'Search boats'.

## `boatYearMax` (type: `integer`):

Maximum boat model year. Only applies when mode is 'Search boats'.

## `boatLengthFtMin` (type: `integer`):

Minimum boat length in feet. Only applies when mode is 'Search boats'.

## `boatLengthFtMax` (type: `integer`):

Maximum boat length in feet. Only applies when mode is 'Search boats'.

## `boatMotorPowerMin` (type: `integer`):

Minimum motor power in horsepower. Only applies when mode is 'Search boats'.

## `boatMotorPowerMax` (type: `integer`):

Maximum motor power in horsepower. Only applies when mode is 'Search boats'.

## `boatWidthCmMin` (type: `integer`):

Minimum boat beam/width in centimetres. Only applies when mode is 'Search boats'.

## `boatWidthCmMax` (type: `integer`):

Maximum boat beam/width in centimetres. Only applies when mode is 'Search boats'.

## `boatMaxSpeedMin` (type: `integer`):

Minimum top speed in knots. Only applies when mode is 'Search boats'.

## `boatMaxSpeedMax` (type: `integer`):

Maximum top speed in knots. Only applies when mode is 'Search boats'.

## `truckSegment` (type: `string`):

Truck/trailer vehicle group. Only applies when mode is 'Search trucks & trailers'.

## `commercialDealerSegment` (type: `string`):

Filter by private seller vs. dealer. Only applies when mode is 'Search trucks & trailers', 'Search buses & minibuses', 'Search construction machinery', or one of the agriculture modes.

## `truckYearMin` (type: `integer`):

Minimum truck/trailer model year. Only applies when mode is 'Search trucks & trailers'.

## `truckYearMax` (type: `integer`):

Maximum truck/trailer model year. Only applies when mode is 'Search trucks & trailers'.

## `truckEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower. Only applies when mode is 'Search trucks & trailers'.

## `truckEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower. Only applies when mode is 'Search trucks & trailers'.

## `truckWeightMin` (type: `integer`):

Minimum total vehicle weight in kilograms. Only applies when mode is 'Search trucks & trailers'.

## `truckWeightMax` (type: `integer`):

Maximum total vehicle weight in kilograms. Only applies when mode is 'Search trucks & trailers'.

## `busSegment` (type: `string`):

Bus/minibus vehicle group. Only applies when mode is 'Search buses & minibuses'.

## `busYearMin` (type: `integer`):

Minimum bus model year. Only applies when mode is 'Search buses & minibuses'.

## `busYearMax` (type: `integer`):

Maximum bus model year. Only applies when mode is 'Search buses & minibuses'.

## `busEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower. Only applies when mode is 'Search buses & minibuses'.

## `busEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower. Only applies when mode is 'Search buses & minibuses'.

## `constructionSegment` (type: `string`):

Construction machinery category. Only applies when mode is 'Search construction machinery'.

## `constructionYearMin` (type: `integer`):

Minimum construction machine model year. Only applies when mode is 'Search construction machinery'.

## `constructionYearMax` (type: `integer`):

Maximum construction machine model year. Only applies when mode is 'Search construction machinery'.

## `constructionEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower. Only applies when mode is 'Search construction machinery'.

## `constructionEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower. Only applies when mode is 'Search construction machinery'.

## `agricultureToolsType` (type: `string`):

Agriculture machine/implement category. Only applies when mode is 'Search agriculture (machines & implements)'.

## `agricultureYearMin` (type: `integer`):

Minimum model year. Only applies when mode is one of the agriculture modes ('Search agriculture (tractors)', 'Search agriculture (combine harvesters)', or 'Search agriculture (machines & implements)').

## `agricultureYearMax` (type: `integer`):

Maximum model year. Only applies when mode is one of the agriculture modes ('Search agriculture (tractors)', 'Search agriculture (combine harvesters)', or 'Search agriculture (machines & implements)').

## `agricultureEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower. Only applies when mode is 'Search agriculture (tractors)' or 'Search agriculture (combine harvesters)'.

## `agricultureEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower. Only applies when mode is 'Search agriculture (tractors)' or 'Search agriculture (combine harvesters)'.

## `caravanSegment` (type: `string`):

Caravan vehicle group. Only applies when mode is 'Search caravans'.

## `rvCondition` (type: `string`):

New vs. used. Only applies when mode is 'Search caravans' or 'Search motorhomes'.

## `rvLocation` (type: `string`):

Whether the vehicle is currently located in Norway or abroad. Only applies when mode is 'Search caravans' or 'Search motorhomes'.

## `rvSleepers` (type: `string`):

Number of sleeping berths. Only applies when mode is 'Search caravans' or 'Search motorhomes'.

## `caravanDealerSegment` (type: `string`):

Filter by private seller vs. dealer. Only applies when mode is 'Search caravans' or 'Search motorhomes'.

## `caravanYearMin` (type: `integer`):

Minimum caravan model year. Only applies when mode is 'Search caravans'.

## `caravanYearMax` (type: `integer`):

Maximum caravan model year. Only applies when mode is 'Search caravans'.

## `caravanWeightMin` (type: `integer`):

Minimum total weight in kilograms. Only applies when mode is 'Search caravans'.

## `caravanWeightMax` (type: `integer`):

Maximum total weight in kilograms. Only applies when mode is 'Search caravans'.

## `caravanLengthMin` (type: `integer`):

Minimum length in centimetres. Only applies when mode is 'Search caravans'.

## `caravanLengthMax` (type: `integer`):

Maximum length in centimetres. Only applies when mode is 'Search caravans'.

## `caravanWidthMin` (type: `integer`):

Minimum width in centimetres. Only applies when mode is 'Search caravans'.

## `caravanWidthMax` (type: `integer`):

Maximum width in centimetres. Only applies when mode is 'Search caravans'.

## `motorhomeSegment` (type: `string`):

Motorhome body type. Only applies when mode is 'Search motorhomes'.

## `motorhomeSeats` (type: `string`):

Number of registered seats. Only applies when mode is 'Search motorhomes'.

## `motorhomeTransmission` (type: `string`):

Gearbox type. Only applies when mode is 'Search motorhomes'.

## `motorhomeWheelDrive` (type: `string`):

Drivetrain layout. Only applies when mode is 'Search motorhomes'.

## `motorhomeYearMin` (type: `integer`):

Minimum motorhome model year. Only applies when mode is 'Search motorhomes'.

## `motorhomeYearMax` (type: `integer`):

Maximum motorhome model year. Only applies when mode is 'Search motorhomes'.

## `motorhomeWeightMin` (type: `integer`):

Minimum total weight in kilograms. Only applies when mode is 'Search motorhomes'.

## `motorhomeWeightMax` (type: `integer`):

Maximum total weight in kilograms. Only applies when mode is 'Search motorhomes'.

## `motorhomeLengthMin` (type: `integer`):

Minimum length in centimetres. Only applies when mode is 'Search motorhomes'.

## `motorhomeLengthMax` (type: `integer`):

Maximum length in centimetres. Only applies when mode is 'Search motorhomes'.

## `motorhomeMileageMin` (type: `integer`):

Minimum mileage in kilometres. Only applies when mode is 'Search motorhomes'.

## `motorhomeMileageMax` (type: `integer`):

Maximum mileage in kilometres. Only applies when mode is 'Search motorhomes'.

## `motorhomeEnginePowerMin` (type: `integer`):

Minimum engine power in horsepower. Only applies when mode is 'Search motorhomes'.

## `motorhomeEnginePowerMax` (type: `integer`):

Maximum engine power in horsepower. Only applies when mode is 'Search motorhomes'.

## `jobExtent` (type: `string`):

Full-time vs. part-time. Only applies when mode is 'Search jobs'.

## `jobDuration` (type: `string`):

Employment contract form (permanent/temporary/project/etc.) — distinct from full-time/part-time extent. Only applies when mode is 'Search jobs'.

## `jobSector` (type: `string`):

Employer sector. Only applies when mode is 'Search jobs'.

## `jobWorkingLanguage` (type: `string`):

Required working language. Only applies when mode is 'Search jobs'.

## `jobHomeOffice` (type: `string`):

Remote-work arrangement. Only applies when mode is 'Search jobs'.

## `jobManagerRole` (type: `string`):

Management level of the role. Only applies when mode is 'Search jobs'.

## `jobWorkExperience` (type: `string`):

Required seniority/experience level. Only applies when mode is 'Search jobs'.

## `jobEducation` (type: `string`):

Required education level. Only applies when mode is 'Search jobs'.

## `jobOccupation` (type: `string`):

Top-level occupation category. Only applies when mode is 'Search jobs'. (Finn's 2nd-level sub-occupations, ~214 values, are not exposed — too large a set to keep as a stable enum; the top-level 84 filter correctly on their own.)

## `jobIndustry` (type: `string`):

Employer industry. Only applies when mode is 'Search jobs'.

## `jobApplicationDeadline` (type: `string`):

Filter by how soon the application deadline is. Only applies when mode is 'Search jobs'.

## `propertyType` (type: `string`):

Boligtype. Applies to both 'Search real estate' (for sale) and 'Search real estate for rent' (or their legs inside 'Search all categories').

## `realEstateLifecycle` (type: `string`):

Sale status of the listing. Only applies when mode is 'Search real estate' (for sale).

## `realEstateIsNewProperty` (type: `string`):

Filter new-build vs. resale homes. Only applies when mode is 'Search real estate' (for sale).

## `realEstateOwnershipType` (type: `string`):

Legal ownership form (eierform). Only applies when mode is 'Search real estate' (for sale).

## `realEstateEnergyLabel` (type: `string`):

Official energy rating (A best – G worst). Only applies when mode is 'Search real estate' (for sale).

## `realEstateFloor` (type: `string`):

Which floor the unit is on. Applies to both 'Search real estate' (for sale) and 'Search real estate for rent'.

## `realEstateFurnished` (type: `string`):

Furnished status. Only applies when mode is 'Search real estate for rent'.

## `realEstateAnimalsAllowed` (type: `string`):

Filter for rentals that explicitly allow pets. Only applies when mode is 'Search real estate for rent'.

## `realEstateMinBedrooms` (type: `string`):

Minimum number of bedrooms. Applies to both 'Search real estate for sale' and 'Search real estate for rent'.

## `realEstateSellerType` (type: `string`):

Filter by whether the listing is from a private seller or an estate broker. Only applies when mode is 'Search real estate for sale' (the rentals vertical does not expose this facet).

## `realEstateFacilities` (type: `array`):

Filter for properties with specific amenities (multi-select — a property matching ANY selected item is included). Applies to both 'Search real estate for sale' and 'Search real estate for rent'.

## `realEstateAreaSqmMin` (type: `integer`):

Minimum internal floor area in square metres. Applies to both real estate sale and rentals modes.

## `realEstateAreaSqmMax` (type: `integer`):

Maximum internal floor area in square metres. Applies to both real estate sale and rentals modes.

## `realEstateConstructionYearMin` (type: `integer`):

Minimum year the property was built. Only applies when mode is 'Search real estate for sale'.

## `realEstateConstructionYearMax` (type: `integer`):

Maximum year the property was built. Only applies when mode is 'Search real estate for sale'.

## `realEstatePlotSizeSqmMin` (type: `integer`):

Minimum plot/land size in square metres. Only applies when mode is 'Search real estate for sale'.

## `realEstatePlotSizeSqmMax` (type: `integer`):

Maximum plot/land size in square metres. Only applies when mode is 'Search real estate for sale'.

## `realEstateCommonCostMin` (type: `integer`):

Minimum shared/common monthly cost (fellesutgifter) in NOK. Only applies when mode is 'Search real estate for sale'.

## `realEstateCommonCostMax` (type: `integer`):

Maximum shared/common monthly cost (fellesutgifter) in NOK. Only applies when mode is 'Search real estate for sale'.

## `realEstateTotalPriceMin` (type: `integer`):

Minimum total price including any collective debt (totalpris). Only applies when mode is 'Search real estate for sale'.

## `realEstateTotalPriceMax` (type: `integer`):

Maximum total price including any collective debt (totalpris). Only applies when mode is 'Search real estate for sale'.

## `priceMin` (type: `integer`):

Minimum price in Norwegian Krone.

## `priceMax` (type: `integer`):

Maximum price in Norwegian Krone.

## `maxItems` (type: `integer`):

Maximum number of listings to return.

## Actor input object example

```json
{
  "mode": "searchItems",
  "query": "iPhone",
  "sortBy": "relevance",
  "location": "",
  "publishedToday": false,
  "category": "",
  "itemCondition": "",
  "tradeType": "",
  "forRent": "",
  "sellerType": "",
  "itemFreeShippingOnly": false,
  "carFuel": "",
  "carBodyType": "",
  "carTransmission": "",
  "carDealerSegment": "",
  "carWheelDrive": "",
  "carColour": "",
  "carSalesForm": "",
  "carRegistrationClass": "",
  "carWarrantyInsurance": "",
  "carDocumentation": "",
  "carWheelSets": "",
  "carEquipment": [],
  "carSmoothTrade": false,
  "mcType": "",
  "mcCondition": "",
  "mcFuel": "",
  "boatClass": "",
  "boatMotorType": "",
  "boatFuel": "",
  "boatMaterial": "",
  "truckSegment": "",
  "commercialDealerSegment": "",
  "busSegment": "",
  "constructionSegment": "",
  "agricultureToolsType": "",
  "caravanSegment": "",
  "rvCondition": "",
  "rvLocation": "",
  "rvSleepers": "",
  "caravanDealerSegment": "",
  "motorhomeSegment": "",
  "motorhomeSeats": "",
  "motorhomeTransmission": "",
  "motorhomeWheelDrive": "",
  "jobExtent": "",
  "jobDuration": "",
  "jobSector": "",
  "jobWorkingLanguage": "",
  "jobHomeOffice": "",
  "jobManagerRole": "",
  "jobWorkExperience": "",
  "jobEducation": "",
  "jobOccupation": "",
  "jobIndustry": "",
  "jobApplicationDeadline": "",
  "propertyType": "",
  "realEstateLifecycle": "",
  "realEstateIsNewProperty": "",
  "realEstateOwnershipType": "",
  "realEstateEnergyLabel": "",
  "realEstateFloor": "",
  "realEstateFurnished": "",
  "realEstateAnimalsAllowed": "",
  "realEstateMinBedrooms": "",
  "realEstateSellerType": "",
  "realEstateFacilities": [],
  "maxItems": 20
}
```

# Actor output Schema

## `listings` (type: `string`):

Dataset containing all scraped Finn.no listings.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "searchItems",
    "query": "iPhone",
    "sortBy": "relevance",
    "location": "",
    "publishedToday": false,
    "category": "",
    "itemCondition": "",
    "tradeType": "",
    "forRent": "",
    "sellerType": "",
    "itemFreeShippingOnly": false,
    "carFuel": "",
    "carBodyType": "",
    "carTransmission": "",
    "carDealerSegment": "",
    "carWheelDrive": "",
    "carColour": "",
    "carSalesForm": "",
    "carRegistrationClass": "",
    "carWarrantyInsurance": "",
    "carDocumentation": "",
    "carWheelSets": "",
    "carSmoothTrade": false,
    "mcType": "",
    "mcCondition": "",
    "mcFuel": "",
    "boatClass": "",
    "boatMotorType": "",
    "boatFuel": "",
    "boatMaterial": "",
    "truckSegment": "",
    "commercialDealerSegment": "",
    "busSegment": "",
    "constructionSegment": "",
    "agricultureToolsType": "",
    "caravanSegment": "",
    "rvCondition": "",
    "rvLocation": "",
    "rvSleepers": "",
    "caravanDealerSegment": "",
    "motorhomeSegment": "",
    "motorhomeSeats": "",
    "motorhomeTransmission": "",
    "motorhomeWheelDrive": "",
    "jobExtent": "",
    "jobDuration": "",
    "jobSector": "",
    "jobWorkingLanguage": "",
    "jobHomeOffice": "",
    "jobManagerRole": "",
    "jobWorkExperience": "",
    "jobEducation": "",
    "jobOccupation": "",
    "jobIndustry": "",
    "jobApplicationDeadline": "",
    "propertyType": "",
    "realEstateLifecycle": "",
    "realEstateIsNewProperty": "",
    "realEstateOwnershipType": "",
    "realEstateEnergyLabel": "",
    "realEstateFloor": "",
    "realEstateFurnished": "",
    "realEstateAnimalsAllowed": "",
    "realEstateMinBedrooms": "",
    "realEstateSellerType": "",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/finn-no-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "searchItems",
    "query": "iPhone",
    "sortBy": "relevance",
    "location": "",
    "publishedToday": False,
    "category": "",
    "itemCondition": "",
    "tradeType": "",
    "forRent": "",
    "sellerType": "",
    "itemFreeShippingOnly": False,
    "carFuel": "",
    "carBodyType": "",
    "carTransmission": "",
    "carDealerSegment": "",
    "carWheelDrive": "",
    "carColour": "",
    "carSalesForm": "",
    "carRegistrationClass": "",
    "carWarrantyInsurance": "",
    "carDocumentation": "",
    "carWheelSets": "",
    "carSmoothTrade": False,
    "mcType": "",
    "mcCondition": "",
    "mcFuel": "",
    "boatClass": "",
    "boatMotorType": "",
    "boatFuel": "",
    "boatMaterial": "",
    "truckSegment": "",
    "commercialDealerSegment": "",
    "busSegment": "",
    "constructionSegment": "",
    "agricultureToolsType": "",
    "caravanSegment": "",
    "rvCondition": "",
    "rvLocation": "",
    "rvSleepers": "",
    "caravanDealerSegment": "",
    "motorhomeSegment": "",
    "motorhomeSeats": "",
    "motorhomeTransmission": "",
    "motorhomeWheelDrive": "",
    "jobExtent": "",
    "jobDuration": "",
    "jobSector": "",
    "jobWorkingLanguage": "",
    "jobHomeOffice": "",
    "jobManagerRole": "",
    "jobWorkExperience": "",
    "jobEducation": "",
    "jobOccupation": "",
    "jobIndustry": "",
    "jobApplicationDeadline": "",
    "propertyType": "",
    "realEstateLifecycle": "",
    "realEstateIsNewProperty": "",
    "realEstateOwnershipType": "",
    "realEstateEnergyLabel": "",
    "realEstateFloor": "",
    "realEstateFurnished": "",
    "realEstateAnimalsAllowed": "",
    "realEstateMinBedrooms": "",
    "realEstateSellerType": "",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/finn-no-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "searchItems",
  "query": "iPhone",
  "sortBy": "relevance",
  "location": "",
  "publishedToday": false,
  "category": "",
  "itemCondition": "",
  "tradeType": "",
  "forRent": "",
  "sellerType": "",
  "itemFreeShippingOnly": false,
  "carFuel": "",
  "carBodyType": "",
  "carTransmission": "",
  "carDealerSegment": "",
  "carWheelDrive": "",
  "carColour": "",
  "carSalesForm": "",
  "carRegistrationClass": "",
  "carWarrantyInsurance": "",
  "carDocumentation": "",
  "carWheelSets": "",
  "carSmoothTrade": false,
  "mcType": "",
  "mcCondition": "",
  "mcFuel": "",
  "boatClass": "",
  "boatMotorType": "",
  "boatFuel": "",
  "boatMaterial": "",
  "truckSegment": "",
  "commercialDealerSegment": "",
  "busSegment": "",
  "constructionSegment": "",
  "agricultureToolsType": "",
  "caravanSegment": "",
  "rvCondition": "",
  "rvLocation": "",
  "rvSleepers": "",
  "caravanDealerSegment": "",
  "motorhomeSegment": "",
  "motorhomeSeats": "",
  "motorhomeTransmission": "",
  "motorhomeWheelDrive": "",
  "jobExtent": "",
  "jobDuration": "",
  "jobSector": "",
  "jobWorkingLanguage": "",
  "jobHomeOffice": "",
  "jobManagerRole": "",
  "jobWorkExperience": "",
  "jobEducation": "",
  "jobOccupation": "",
  "jobIndustry": "",
  "jobApplicationDeadline": "",
  "propertyType": "",
  "realEstateLifecycle": "",
  "realEstateIsNewProperty": "",
  "realEstateOwnershipType": "",
  "realEstateEnergyLabel": "",
  "realEstateFloor": "",
  "realEstateFurnished": "",
  "realEstateAnimalsAllowed": "",
  "realEstateMinBedrooms": "",
  "realEstateSellerType": "",
  "maxItems": 20
}' |
apify call crawlerbros/finn-no-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawlerbros/finn-no-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NPdSEdxeVKyx5XCzS/builds/WRoqoTJQ23hCRVTnJ/openapi.json
