Tori.fi Scraper | Finnish Classifieds Marketplace
Pricing
from $0.01 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
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 range —
priceMin/priceMaxin 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
- CSV —
results.csvin key-value store (RFC 4180 compliant) - JSON —
results.jsonin 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
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "iphone" | Search term (Finnish or English) |
maxPages | integer | 1 | Pages to scrape (54 listings/page) |
priceMin | integer | — | Minimum price in EUR |
priceMax | integer | — | Maximum price in EUR |
regions | string[] | [] | Filter by Finnish regions |
sort | string | "relevance" | relevance / newest / cheapest / most_expensive |
fetchDetails | boolean | false | Visit detail pages for enriched data |
detailDelaySecs | integer | 2 | Delay between detail page visits |
outputFormat | string | "dataset" | dataset / csv / json / all |
webhookUrl | string | — | HTTPS URL for POST delivery |
Example: Basic search
{"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: falsefor 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
| Version | Date | Changes |
|---|---|---|
| 0.9.2 | 2026-07-15 | Added AI assistant prompt block, updated actor title with keywords |
| 0.9.1 | 2026-07-14 | Added price filtering, sort options, region filtering, detail page extraction via JSON-LD |
| 0.8.0 | 2026-07-13 | Added search query support, region selection, detail page extraction, CSV/JSON output, webhook integration |
| 0.1.0 | 2026-07-12 | Initial release — Tori.fi listing extraction |