Finn.no Real Estate Scraper avatar

Finn.no Real Estate Scraper

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Finn.no Real Estate Scraper

Finn.no Real Estate Scraper

Scrape Norwegian real-estate listings from Finn.no with search URL or filter-based discovery, optional full details and broker contact info.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

Data Scrapers

Data Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Finn.no Real Estate Scraper creates a structured dataset of Norwegian home listings collected from Finn.no. Each dataset item can include the listing id, title, location, asking and total price, usable area, rooms, property type, ownership, energy label, broker organisation, and publication time. Query the source with a Finn search URL or with filters for area, price, size, and housing type. Control the result limit with maxItems, and optionally request full listing details or broker contact. Retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Finn.no Real Estate Scraper — search to structured listings

Dataset at a glance

PropertyValue
Sourcefinn.no
Record unitOne home listing
Input methodsstartUrls, or filters such as locations, price, and propertyTypes
Main identifiersid, url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML
Update modelFresh records per Actor run
Pricing$1.00 per 1,000 listings. Detail and broker events are $2.00 per 1,000. Platform usage is billed separately.

Coverage and available records

The Actor collects homes for sale from Finn.no. A startUrls entry is a Finn homes search URL. When no start URL is set, the Actor builds a search from the filter fields. maxItems stops the run after that many saved listings. 0 is not used; the schema default is 50.

scrapeDetails loads the listing page and charges detailed-listing when that page is saved. includeContactInfo charges broker-info when a contact block is saved. Search-card rows have source other than detail and do not include the detail-only fields. Sold, rental, and commercial Finn sections outside the homes search are not collected by this input.

Data dictionary

FieldTypeNullableDescriptionExample
idstringnoFinn listing code. Deduplication key.470675677
urlstringyesPublic listing pagehttps://www.finn.no/realestate/homes/ad.html?finnkode=470675677
titlestringyesListing titleEnebolig med 3 soverom
locationstringyesAddress textSkøelvdalen 231, 9310 Sørreisa
priceSuggestionnumberyesAsking price, NOK1250000
priceTotalnumberyesTotal price, NOK1282340
priceSharedCostnumberyesShared monthly cost, NOK0
areaUsablenumberyesUsable area, square meters172
bedroomsnumberyesBedroom count3
roomsnumberyesRoom count4
propertyTypestringyesHousing typeEnebolig
ownershipTypestringyesOwnershipSelveier
constructionYearnumberyesYear built1958
energyLabelstringyesEnergy labelE
organisationNamestringyesBroker organisationEiendomsMegler 1 Finnsnes
publishedAtstringyesPublication time, ISO-86012026-07-24T17:42:00+00:00
imageUrlstringyesPrimary imagehttps://images.finncdn.no/dynamic/default/2026/7/vertical-2/24/7/470/675/677_8685aebe-5ba0-4089-aa60-1321d855748a.jpg
latitudenumberyesLatitude69.11598
longitudenumberyesLongitude18.01850
sourcestringyesdetail when the listing page was fetcheddetail

Example dataset record

{
"id": "470675677",
"url": "https://www.finn.no/realestate/homes/ad.html?finnkode=470675677",
"title": "Enebolig med 3 soverom | Balkong, terrasse og garasje | Ligger landlig til i Skøelvdalen",
"location": "Skøelvdalen 231, 9310 Sørreisa",
"priceSuggestion": 1250000,
"priceTotal": 1282340,
"priceSharedCost": 0,
"areaUsable": 172,
"bedrooms": 3,
"rooms": 4,
"propertyType": "Enebolig",
"ownershipType": "Selveier",
"constructionYear": 1958,
"energyLabel": "E",
"organisationName": "EiendomsMegler 1 Finnsnes",
"publishedAt": "2026-07-24T17:42:00+00:00",
"imageUrl": "https://images.finncdn.no/dynamic/default/2026/7/vertical-2/24/7/470/675/677_8685aebe-5ba0-4089-aa60-1321d855748a.jpg",
"latitude": 69.11598185054471,
"longitude": 18.018504483094624,
"source": "detail"
}

