Tori.fi Scraper | Finnish Classifieds Marketplace avatar

Tori.fi Scraper | Finnish Classifieds Marketplace

Pricing

from $0.01 / 1,000 results

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

Tori.fi Scraper | Finnish Classifieds Marketplace

Scrape Tori.fi (Finnish classifieds). Extracts title, price, location, images. Filters: price range, 19 regions, sort. Detail pages: description, condition, brand. Output: Dataset, CSV, JSON, webhooks. Anti-detection built in.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

petteri mähönen

petteri mähönen

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Tori.fi Scraper — Finnish Classifieds Marketplace

Scrape listings from Tori.fi, Finland's largest classifieds marketplace with millions of active listings across categories (electronics, vehicles, furniture, real estate, and more).

Features

Search & Extraction

  • Search by free-text query (Finnish or English keywords)
  • Extract title, price, location, region, image URL, listing URL, item ID from search results
  • 54 listings per page, up to 50 pages per run

Filtering

  • Price rangepriceMin / priceMax in EUR (post-extraction, since Tori.fi strips URL price params)
  • Region filter — filter by one or more of 19 Finnish regions (e.g., ["Uusimaa", "Pirkanmaa"])
  • Sort order — relevance, newest, cheapest, most expensive

Detail Page Extraction

Toggle fetchDetails: true to visit each listing's detail page and extract via JSON-LD structured data:

  • Full description text
  • Item condition (new/used/refurbished)
  • Brand name
  • Category breadcrumb path
  • All listing images (array of URLs)
  • Published date & last modified timestamp
  • Seller type detection

Output

  • Dataset — default, push to Apify Dataset
  • CSVresults.csv in key-value store (RFC 4180 compliant)
  • JSONresults.json in key-value store (pretty-printed)
  • Webhook — POST all listings to any HTTPS endpoint on completion

Anti-Detection

  • User-agent rotation (7-browser pool)
  • Stealth injection (webdriver flag, Chrome runtime spoof, permissions patch)
  • Random delays with jitter between pages and detail visits
  • Human-like reading pauses before extraction
  • CAPTCHA & block page auto-detection

Error Handling

  • 404 detection — removed listings flagged as (Listing removed)
  • Redirect detection — listings redirected to homepage are caught
  • Network error classification — timeouts, DNS failures, connection resets logged separately
  • goBack fallback — re-navigates to search if browser back fails
  • Stale selector warnings — logs page title when cards found but extraction returns 0

Input

FieldTypeDefaultDescription
searchQuerystring"iphone"Search term (Finnish or English)
maxPagesinteger1Pages to scrape (54 listings/page)
priceMinintegerMinimum price in EUR
priceMaxintegerMaximum price in EUR
regionsstring[][]Filter by Finnish regions
sortstring"relevance"relevance / newest / cheapest / most_expensive
fetchDetailsbooleanfalseVisit detail pages for enriched data
detailDelaySecsinteger2Delay between detail page visits
outputFormatstring"dataset"dataset / csv / json / all
webhookUrlstringHTTPS URL for POST delivery
{
"searchQuery": "polkupyörä",
"maxPages": 3
}

Example: Filtered search with detail extraction

{
"searchQuery": "MacBook",
"maxPages": 5,
"priceMin": 500,
"priceMax": 1500,
"regions": ["Uusimaa"],
"sort": "newest",
"fetchDetails": true,
"detailDelaySecs": 3,
"outputFormat": "all"
}

Output

Each listing contains:

{
"title": "iPhone 15 Pro 256GB",
"price": "650 €",
"price_numeric": 650,
"location": "Tampere, Pirkanmaa",
"region": "Pirkanmaa",
"url": "https://www.tori.fi/item/12345678",
"image_url": "https://.../photo.jpg",
"item_id": "12345678",
"search_query": "iphone",
"page_number": 1,
"scraped_at": "2026-07-14T10:00:00.000Z",
"description": "Myydään iPhone 15 Pro...",
"condition": "Käytetty",
"brand": "Apple",
"category_path": "Matkapuhelimet > Apple iPhone",
"images": ["https://.../photo1.jpg", "https://.../photo2.jpg"],
"seller_type": null,
"published_date": "2026-07-10",
"last_modified": "2026-07-10"
}

Fields marked null are populated when fetchDetails: true.

Technical Details

  • Crawler: PlaywrightCrawler (Crawlee 3.x)
  • Memory: 4096 MB
  • Proxy: No proxy required (datacenter works)
  • Docker image: apify/actor-node-playwright-chrome
  • Language: Node.js 22

Limitations

  • Price and region filters are applied post-extraction — Tori.fi strips these params from search URLs
  • Detail page extraction adds ~2-5 seconds per listing (network + human-like delays)
  • Very large searches (50 pages) may trigger rate limiting — use with fetchDetails: false for bulk
  • Some listings may be removed between search and detail fetch — these are flagged, not lost

Use Cases

  • Price tracking — run weekly via cron to monitor market prices for specific items
  • Market research — analyze supply/demand across Finnish regions
  • Arbitrage — find undervalued listings by brand or category
  • Lead generation — scrape dealer listings in specific regions
  • Data pipeline — feed classifieds data into analytics, ML models, or re-listing tools

💬 Quick Start for AI Assistants

Copy and paste this into ChatGPT, Claude, or another AI assistant to get help using this actor:


You are helping me use the "Tori.fi Scraper" on Apify (actor ID: FZcMBYjcsJ8er23Ri). It extracts listings from tori.fi, Finland's largest classifieds marketplace.

Input fields:

  • searchQuery: string, e.g. "iphone" or "polkupyörä"
  • maxPages: number, pages to scrape (54 listings/page, default: 1)
  • priceMin, priceMax: number, filter by EUR (default: none)
  • regions: string array, e.g. ["Uusimaa", "Pirkanmaa"]
  • sort: "relevance" | "newest" | "cheapest" | "most_expensive"
  • fetchDetails: boolean, visit detail pages for JSON-LD enriched data
  • detailDelaySecs: number, seconds between detail visits (default: 2)
  • outputFormat: "dataset" | "csv" | "json" | "all"
  • webhookUrl: string, optional HTTPS URL for POST delivery

Output fields: title, price, price_numeric, location, region, url, image_url, item_id, search_query, page_number, scraped_at + detail fields (description, condition, brand, category_path, images, seller_type, published_date, last_modified).

Help me with the right input, output processing, or troubleshooting.

📋 Changelog

VersionDateChanges
0.9.22026-07-15Added AI assistant prompt block, updated actor title with keywords
0.9.12026-07-14Added price filtering, sort options, region filtering, detail page extraction via JSON-LD
0.8.02026-07-13Added search query support, region selection, detail page extraction, CSV/JSON output, webhook integration
0.1.02026-07-12Initial release — Tori.fi listing extraction