FINN Property Sales Scraper avatar

FINN Property Sales Scraper

Pricing

from $4.13 / 1,000 discovery pages

Go to Apify Store
FINN Property Sales Scraper

FINN Property Sales Scraper

Find properties for sale on FINN.no and collect structured listing and property details for market research, lead discovery, comparisons, and data workflows.

Pricing

from $4.13 / 1,000 discovery pages

Rating

0.0

(0)

Developer

Crawl Stone

Crawl Stone

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

We built FINN Property Sales Scraper to provide a straightforward, query-based way to discover property listings in Norway and retrieve structured details for specific real estate. Whether you are running regional price-per-square-meter analyses, collecting lead listings, or feeding property data directly into your integrations, this Actor delivers structured datasets directly from FINN.no on-demand.

Unofficial Actor: This is an independent tool and is not affiliated with, authorized, or endorsed by FINN.no.


From Search to Listing Analysis: The Customer Journey

The Actor is designed around a three-stage workflow that matches how you explore a real estate market: discover listings, refine your search boundaries, and retrieve details for individual properties.

Stage 1: Discover the Market (discover view)

Start by identifying listings across categories. The Actor supports six category-specific discovery modes to return a clean, compact snapshot of listings:

  • discoverHomes — apartments, houses, terraced homes, and residential properties.
  • discoverNewBuildings — new residential projects and individual new-build units.
  • discoverLeisureHomes — cabins, cottages, and holiday homes.
  • discoverAbroad — international properties listed on the Norwegian market.
  • discoverPlots — residential plots and building land.
  • discoverLeisurePlots — holiday home plots and undeveloped leisure land.

Discovery Mechanics: To keep execution predictable and lightweight, discovery fetches exactly one selected page (pages 1–50) per run and does not automatically paginate. Each successful run emits exactly one Dataset row containing a nested results array of compact listings. This preserves the original source ordering and duplicate occurrences without deduplication.

You can group search refinements by your data requirements in the Apify Store form:

  • Core Search: Filter by free-text search (query), listing recency (publishedToday), and page numbers (page).
  • Financial Filters: Refine using range filters for asking price, total price, and monthly common costs.
  • Physical Filters: Target specific sizes, plot areas, construction years, bedroom counts, or energy labels.
  • Geographic Filters: Use standard location taxonomy codes, or run geographical boundary searches. Define your target area using either mapAreaRadius (defining a center latitude/longitude and a radius in meters) or mapAreaPolygon (requiring at least three coordinates, repeating the first point last to close the boundary). Note that radius and polygon options are mutually exclusive—use one or the other, not both.

Stage 3: Retrieve Property Details (propertyDetail view)

Once you have identified a listing's canonicalUrl from a discovery run, transition to collecting its details using propertyDetail.

Provide exactly one supported, canonical FINN property-sale URL. The Actor maps the page layout into one of eleven strict detail families identified by detailType:

  • Residential: home, plannedProperty
  • New Developments: newBuildingProject, newBuildingUnit, newBuildingSingle
  • Leisure Properties: leisureHome, newLeisureProject, newLeisureUnit
  • Land Plots: plot, leisurePlot
  • International: abroadProperty

Unlike the compact discovery results, a saved property-detail row extracts richer facts directly from the listing. Depending on what the seller has provided and what the specific detail family supports, this may include transaction cost breakdowns, room counts, cadastral registry numbers, viewing schedules, contact details, coordinates, and description texts.


Quick Start

  1. Click Try for free on the Actor page.
  2. Select your desired Mode (the prefilled default is discoverHomes).
  3. Set your search terms, location, or range filters.
  4. Click Start.
  5. View or download your results in the Dataset tab.

For your first run, you can use the prefilled homes search on page 1:

{
"mode": "discoverHomes",
"page": 1
}

If no listings match your query, the run succeeds with a valid empty results array ("results": []).


URL Requirements for Detailed Inspection

