Tutti.ch Scraper Swiss Classifieds & Marketplace avatar

Tutti.ch Scraper Swiss Classifieds & Marketplace

Pricing

from $3.00 / 1,000 search result listings

Go to Apify Store
Tutti.ch Scraper Swiss Classifieds & Marketplace

Tutti.ch Scraper Swiss Classifieds & Marketplace

Scrape 2M+ classified listings from tutti.ch, Switzerland's #1 classifieds platform. Extract prices, locations, cantons, seller info, GPS coordinates, images, and contact details. Browse by category (cars, real estate, electronics, furniture, jobs, and 20+ more). HTTP-only, fast, pay-per-result.

Pricing

from $3.00 / 1,000 search result listings

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

2

Bookmarked

47

Total users

10

Monthly active users

6.8 hours

Issues response

5 days ago

Last modified

Share

Tutti.ch Scraper

Scrape 2M+ classified listings from tutti.ch, Switzerland's largest classifieds platform.

How it works

  1. Go to tutti.ch and set up your search with all desired filters (category, search query, price range, fuel type, body type, location, etc.)
  2. Copy the URL from your browser
  3. Paste it into the Search URLs input
  4. Run the actor

That's it. The actor extracts all listings matching your search, with automatic pagination.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client — Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/tutti-ch-scraper

Example prompt once connected:

"Use tutti-ch-scraper to scrape company data from tutti ch. Return results as a table."

Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically via add-actor.

Features

  • Any filter combination — Whatever you can filter on tutti.ch, the actor can scrape
  • Multiple searches — Paste multiple URLs to run several searches in one run
  • Detail enrichment — Optionally get GPS coordinates, all images, and seller ID
  • 2M+ listings — Access the entire tutti.ch marketplace
  • Fast & cheap — HTTP-only, 128 MB, pay-per-result

Output

FieldDescriptionSource
titleListing titleSearch
price / price_chfPrice (formatted + numeric)Search
categoryCategory (e.g., "cars", "electronics")Search
location / canton / postcodeLocation detailsSearch
seller_name / seller_typeSeller info (private/professional)Search
image_urlMain thumbnailSearch
latitude / longitudeGPS coordinatesDetail
image_urlsAll listing imagesDetail
seller_idSeller account IDDetail
phonePhone number (when available)Detail + Regex
emailEmail address (regex extracted from description)Regex
descriptionFull listing textSearch
source_urlLink to listing on tutti.chBoth

Pricing

No start fee — pay only for results:

EventCost
Listing (basic)$0.003
Listing (with details)$0.005

100 listings = $0.30 (basic) or $0.50 (with details)

Examples

Search by keyword (copy the URL straight from your browser)

The simplest way to get started: search on tutti.ch, copy the URL from your browser bar, and paste it in.

{
"searchUrls": ["https://www.tutti.ch/de/li/ganze-schweiz?q=omega"],
"maxResults": 50
}

This is the share-link format tutti.ch produces when you search and copy the URL. Both ?q= and ?query= work.

BMW Cabriolets with petrol engine (full-filter URL from tutti.ch)

When you apply category filters on tutti.ch, the URL contains an encoded search token. Paste those URLs in too:

{
"searchUrls": ["https://www.tutti.ch/de/q/autos/Ak6NibXekY2Fyc5SSkrFjYXJzQXV0b1Njb3V0VHlwZaljYWJyaW9sZXSStWNhcnNBdXRvU2NvdXRGdWVsVHlwZaZwZXRyb2zAwMA?sorting=newest&query=bmw"],
"maxResults": 50
}

Multiple searches in one run

{
"searchUrls": [
"https://www.tutti.ch/de/q/immobilien/Ak8CuaW1tb2JpbGllbpTAwMDA?query=wohnung",
"https://www.tutti.ch/de/q/elektronik/Ak8CrGVsZWN0cm9uaWNzlMDAwMA?query=iphone"
],
"maxResults": 200,
"maxResultsPerQuery": 100
}

All listings (no filter)

{
"maxResults": 100,
"includeDetails": true
}

Monitoring / delta mode

Use this actor to watch a search for new listings without paying to re-scan items you have already seen.

Set sortBy to newest (the default) and maxAgeHours to the interval between your scheduled runs. On each run the actor returns only listings posted within that window, and it stops paginating as soon as it sees three consecutive items older than the cutoff. You pay only for the fresh pages, not the full catalogue.

Example: monitor iPhone listings every 6 hours

{
"searchUrls": ["https://www.tutti.ch/de/li/ganze-schweiz?q=iphone"],
"maxResults": 200,
"maxResultsPerQuery": 100,
"sortBy": "newest",
"maxAgeHours": 6
}

Schedule this input every 6 hours and you get a delta feed of new listings only.

How the early-stop works

When sortBy=newest is active and maxAgeHours is set, the actor tracks consecutive stale items per query. After three stale items in a row it stops fetching further pages for that query and logs an INFO line like:

[tutti-ch] early-stopped pagination for query "keyword=iphone": 3 consecutive stale items (> 6h) — saved 8 pages

One or two highlighted or promoted listings may appear out of chronological order on a page, so the actor waits for three consecutive stale items before stopping rather than one.

URL-level sort wins

If your Search URL already contains ?sorting=..., that value takes priority over the sortBy input field. This is intentional: URL-level parameters encode the exact search you configured on tutti.ch, and the input field is a convenience for plain keyword searches where no URL-level sort exists.

Combination that does not save pages

If you set maxAgeHours with a sort other than newest (for example sortBy=cheapest), the early-stop is disabled because oldest items can appear anywhere in a price-sorted list. The output filter still applies, but you pay for all pages up to maxResultsPerQuery.

Input fields

FieldTypeDescription
searchUrlsarrayOne or more tutti.ch search or listing URLs
maxResultsintegerTotal result cap across all searches
maxResultsPerQueryintegerCap per search URL
sortBystringnewest (default), oldest, cheapest, expensive, relevant
maxAgeHoursintegerDrop items older than N hours; stop paginating once the cutoff is passed (requires sortBy=newest)
includeDetailsbooleanFetch detail page for GPS, all images, seller ID

European Classifieds

Real Estate

Enrich your data

Issues & Feedback

Missing something or not working as expected? Open an issue and we'll fix it.