
Instagram Scraper
scrape.ly/store/echofield/instagram-scraper
EchofieldSocial mediaLead generation
1.5K monthly users

Scrape Swiss car listings and classifieds from tutti.ch and anibis.ch: used cars for sale in Switzerland (Auto Schweiz, Occasion) with make, model, price in CHF, year, mileage, fuel, gearbox, power, body type, ZIP, city, canton, seller name and type, photos and description. Search by car make, keyword or URL.
Get Swiss car listings and classifieds from tutti.ch and anibis.ch: make, model, price in CHF, first registration year, mileage, fuel, gearbox, power, body type, ZIP code, city and canton, seller name and type, every photo and the full description. Paste a search URL, type a keyword or just pick a car make. No login or account is needed.
| Field | What it does |
|---|---|
startUrls | tutti.ch / anibis.ch searches (/de/q/autos/Ak8CkY2Fyc5TAwMDA), categories or single listings (/de/vi/<id>). Filters inside the URL are kept. |
searchQueries | Keywords such as vw golf or tesla model 3. |
maxItems | Maximum listings in total (0 = no limit). |
make, model | Car make and model, e.g. Mercedes-Benz + S-Class, or Mercedes-Maybach. |
minYear / maxYear, minMileage / maxMileage, minPowerHp / maxPowerHp | Car ranges. |
fuelType, gearbox, bodyType | Car options. |
minPrice / maxPrice | Price range in CHF. |
location, radiusKm | ZIP codes, cities or cantons, with an optional radius. |
sellerType | private or company (dealers). |
onlySiteListings | Keep only listings posted on the site itself. |
sortBy | newest, oldest, price_asc, price_desc or relevance. |
{
"make": "Mercedes-Maybach",
"maxItems": 50,
"sortBy": "price_desc"
}
| Field | Example |
|---|---|
title, description | Schöner Golf GTI Clubsport ab MFK und Service, the full text |
price, priceText, currency | 31000, 31'000.-, CHF |
make / model / modelType | VW / GOLF / (model type when the seller sets one) |
year | 2023 (first registration) |
mileageKm | 27000 |
fuelType / gearbox | Benzin / Automatik |
powerHp / powerKw | 300 / 221 |
bodyType, doors, color, condition | Limousine, 4, Grau, Gebraucht |
postcode, city, canton, cantonName, latitude, longitude | 4803, Vordemwald, AG, Aargau, 47.27, 7.89 |
sellerName, sellerType, sellerId, sellerMemberSince, sellerLogo, sellerWebsite | Marco, private, ... |
phoneNumbers | phone numbers the seller wrote into the text, as +41 XX XXX XX XX |
image, images, imageCount | main photo, every photo URL, 5 |
postedAt | 2026-10-25T06:06:27Z |
category, parentCategory, attributes | Autos, Fahrzeuge, every attribute as shown on the site |
listingSource | where the listing was posted (tutti, anibis, or the partner car portal it was imported from) |
url, id, site | https://www.tutti.ch/de/vi/83484234, 83484234, tutti.ch |
{
"id": "83484234",
"url": "https://www.tutti.ch/de/vi/83484234",
"title": "Schöner Golf GTI Clubsport ab MFK und Service",
"price": 31000,
"priceText": "31'000.-",
"currency": "CHF",
"make": "VW",
"model": "GOLF",
"year": 2023,
"mileageKm": 27000,
"fuelType": "Benzin",
"gearbox": "Automatik",
"powerHp": 300,
"powerKw": 221,
"bodyType": "Limousine",
"doors": 4,
"color": "Grau",
"condition": "Gebraucht",
"postcode": "4803",
"city": "Vordemwald",
"canton": "AG",
"cantonName": "Aargau",
"latitude": 47.27135,
"longitude": 7.89309,
"sellerName": "Marco",
"sellerType": "private",
"sellerMemberSince": "2016-07-11T19:12:59Z",
"phoneNumbers": [],
"image": "https://c.tutti.ch/big/5336087022.jpg",
"imageCount": 5,
"postedAt": "2026-10-25T06:06:27Z",
"category": "Autos",
"listingSource": "tutti",
"site": "tutti.ch"
}
You pay $0.80 per 1,000 listings ($0.0008 per listing). Platform usage (compute and Swiss proxies) is included, so 1,000 car listings cost $0.80 in total.
Is it legal to scrape tutti.ch? The actor reads public listing pages that anyone can open without an account. Respect the site's terms and data-protection law (the Swiss FADP and the GDPR) when you store or use personal data such as seller names.
Do I need an account, cookies or my own proxy? No. Swiss proxies are included.
How many listings can I get? As many as the search has. The site shows at most 3,100 listings for one search; larger searches are split by price automatically.
What if a field is empty?
Sellers fill car details themselves; a missing year or mileage means the listing does not state it. Non-car categories have their own attributes in attributes.
Can I schedule it or use the API? Yes. Schedule the actor in the console (for example every hour, sorted by newest) or start it through the Scrape.ly API and read the dataset as JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalTutti.ch or anibis.ch URLs
Paste search or category pages from tutti.ch or anibis.ch (for example https://www.tutti.ch/de/q/autos/Ak8CkY2Fyc5TAwMDA for all cars) or single listings (https://www.tutti.ch/de/vi/). Filters and sort order set on the site are kept; the filters below are added where the URL has none.
searchQueriesarrayOptionalSearch queries
Keywords as you would type them into the search box (for example vw golf, tesla model 3, e-bike). Each query is its own search with the filters below. With a car filter set (make, year, mileage...) the search runs in the cars category.
maxItemsintegerOptionaldefault 20Max results
Maximum number of listings to save in total. Use 0 for no limit (every listing of every search).
Filters for the cars category. Setting any of them searches cars.
makestringOptionalCar make
Car brand as shown on the site, for example BMW, VW, Mercedes-Benz, Porsche or Mercedes-Maybach. Empty: every make.
modelstringOptionalCar model
Model of the make above, for example Golf, 3 Series, S-Class or Maybach. A name that is not one of the site's models (such as Maybach for Mercedes-Benz) is searched as a keyword within the make.
minYearintegerOptionalFirst registration from (year)
Only cars first registered in this year or later.
maxYearintegerOptionalFirst registration up to (year)
Only cars first registered in this year or earlier.
minMileageintegerOptionalMinimum mileage (km)
Only cars with at least this many kilometres.
maxMileageintegerOptionalMaximum mileage (km)
Only cars with at most this many kilometres.
fuelTypearrayOptionalFuel
Only cars with one of these fuels. Empty: any fuel.
gearboxarrayOptionalGearbox
Only automatic or only manual cars. Empty: both.
bodyTypearrayOptionalBody type
Only cars with one of these body types. Empty: any body.
colorarrayOptionalColour
Only cars in one of these exterior colours. Empty: any colour.
minPowerHpintegerOptionalMinimum power (hp)
Only cars with at least this much power, in horsepower (PS).
maxPowerHpintegerOptionalMaximum power (hp)
Only cars with at most this much power, in horsepower (PS).
categoryenumOptionalCategory
Category for search queries and the filters above. Search URLs keep their own category.
minPriceintegerOptionalMinimum price (CHF)
Only listings priced at least this much.
maxPriceintegerOptionalMaximum price (CHF)
Only listings priced at most this much.
locationarrayOptionalLocation
Swiss ZIP codes (8001), cities (Zürich, Lausanne, Lugano) or cantons (ZH, VD, Kanton Bern). Several are combined with OR.
radiusKmintegerOptionalRadius around the location (km)
Also include listings within this many kilometres of the location. Empty: the location itself.
sellerTypeenumOptionalSeller
Only private sellers or only dealers and companies. With 'any', every row still says which one it is (where the category has this filter).
onlySiteListingsbooleanOptionalOnly listings posted on the site
The site also shows car listings imported from partner car portals. Turn this on to keep only listings posted on tutti.ch / anibis.ch themselves (and ricardo.ch). Needs a category.
sortByenumOptionalSort by
Order of the results. Search URLs keep their own order unless you set one here.
maxItemsPerSearchintegerOptionalMax results per search
Optional limit for each search URL or query. 0 or empty: no per-search limit.
siteenumOptionalSite for search queries
Where search queries and filter-only searches run. URLs always use their own site.
languageenumOptionalLanguage
Language of attribute names and values (fuel, gearbox, body type) and of listing links. Titles and descriptions stay as the seller wrote them.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy
Swiss residential proxies are used by default; the site limits how often one address may search.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | Listing id |
| url | string | Listing URL |
| title | string | null | Title |
| price | number | null | Price (CHF) |
| priceText | string | null | Price as shown |
| currency | string | Currency |
| make | string | null | Make |
| model | string | null | Model |
| modelType | string | null | Model type |
| year | integer | null | First registration year |
| mileageKm | integer | null | Mileage (km) |
| fuelType | string | null | Fuel |
| gearbox | string | null | Gearbox |
| powerHp | integer | null | Power (hp) |
| powerKw | integer | null | Power (kW) |
| bodyType | string | null | Body type |
| doors | integer | null | Doors |
| color | string | null | Colour |
| condition | string | null | Condition |
| postcode | string | null | ZIP code |
| city | string | null | City |
| canton | string | null | Canton |
| cantonName | string | null | Canton name |
| latitude | number | null | Latitude |
| longitude | number | null | Longitude |
| sellerName | string | null | Seller |
| sellerId | string | null | Seller id |
| sellerType | string | null | Seller type |
| sellerLocation | string | null | Seller location |
| sellerMemberSince | string | null | Member since |
| sellerLogo | string | null | Seller logo |
| sellerWebsite | string | null | Seller website |
| sellerSubscription | string | null | Seller plan |
| description | string | null | Description |
| phoneNumbers | array | null | Phone numbers in the text |
| image | string | null | Main photo |
| images | array | null | Photos |
| imageCount | integer | null | Photo count |
| postedAt | string | null | Posted |
| categoryId | string | null | Category id |
| category | string | null | Category |
| parentCategory | string | null | Parent category |
| listingSource | string | null | Listing source |
| externalUrl | string | null | External link |
| highlighted | boolean | null | Highlighted |
| language | string | null | Listing language |
| attributes | object | null | All attributes |
| site | string | Site |
| position | integer | null | Position |
| searchUrl | string | null | Search URL |
| searchQuery | string | null | Search query |
| scrapedAt | string | Scraped at |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices: compute, proxies, browser and storage cost nothing extra.
| Event | Charged when | Price |
|---|---|---|
| Listing | One saved tutti.ch or anibis.ch listing with price, car details (make, model, year, mileage, fuel, gearbox, power, body), location, seller, photos and description. | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/tutti-scraper').call({
"startUrls": [
"https://www.tutti.ch/de/q/autos/Ak8CkY2Fyc5TAwMDA"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
],
"scrapelyProxyCountry": "CH"
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/tutti-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://mcp.scrape.ly?tools=actors,runs,storage,docs&actors=shelfbright/tutti-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.

An Instagram MCP server lets your AI agent read public profiles, posts and reels right in the chat. Connect Scrape.ly's hosted server to Claude, ChatGPT or Cursor in a minute, with no Instagram login or Business account, and see real prompts, tool calls, output and costs.
Read the article
The 9 best web scraping tools for 2026 across platforms, scraping APIs, no-code builders, open-source libraries and AI crawlers, each with a narrow 'best for', today's prices, and a comparison table. Scrape.ly is our pick.
Read the article
What is web scraping? The automated collection of data from websites into structured records. See how it works step by step with tested Python code, what teams use it for, how it differs from crawling, APIs and screen scraping, and how to do it without code.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.