Tori.fi Scraper - Finnish Classifieds Marketplace avatar

Tori.fi Scraper - Finnish Classifieds Marketplace

Pricing

from $2.00 / 1,000 a classified listings

Go to Apify Store
Tori.fi Scraper - Finnish Classifieds Marketplace

Tori.fi Scraper - Finnish Classifieds Marketplace

Scrape classified listings from Tori.fi, a Finnish online marketplace. Extract title, price, location, brand, condition, attributes and images. Optional detail pages add the full description, category path and all images. Pay per result.

Pricing

from $2.00 / 1,000 a classified listings

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Share

Tori.fi Scraper

Scrape classified listings from Tori.fi, the Finnish online classifieds marketplace. Paste any Tori.fi search URL with your filters applied and get one row per listing: title, price, location, brand, seller, image and posting age. Turn on details to add the condition, item attributes, full description, category path, all images and the last edit time.

What you can do with it

  • Track prices for a product, brand or category across Finland.
  • Monitor new listings in a city or region by saving a filtered search URL and running the actor on a schedule.
  • Build a price database for used goods (phones, bikes, furniture and more).
  • Collect seller names of businesses that advertise on Tori.fi.

Input

FieldTypeDefaultDescription
searchUrlsarray of stringsthe example search in the prefillTori.fi search URLs. Each URL is paginated automatically. A single URL as a string also works. If empty or missing, the example search from the prefill is used.
maxResultsinteger10Maximum listings in total across all URLs (0 = unlimited, max 10000).
maxResultsPerQueryinteger100Maximum listings per search URL (0 = unlimited, max 10000).
includeDetailsbooleanfalseOpen every listing page for the full description, category path, all images and the last edit time.

An empty input {} runs the example search and returns up to 10 listings. Numbers given as text ("50") are accepted.

Example: one search with details

{
"searchUrls": ["https://www.tori.fi/recommerce/forsale/search?q=iphone"],
"maxResults": 50,
"includeDetails": true
}

Example: several searches in one run

{
"searchUrls": [
"https://www.tori.fi/recommerce/forsale/search?q=iphone",
"https://www.tori.fi/recommerce/forsale/search?category=0.93&condition=1&location=0.100013&price_to=150"
],
"maxResults": 200,
"maxResultsPerQuery": 100
}

Example: quick scan without details

{
"searchUrls": ["https://www.tori.fi/recommerce/forsale/search?q=polkupyora"],
"maxResults": 40
}

Supported URL formats

URLExample
Keyword searchhttps://www.tori.fi/recommerce/forsale/search?q=iphone
Search with filters (category, location, condition, price)https://www.tori.fi/recommerce/forsale/search?category=0.93&condition=1&location=0.100013&price_to=150

Set the filters on tori.fi, then copy the address bar. A page parameter in the URL is ignored, paging starts at page 1.

Output

Each row is one listing. Fields marked "details" are empty unless includeDetails is on.

FieldTypeDescription
idstringTori listing ID
titlestringListing title
descriptionstring or nullListing text (details)
pricenumber or nullPrice
currencystring or nullCurrency code, EUR
locationstring or nullArea and city as shown on the card, e.g. Karjasilta, Oulu
categorystring or nullCategory path, e.g. Elektroniikka ja kodinkoneet > Puhelimet ja tarvikkeet > Matkapuhelimet (details)
brandstring or nullBrand, when the listing has one
conditionstring or nullCondition from the listing's Kunto chip: New, Like new, Good, Fair, Poor (details)
condition_textstring or nullThe Kunto label exactly as the site shows it, e.g. Kuin uusi, Hyvä (details)
image_urlstring or nullMain image URL
image_urlsarrayImage URLs: one without details, all listing images with details
sellerstring or nullSeller name when the card shows one. Private sellers usually show no name
posted_atstring or nullApproximate ISO timestamp computed from the age on the card
posted_at_textstring or nullAge exactly as the card shows it: 15 min, 3 t (hours), 2 pv (days), 1 vk (weeks), 1 kk (months)
edited_atstring or nullLast edit time of the listing, ISO (details)
attributesobject or nullItem chips as label to value, e.g. Kunto, Merkki, Muisti, Malli. The labels depend on the category (details)
source_urlstringLink to the listing on Tori.fi
search_querystring or nullThe search URL that produced the row
scraped_atstringISO timestamp of the scrape

posted_at is rounded to the unit the site shows, so "3 t" means about three hours ago. Use edited_at with details when you need an exact time.

Sample row

{
"id": "49057887",
"title": "APPLE IPHONE 14 128GB ( VALKONEN )",
"description": "Moikka! olisi minulle jäänyt alle viikko sitten täysin ylimääräseksi tämä kyseinen iphone 14 ...",
"price": 300,
"currency": "EUR",
"location": "Viitasaari Keskus, Viitasaari",
"category": "Elektroniikka ja kodinkoneet > Puhelimet ja tarvikkeet > Matkapuhelimet",
"brand": "Apple",
"condition": "Good",
"condition_text": "Hyvä",
"image_url": "https://img.tori.net/dynamic/1280w/item/49057887/3e88d0bd-ece8-4f45-8473-a0d9731bc25d",
"image_urls": ["https://img.tori.net/dynamic/default/item/49057887/3e88d0bd-ece8-4f45-8473-a0d9731bc25d"],
"seller": null,
"posted_at": "2026-10-26T03:44:31.294Z",
"posted_at_text": "3 t",
"edited_at": "2026-10-26T03:26:04.217Z",
"attributes": {"Kunto": "Hyvä", "Merkki": "Apple", "Muisti": "128 GB", "Malli": "iPhone 14/Mini/Plus/Pro/Max"},
"source_url": "https://www.tori.fi/recommerce/forsale/item/49057887",
"search_query": "https://www.tori.fi/recommerce/forsale/search?q=iphone",
"scraped_at": "2026-10-26T06:44:31.294Z"
}

Pricing

Pay per event. You pay a small start fee per run plus one event per listing. A listing is charged once, at the basic or the detail rate.

EventCostTriggered by
Run start$0.001 per runEach run
directory-serp-result$0.002 per listingEach listing delivered without details
directory-detail-result$0.005 per listingEach listing delivered with includeDetails on (instead of the basic event)

100 listings = $0.201 without details, $0.501 with details.

The actor stops delivering when your run's maximum total charge is reached and ends with the status "Stopped at the max charge limit. N listings delivered." You are never charged for listings that were not delivered.

Use with AI agents (MCP)

Connect this actor to any MCP-compatible AI client. Add the Apify MCP server to your client configuration:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apify.com/?tools=santamaria-automations/tori-fi-scraper",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}

You can also copy the setup from the MCP tab of this actor in the Apify Console.

Example prompt: "Use tori-fi-scraper to list the 30 newest used iPhone 13 listings in Helsinki under 300 EUR and show them as a table."

FAQ

How do I get a search URL? Open tori.fi, search and set your filters, then copy the URL from the address bar.

Why is seller empty on many rows? The listing card only shows a name for business sellers. Private sellers show none.

Why are description and category empty? They come from the listing page. Turn on includeDetails.

How do I get only new listings? Run the actor on a schedule with the same search URL and compare the id values with your previous run. posted_at helps to spot fresh listings.

How do I stop at a budget? Set the maximum total charge for the run in the Apify Console. The actor stops at that limit and reports how many listings it delivered.

What does an empty result mean? If your search has no hits the run succeeds with zero rows and the status "No listings found for this search."

European classifieds

Enrich your data

Support

Something missing or not working as expected? Open an issue and we will fix it.