tori.fi APItori.fi ↗
Access Tori.fi listings via API. Search second-hand products, filter by category, and retrieve detailed item and seller data from Finland's largest classifieds marketplace.
curl -X GET 'https://api.parse.bot/scraper/c1aab9a4-7b5e-4408-91f2-ce01004c705d/search_listings?page=1&query=laptop&category=0.93' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for product listings on Tori.fi recommerce section with optional filters and pagination. Returns paginated results from structured data embedded in the search page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| query | string | Search keyword (e.g., 'puhelin', 'OnePlus'). |
| category | string | Category ID in dotted notation (level 0 prefix + category number). Confirmed working values: '0.76' (Antiikki ja taide), '0.90' (Auto/vene/moottoripyörätarvikkeet), '0.93' (Elektroniikka ja kodinkoneet), '0.77' (Eläimet ja eläintarvikkeet), '0.78' (Koti ja sisustus), '0.68' (Lapset ja vanhemmat), '0.91' (Liiketoiminta ja palvelut), '0.67' (Piha ja remontointi), '0.69' (Urheilu ja ulkoilu), '0.71' (Vaatteet, kosmetiikka ja asusteet). |
| sub_category | string | Sub-category ID in dotted notation (level 1 prefix + parent + sub-id). Example: '1.93.3217' (Puhelimet ja tarvikkeet under Elektroniikka). |
| fetch_details | boolean | Whether to fetch full details (description, location, seller) for each item. Makes one additional request per item; limited to 50 items per call. May cause timeouts for large result sets. |
| product_category | string | Product category ID in dotted notation (level 2 prefix + parent chain + product-id). Example: '2.93.3217.39' (Matkapuhelimet). |
{
"type": "object",
"fields": {
"items": "array of product listing objects with id, title, price, currency, condition, image, url",
"total": "integer count of items returned"
},
"sample": {
"data": {
"items": [
{
"id": "24231417",
"url": "https://www.tori.fi/recommerce/forsale/item/24231417",
"image": "https://img.tori.net/dynamic/default/56/569bf8cc-3445-44f9-adcf-fcdbee233720",
"price": "15",
"title": "Telia Candy puhelin",
"currency": "EUR",
"condition": "UsedCondition"
}
],
"total": 53
},
"status": "success"
}
}About the tori.fi API
The Tori.fi API provides 3 endpoints to query Finland's largest second-hand marketplace, returning structured listing data including price, condition, images, and seller details. The search_listings endpoint accepts keyword queries, category IDs in dotted notation, and pagination controls, while get_item_details retrieves per-listing fields such as brand, region, and condition for any listing by its numeric ID.
Endpoints and Data Coverage
The API exposes three endpoints. search_listings is the primary search surface: it accepts a query string (e.g., 'puhelin' or 'OnePlus'), a category ID in dotted notation (e.g., '0.76' for Antiikki), a sub_category ID (e.g., '1.93.3217' for Puhelimet ja tarvikkeet), a product_category ID (e.g., '2.93.3217.39' for a specific phone product type), and an integer page parameter. Results include an array of listing objects — each with id, title, price, currency, condition, image, and url — plus a total count. Setting fetch_details to true adds full description, location, and seller data for each item in the result set, at the cost of one additional request per listing.
Item Details and Telephone Search
get_item_details takes a single required item_id (a numeric string) and returns a richer field set: brand, region, category, condition (e.g., UsedCondition), images, currency (always EUR), price, title, url, and id. The search_telephones endpoint is a focused shortcut that queries the mobile phones product category (2.93.3217.39) directly, accepting only a page parameter and returning the same listing object shape as search_listings.
Category ID Format
Tori.fi uses a three-level dotted category notation. Level-0 IDs (e.g., '0.76') represent top-level categories; level-1 IDs (e.g., '1.93.3217') represent sub-categories; level-2 IDs (e.g., '2.93.3217.39') represent product-level categories. The search_listings endpoint accepts all three via separate parameters (category, sub_category, product_category), allowing queries to be scoped to any depth in the taxonomy.
- Track price trends for used mobile phones on Tori.fi using
search_telephonesacross multiple pages - Build a cross-listing price comparison tool for specific brands using
queryandproduct_categoryfilters insearch_listings - Aggregate second-hand inventory by region using the
regionfield returned byget_item_details - Monitor condition distribution of listed goods (e.g.,
UsedCondition) across a product category - Enrich a deal-alert app by polling
search_listingsfor new listings matching a keyword and fetching full details viaget_item_details - Build a category browser by mapping the dotted-notation IDs to human-readable names from listing responses
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Tori.fi have an official public developer API?+
What does `get_item_details` return beyond what `search_listings` provides?+
get_item_details returns fields not present in the search result array: brand, region, category name, and a full images array. Search results include id, title, price, currency, condition, image (single), and url. You can also get this richer data during a search by setting fetch_details to true, which fetches details for every item in the page.Does the API expose seller contact information or seller profiles?+
fetch_details flag and get_item_details include seller information when it is present on the listing page, but dedicated seller profile endpoints — such as retrieving all listings by a specific seller ID or seller rating history — are not currently part of the API. You can fork it on Parse and revise to add a seller-listings endpoint.Is pagination supported across all search endpoints?+
search_listings and search_telephones accept an integer page parameter for pagination. The response includes a total field reflecting the count of items returned on that page, not the total across all pages. There is no built-in field exposing the total result count across the full result set, so iterating pages until items is empty is the practical approach.