# Finn.no Marketplace Listings API

> Second-hand listings from Finn.no search results, with title, price, currency, condition, location, image and listing link.

- Page: https://cleanedweb.com/catalog/finn-no-marketplace-listings-api/
- Contract (JSON): https://cleanedweb.com/catalog/finn-no-marketplace-listings-api/contract.json
- Source: finn.no (https://www.finn.no/)
- Category: Commerce
- Countries: Norway
- Languages: Norwegian Bokmål
- Updated: 2026-10-26

## About

Finn.no is a large Norwegian classifieds site. This API reads its marketplace search results and returns a record for each ad: title, price, currency, condition, brand, location, image and link.

Prices are in the currency the ad uses, and condition comes as a code such as UsedCondition. Search text, category, location, condition, price range and sort order are inputs, so one run can follow a single search.

## Typical uses

- Compare asking prices for a second-hand item.
- Watch for new ads that match a search.
- Collect ad data for market research.

## Limitations

- Send your own search term: without one this API reads its default search, leica m6.
- Dates are returned as the source writes them, such as 21. sep.
- Runs return each ad's location and the seller details the source shows. The sample on this page leaves them out.

A run reads until the source ends or your `max_items`, `timeout_seconds` or budget stops it.

## Key fields

| Field | Type | Sample value |
| --- | --- | --- |
| `title` | string | `Leica M6 sølv fra 1997` |
| `price` | integer | `27500` |
| `currency` | string | `NOK` |
| `brand` | string | `Leica` |
| `date` | string | `21. sep.` |
| `condition` | string | `UsedCondition` |
| `url` | string | `https://www.finn.no/recommerce/forsale/item/476978009` |
| `location` | string | not in the saved sample |

Sample values come from one saved record, not a live run. Every field with its type, and the schemas, are in https://cleanedweb.com/catalog/finn-no-marketplace-listings-api/contract.json. Some fields the source returns are not published, so a record can carry fields the schema does not list.

## Inputs

- `search` (string): Optional. Text for the site's search box. Leave it out to use the default: leica m6.
- `category` (string \| number): Optional. Filters by the site's category control. Options: Elektronikk og hvitevarer (0.93), Antikviteter og kunst (0.76), Dyr og utstyr (0.77), Foreldre og barn (0.68), Fritid, hobby og underholdning (0.86), Hage, oppussing og hus (0.67), Klær, kosmetikk og tilbehør (0.71), Møbler og interiør (0.78), and 616 more in https://cleanedweb.com/catalog/finn-no-marketplace-listings-api/contract.json.
- `shipping_types` (string \| number): Optional. Filters by the site's shipping types control. Options: Fiks ferdig (0), Gratis frakt (1).
- `location` (string \| number): Optional. Filters by the site's location control. Options: Østfold (0.20002), Akershus (0.20003), Buskerud (0.20007), Vestfold (0.20008), Telemark (0.20009), Rogaland (0.20012), Møre og Romsdal (0.20015), Trøndelag (0.20016), and 462 more in https://cleanedweb.com/catalog/finn-no-marketplace-listings-api/contract.json.
- `condition` (string \| number): Optional. Filters by the site's condition control. Options: Helt ny - Uåpnet/med lapp (1), Som ny - Ikke synlig brukt (2), Pent brukt - I god stand (3), Godt brukt - Synlig brukt (4), Må fikses - Noen mangler/ødelagte deler (5).
- `dealer_segment` (string \| number): Optional. Filters by the site's dealer segment control. Options: Forhandler (3), Privat (1).
- `trade_type` (string \| number): Optional. Filters by the site's trade type control. Options: Til salgs (1), Gis bort (2), Ønskes kjøpt (3).
- `for_rent` (string \| number): Optional. Filters by the site's for rent control. Options: Kjøp (0), Leie (1).
- `price_from` (string \| integer): Optional. Filters by the site's price from control.
- `price_to` (string \| integer): Optional. Filters by the site's price to control.
- `sort` (string): Order of the collection, as the site's own sort control offers it; omitted keeps the site's default order. Options: Eldste først (PUBLISHED_ASC), Mest relevant (RELEVANCE), Nyeste først (PUBLISHED_DESC), Pris høy-lav (PRICE_DESC), Pris lav-høy (PRICE_ASC).

`enrich_records` is on by default and adds the fields that only appear on each record's detail page. Send `false` to read list fields only. See https://cleanedweb.com/docs/run-api/

## Request

`POST https://broker.cleanedweb.com/v1/catalog/public/apis/generated_0b974ba7e96c29dcb3c48382/endpoints/generated_0b974ba7e96c29dcb3c48382_search/run`

```bash
curl -X POST https://broker.cleanedweb.com/v1/catalog/public/apis/generated_0b974ba7e96c29dcb3c48382/endpoints/generated_0b974ba7e96c29dcb3c48382_search/run \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: UNIQUE_REQUEST_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "category": "0.93"
  },
  "max_items": 25
}'
```

Send an `Idempotency-Key` header with every run and save it before you send. Reuse it only to retry the same request. If the run does not end within `wait_seconds`, read the result with the same API key and key:

`GET https://broker.cleanedweb.com/v1/catalog/public/apis/generated_0b974ba7e96c29dcb3c48382/endpoints/generated_0b974ba7e96c29dcb3c48382_search/result`

## Run it

Reading the catalog needs no credential. Running needs a CleanedWeb account and an API key with the `run` scope; the first 5,000 records are free, then $1 per 1,000 records. See https://cleanedweb.com/docs/run-catalog-api/

CleanedWeb is not affiliated with Finn.no.
