# Finn.no Scraper - Norwegian Classifieds, Cars & Real Estate (`studio-amba/finn-no-scraper`) Actor

Scrape listings from Finn.no, Norway's dominant marketplace with 80% market share. Search classifieds, real estate, cars, and jobs. Extract titles, prices, locations, images, and seller info. Fast JSON API — no login or cookies required.

- **URL**: https://apify.com/studio-amba/finn-no-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 listings from Finn.no, Norway's dominant classifieds platform with 80% market share — covering items for sale, real estate, cars, and jobs.

### Why use this actor?

Finn.no is the go-to marketplace in Norway for buying, selling, and renting. This actor lets you extract structured listing data across all major categories — perfect for market research, price monitoring, competitor analysis, and lead generation in the Norwegian market. No login or cookies required.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | String | No | Search term (e.g. "laptop", "Tesla Model 3") |
| `category` | String | No | `bap` (classifieds), `realestate`, `car`, or `job`. Default: `bap` |
| `location` | String | No | Filter by location (e.g. "Oslo", "Bergen") |
| `minPrice` | Integer | No | Minimum price in NOK |
| `maxPrice` | Integer | No | Maximum price in NOK |
| `sortBy` | String | No | `RELEVANCE`, `PUBLISHED_DESC`, `PRICE_ASC`, or `PRICE_DESC` |
| `maxResults` | Integer | No | Maximum results to return (default: 100) |
| `proxyConfiguration` | Object | No | Proxy settings (datacenter proxies usually work) |

### Output

Each result contains:

| Field | Type | Example |
|-------|------|---------|
| `itemId` | String | `"458797910"` |
| `title` | String | `"Microsoft Surface Laptop 12Core"` |
| `description` | String | `"Til salgs"` |
| `price` | Number | `11000` |
| `currency` | String | `"NOK"` |
| `priceType` | String | `"kr"` |
| `location` | String | `"Fitjar"` |
| `category` | String | `"Classifieds"` |
| `subcategory` | String | `"Microsoft"` |
| `imageUrl` | String | Main listing image URL |
| `imageUrls` | Array | All listing image URLs |
| `sellerName` | String | `"Privat"` |
| `sellerType` | String | `"private"` or `"dealer"` |
| `url` | String | Full URL to the listing |
| `scrapedAt` | String | `"2026-04-06T10:30:00.000Z"` |

### Example output

```json
{
    "itemId": "458797910",
    "title": "Microsoft Surface Laptop 12Core",
    "description": "Til salgs",
    "price": 11000,
    "currency": "NOK",
    "priceType": "kr",
    "location": "Fitjar",
    "category": "Classifieds",
    "subcategory": "Microsoft",
    "imageUrl": "https://images.finncdn.no/dynamic/default/item/458797910/d8e4cd6b-b096-4ac4-9042-134ff68f4ba2",
    "imageUrls": [
        "https://images.finncdn.no/dynamic/default/item/458797910/d8e4cd6b-b096-4ac4-9042-134ff68f4ba2",
        "https://images.finncdn.no/dynamic/default/item/458797910/75453a11-1d27-4467-af99-610168f86b9a"
    ],
    "sellerName": "Privat",
    "sellerType": "private",
    "url": "https://www.finn.no/recommerce/forsale/item/458797910",
    "scrapedAt": "2026-04-06T10:30:00.000Z"
}
````

### Cost estimate

This actor uses Finn.no's fast JSON API, making it very efficient. Approximately **0.05 compute units per 1,000 results**. At standard Apify pricing, that's roughly **$0.02 per 1,000 listings**.

### Limitations

- Real estate, car, and job categories use the same API pattern but some may have different search key requirements — classifieds (bap) is the most reliable
- Location filtering uses text matching — use Norwegian location names for best results
- Price filters may not apply to all categories (e.g. jobs)
- Data is scraped from the public Finn.no API and may change without notice
- Respect the website's terms of service and use responsibly

# Actor input Schema

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

Search term (e.g. 'laptop', 'sofa', 'Tesla Model 3'). Leave empty to browse all listings in the selected category.

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

Which Finn.no category to search.

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

Filter by location name (e.g. 'Oslo', 'Bergen', 'Trondheim'). Leave empty for all of Norway.

## `minPrice` (type: `integer`):

Minimum price filter in Norwegian kroner.

## `maxPrice` (type: `integer`):

Maximum price filter in Norwegian kroner.

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

How to sort results.

## `maxResults` (type: `integer`):

Maximum number of listings to scrape. Each API page returns ~50 results.

## `proxyConfiguration` (type: `object`):

Proxy settings. Datacenter proxies usually work fine for Finn.no.

## Actor input object example

```json
{
  "query": "laptop",
  "category": "bap",
  "sortBy": "RELEVANCE",
  "maxResults": 100
}
```

# 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 = {
    "query": "laptop"
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/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 = { "query": "laptop" }

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

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

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

```

## CLI example

```bash
echo '{
  "query": "laptop"
}' |
apify call studio-amba/finn-no-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=studio-amba/finn-no-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Finn.no Scraper - Norwegian Classifieds, Cars & Real Estate",
        "description": "Scrape listings from Finn.no, Norway's dominant marketplace with 80% market share. Search classifieds, real estate, cars, and jobs. Extract titles, prices, locations, images, and seller info. Fast JSON API — no login or cookies required.",
        "version": "0.1",
        "x-build-id": "RANkxv3oACcuxJKB0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~finn-no-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-finn-no-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/studio-amba~finn-no-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-finn-no-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/studio-amba~finn-no-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-finn-no-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search term (e.g. 'laptop', 'sofa', 'Tesla Model 3'). Leave empty to browse all listings in the selected category."
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "bap",
                            "realestate",
                            "car",
                            "job"
                        ],
                        "type": "string",
                        "description": "Which Finn.no category to search.",
                        "default": "bap"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Filter by location name (e.g. 'Oslo', 'Bergen', 'Trondheim'). Leave empty for all of Norway."
                    },
                    "minPrice": {
                        "title": "Minimum Price (NOK)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price filter in Norwegian kroner."
                    },
                    "maxPrice": {
                        "title": "Maximum Price (NOK)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price filter in Norwegian kroner."
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "RELEVANCE",
                            "PUBLISHED_DESC",
                            "PRICE_ASC",
                            "PRICE_DESC"
                        ],
                        "type": "string",
                        "description": "How to sort results.",
                        "default": "RELEVANCE"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of listings to scrape. Each API page returns ~50 results.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Datacenter proxies usually work fine for Finn.no."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
