The NanoScrape Tutti Scraper is an Apify actor that extracts marketplace listings from tutti.ch. It returns 24 fields per result including title, location, phone, email, description, priced at $5/1k listing, with no API key or monthly subscription required.
Extract classified listings from Tutti.ch (source platform). Returns price, location, canton, seller info, GPS coordinates, and images. No login required. Pay-per-result.
| Field | Type | Example | Group | Fill % |
|---|---|---|---|---|
id | string | 82778871 | Core | 100% |
title | string | null | Altstadtwohnung in Altstätten | Core | 92% |
seller_name | string | null | Usman Khan Mufti | Core | 100% |
seller_id | string | null | 5311494020943126650 | Core | 74% |
image_url | string | null | https://c.tutti.ch/big/1704318546.jpg | Core | 97% |
image_urls | array | null | ["https://c.tutti.ch/big/1704318546.jpg", "https://c.tutti.ch/big/6454846779.jpg | Core | 70% |
source_url | string | https://www.tutti.ch/de/vi/st-gallen/immobilien/wohnungen/altstadtwohnung-in-altstaette... | Core | 100% |
location | string | null | Altstätten SG | Location | 100% |
postcode | string | null | 9450 | Location | 100% |
latitude | number | null | 47.3700789 | Location | 74% |
longitude | number | null | 9.5549856 | Location | 74% |
description | string | null | Nachmieter gesucht für eine 3-Zimmer-Maisonettewohnung (Altbau) in Altstätten SG Ich s... | Description | 92% |
category | string | null | realEstate | Metadata | 100% |
posted_at | string | null | 2026-09-04T18:11:08+02:00 | Metadata | 100% |
scraped_at | string | 2026-09-04T18:25:45.765Z | Metadata | 100% |
price | string | null | 1'200.- pro Monat | Other | 100% |
price_chf | number | null | 1200 | Other | 98% |
currency | string | CHF | Other | 100% |
canton | string | null | SG | Other | 100% |
seller_type | string | null | private | Other | 100% |
phone | string | null | (populated when data available) | Other | 8% |
email | string | null | (populated when data available) | Other | 2% |
is_highlighted | boolean | false | Other | 100% |
properties | object | null | {"Zimmer": "3", "Fläche": "58", "Typ": "Mieten"} | Other | 67% |
{
"maxResults": 30,
"includeDetails": true,
"maxResultsPerQuery": 10
}{
"maxResults": 50,
"includeDetails": true,
"searchUrls": [
"https://www.tutti.ch/de/q/autos/Ak6NibXekY2Fyc5SSkrFjYXJzQXV0b1Njb3V0VHlwZaljYWJyaW9sZXSStWNhcnNBdXRvU2NvdXRGdWVsVHlwZaZwZXRyb2zAwMA?sorting=newest&query=bmw"
]
}{
"id": "82778871",
"title": "Altstadtwohnung in Altstätten",
"description": "Nachmieter gesucht für eine 3-Zimmer-Maisonettewohnung (Altbau) in Altstätten SG\n\nIch suche Nachmieter für eine Maisonettewohnung in Altstätten SG. Ideal für Paare, aber auch Einzelpersonen. \n\nWichtig: Der Vertrag muss zu gleichen Bedingungen übernommen werden.\n\nDiese Wohnung überzeugt durch ihren klassischen Charme und die Aussicht auf die Berge und eignet sich für Paare sowie Einzelpersonen.\n\nWohnungsdetails:\n- 3. OG\n- 3-Zimmer ,sieht für mich nach 2,5 Zimmern aus (hat einen kleinen Estrich)\n- Wohnfläche ca. 58 m²\n- Renovierte grosse Küche mit Geschirrspüler und Balkonzugang\n- Grosszügiger Balkon mit 360°-Aussicht auf die Berge\n- Waschmaschine und Tumbler in der Wohnung\n- Haustiere erlaubt\n- Miete: 1200 CHF.- inkl. Nebenkosten (1020 CHF.- + 180 CHF.-)\n\nLage und Umgebung:\nZentral gelegen im Altstätten.\nIn nur maximal 46 Gehminuten erreichen Sie Supermärkte wie Migros und Denner, aber auch Restaurants, Bushaltestellen und Ärztezentren etc. In etwa 10 Gehminuten erreichen Sie Coop.",
"price": "1'200.- pro Monat",
"price_chf": 1200,
"currency": "CHF",
"category": "realEstate",
"location": "Altstätten SG",
"canton": "SG",
"postcode": "9450",
"latitude": 47.3700789,
"longitude": 9.5549856,
"seller_name": "Usman Khan Mufti",
"seller_type": "private",
"seller_id": "5311494020943126650",
"image_url": "https://c.tutti.ch/big/1704318546.jpg",
"image_urls": [
"https://c.tutti.ch/big/1704318546.jpg",
"https://c.tutti.ch/big/6454846779.jpg",
"https://c.tutti.ch/big/9339674935.jpg",
"https://c.tutti.ch/big/6993066848.jpg"
],
"posted_at": "2026-09-04T18:11:08+02:00",
"source_url": "https://www.tutti.ch/de/vi/st-gallen/immobilien/wohnungen/altstadtwohnung-in-altstaetten/82778871",
"phone": null,
"email": null,
"is_highlighted": false,
"properties": {
"Zimmer": "3",
"Fläche": "58",
"Typ": "Mieten"
},
"scraped_at": "2026-09-04T18:25:45.765Z"
}Priced at $0.0050 per detail listing. 10 detail listings ≈ $0.05, 100 ≈ $0.50, 1,000 ≈ $5.00. The first runs land inside Apify's $5/mo free-tier credit — pay only for what you extract, no monthly subscription.
Click Open on Apify above to run tutti-ch-scraper in your browser - no code, no install. In the Apify console you get:
To run this actor from your own code you need an Apify API token. Get one in about a minute:
Free tier: Apify credits your account with $5 of platform usage every month, no credit card required. Enough to test any actor meaningfully - at $0.001 per result on typical scrapers, that is roughly 5,000 results for free every month.
Run this actor from any language via the Apify REST API. Replace YOUR_TOKEN with your API token and adapt the input JSON to your needs.
curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~tutti-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('santamaria-automations/tutti-ch-scraper').call({});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('santamaria-automations/tutti-ch-scraper').call(run_input={})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(items)// dotnet add package Apify.Client
using Apify.Client;
var client = new ApifyClient("YOUR_TOKEN");
var run = await client.Actor("santamaria-automations/tutti-ch-scraper").CallAsync(new { });
var items = await client.Dataset(run.DefaultDatasetId).ListItemsAsync();// Maven: com.apify:apify-client
import com.apify.client.ApifyClient;
ApifyClient client = new ApifyClient("YOUR_TOKEN");
ActorRun run = client.actor("santamaria-automations/tutti-ch-scraper").call(Map.of());
List<Map<String,Object>> items = client.dataset(run.getDefaultDatasetId()).listItems();This actor is available on the Apify MCP server, so you can drive it from any MCP-compatible AI client - Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or a custom agent - without writing any code.
https://mcp.apify.com?tools=santamaria-automations/tutti-ch-scraperExample prompt once connected:
"Use <code>tutti-ch-scraper</code> to run a scrape on my target list and give me the results as a table."
Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically via add-actor.
Trigger this actor from your favorite automation tool. Every platform below can call the Apify API in a few clicks - no code required.
@apify/n8n-nodes-apify).santamaria-automations/tutti-ch-scraper.https://api.apify.com/v2/acts/santamaria-automations~tutti-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.application/json.https://api.apify.com/v2/acts/santamaria-automations~tutti-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, method POST, body raw JSON.https://api.apify.com/v2/acts/santamaria-automations~tutti-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.steps.http.$return_value in subsequent steps.https://api.apify.com/v2/acts/santamaria-automations~tutti-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, body type JSON.$5.00 / 1,000 detail listing, billed per result on Apify. Apify's $5/month free tier covers the first runs. No monthly subscription — you only pay for what you extract.
24 fields per result. Full field catalog is listed in the 'What you can scrape' table above — includes core identifiers, descriptive text, dates, and any category-specific data.
Scraping publicly available data is generally permitted in most jurisdictions, but GDPR applies to any personal data you collect. Review your local rules and consult a lawyer for commercial use.
No. This actor reads public pages over HTTP with datacenter proxies. No API key, no OAuth, no rate-limit management on your side.
Every run pulls live data at execution time. Set up a schedule (daily/hourly/weekly cron) in the Apify console to keep your dataset current automatically.