This row came from a Finn homes search for location code 0.20061 with scrapeDetails enabled.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
startUrlsarraynoemptyFinn homes search URLsDirect search pages. Used ahead of the filter fields.
searchQuerystringnoemptyFree textKeyword on the homes search.
publishedTodaybooleannofalsetrue, falseLimit to listings published today.
locationsarraynoemptyFinn area idsCounties or areas.
saleStatusarraynoemptySchema enumSale status filter.
propertyConditionstringnoemptySchema enumCondition filter.
priceFromintegernoemptyNOKMinimum asking price.
priceTointegernoemptyNOKMaximum asking price.
totalPriceFromintegernoemptyNOKMinimum total price.
totalPriceTointegernoemptyNOKMaximum total price.
sharedCostFromintegernoemptyNOKMinimum shared monthly cost.
sharedCostTointegernoemptyNOKMaximum shared monthly cost.
areaFromintegernoemptySquare metersMinimum usable area.
areaTointegernoemptySquare metersMaximum usable area.
minBedroomsintegernoemptyIntegerMinimum bedrooms.
constructionYearFromintegernoemptyYearOldest year built.
constructionYearTointegernoemptyYearNewest year built.
plotAreaFromintegernoemptySquare metersMinimum plot size.
plotAreaTointegernoemptySquare metersMaximum plot size.
propertyTypesarraynoemptySchema enumHousing types.
ownershipTypesarraynoemptySchema enumOwnership types.
sellerTypesarraynoemptySchema enumPrivate or broker.
facilitiesarraynoemptySchema enumFacility filters.
energyLabelsarraynoemptySchema enumEnergy labels.
floorsarraynoemptySchema enumFloor filters.
videoTypesarraynoemptySchema enumDigital viewing filters.
scrapeDetailsbooleannofalsetrue, falseFetch each listing page. Charges detailed-listing.
includeContactInfobooleannofalsetrue, falseSave broker contact when present. Charges broker-info.
maxItemsintegerno500 or a positive integerMaximum listings saved.
proxyConfigurationobjectnoApify residentialApify proxy inputProxy used for Finn requests.

Minimal request:

{
"startUrls": [{ "url": "https://www.finn.no/realestate/homes/search.html?location=0.20061" }],
"maxItems": 5
}

Retrieve the data through the API

Start the Actor with JSON input, wait for the run, then read the default dataset. Other languages are on the Actor API tab.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("datascrapers/finn-no-scraper").call(run_input={
"startUrls": [{"url": "https://www.finn.no/realestate/homes/search.html?location=0.20061"}],
"maxItems": 5,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["id"], item.get("priceSuggestion"))

Data quality and record handling

Use id as the deduplication key. A search-card row and a later detail row for the same Finn code share that id. Prices are numeric NOK amounts, not formatted strings. publishedAt is an ISO-8601 timestamp. A listing page that fails is skipped and is not saved. Contact blocks can include an organisation name. Person names from those blocks are not part of the example above.

Pricing and cost examples

EventFreeBronzeSilverGold
dataset-item$1.00$1.00$1.00$1.00
detailed-listing$2.00$2.00$2.00$2.00
broker-info$2.00$2.00$2.00$2.00

Prices are per 1,000 events. Platinum and Diamond use the Gold price. Platform usage is billed separately. A run that saves 1,000 search cards costs $1.00 before platform usage. The same run with details and broker contact, when both succeed, also charges 1,000 detailed-listing events and 1,000 broker-info events.

Limitations and responsible data use

Finn can change search markup, require a proxy, or omit fields on some listings. Results are a snapshot of one run, not a historical archive. Use the data under Finn.no's terms and applicable privacy rules. Do not treat missing contact fields as proof that a listing has no broker.

Dataset questions

Can I search without a Finn URL?

Yes. Leave startUrls empty and set filters such as locations, priceFrom, priceTo, and propertyTypes.

When is a row a detail record?

source is detail after scrapeDetails saves the listing page. Search-card rows do not carry that source value.

Which field should I store as the key?

Store id. It is the Finn code in the listing URL.

Data Scrapers support

Questions about this dataset: stardustspotlight@gmail.com