When running the propertyDetail mode, the input URL must be a clean, canonical HTTPS link pointing to a supported FINN property-sale page.

  • Canonical Format: Must start with https://www.finn.no/realestate/ and end with the file name ad.html?finnkode= followed by a positive numerical ID (e.g., https://www.finn.no/realestate/homes/ad.html?finnkode=123456789).
  • Query Parameter Rules: Do not include any additional query parameters (such as &orgId=... or &clickSource=...) or hash fragments (like #section) beyond the single positive finnkode.
  • Supported Routes: The URL path segment must match a supported FINN real estate route, including /homes/, /project/, /projectsingle/, /projectunit/, /planned/, /projectleisure/, /projectunitleisure/, /leisuresale/, /abroad/, or /plots/.
  • Single URL: The detail mode accepts exactly one URL per run. To analyze multiple properties, schedule separate runs using Apify Tasks or your own client pipeline.

Data Structure & Examples

The Dataset output is organized under two distinct views: discover and propertyDetail. Tabular exports (like CSV or Excel) flatten nested structures, whereas JSON exports preserve the raw relationships.

Discover View Envelope

Each successful discovery run produces exactly one Dataset row containing the page metadata and the nested array of listings.

This is an abridged preview of selected fields, not a complete schema-valid Dataset row.

{
"page": 1,
"lastPage": 18,
"resultCount": 50,
"matchCount": 874,
"groupCount": 0,
"results": [
{
"finnCode": "320495810",
"sourceType": "realestate",
"detailType": "home",
"canonicalUrl": "https://www.finn.no/realestate/homes/ad.html?finnkode=320495810",
"title": "Lys og innbydende 3-roms selveierleilighet",
"location": "Oslo",
"askingPrice": {
"amount": 5450000,
"currencyCode": "NOK"
},
"area": {
"size": 68,
"unit": "m²"
}
}
]
}

Understanding the Metadata & Results

  • Page & Last Page: page represents the page returned. lastPage is FINN's reported last page capped at 50.
  • Search Counts: matchCount is FINN's reported total matching result count, and groupCount is FINN's reported grouped-result count.
  • Source Preservation: The Actor preserves exact source values, original ordering, and repeated listings. Confirmed zero, false, or empty arrays are explicitly serialized, while unknown or missing optional fields are omitted instead of guessed.

Pricing & Proxies

Managed Proxies & Billing

FINN requests use the managed Norway residential proxy automatically. Platform compute and managed proxy expenses are fully included in the Actor's price; there is no customer proxy configuration or separate platform/proxy fee to manage.

You pay strictly for successful operations using Apify’s Pay Per Event (PPE) model:

  • discover-page — charged once per successful discovery page saved. This includes valid empty pages (which save a valid envelope with results: []).
  • property-detail — charged once per successfully saved property-detail row.

Failed Operations:

If a scraping operation fails due to network errors or source unavailability, or if a Dataset-save failure occurs, the run terminates, no Dataset row is written, and you are not charged a PPE event. No synthetic error rows are produced.

Please check the Actor's Pricing tab for current custom PPE event rates.


Use with Apify MCP

If you integrate property data into AI assistant workflows, you can connect this Actor directly to compatible Model Context Protocol (MCP) clients (such as Claude Desktop):

https://mcp.apify.com?tools=crawlstone/finn-property-sales-scraper

Once connected, you can discover local listings, filter real estate options, and retrieve property details using natural language query patterns.


Frequently Asked Questions

Can I retrieve multiple pages or analyze multiple URLs in one run?

No. To keep execution lightweight and predictable, each discovery run fetches exactly one page (with page inputs supported up to page 50) and each detail run accepts exactly one canonical URL. To collect multiple available pages or analyze a list of discovered URLs, configure successive runs using Apify Tasks, Schedules with prepared inputs, API clients, or user-owned automation.

Does discovery return the same details as property detail?

No. Discovery results are compact and optimized for high-level search and screening. If you need rich interior details, transaction fees, and contact information, extract the canonicalUrl from the discovery results and feed it to a run in propertyDetail mode.

What happens if a discovery page has no matching listings?

If no listings match your query, the run completes successfully and saves one row with an empty "results": [] array. Because this represents a completed search operation, it charges exactly one discover-page event.

Why are some fields missing from my results?

FINN listings are highly unstructured, and many details (such as construction year or common debt) are optional and do not apply to all property types. To preserve the source's integrity, missing fields are omitted from the row rather than guessed or padded with placeholders, while verified numeric zeros and boolean flags are explicitly serialized.

Does the Actor remove duplicate listings?

No. Results remain in their original source order, preserving any repeated listings or duplicate advertisements exactly as returned by FINN.


Support

If you need assistance, please open a ticket on this Actor's Discussion tab in the Apify Console and include:

  • Your Apify Run ID.
  • The selected Mode and the Input parameters you provided.
  • A clear description of what you expected versus what occurred.

To protect your account security, please do not share your Apify API Token or proxy credentials in public support tickets.