carmarket.ch Scraper — Swiss Cars, EV Battery & Dealers avatar

carmarket.ch Scraper — Swiss Cars, EV Battery & Dealers

Pricing

from $1.10 / 1,000 results

Go to Apify Store
carmarket.ch Scraper — Swiss Cars, EV Battery & Dealers

carmarket.ch Scraper — Swiss Cars, EV Battery & Dealers

Scrape carmarket.ch, the Swiss dealer car marketplace: every listing with VIN, type approval, mileage, first registration, battery kWh and range, all photos, the dealer's address, phones, email, website and map coordinates. Paste any search URL; the whole result set is delivered.

Pricing

from $1.10 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

10 hours ago

Last modified

Share

Scrape carmarket.ch, the Swiss dealer car marketplace, into one row per car: VIN, type approval, first registration, mileage, battery capacity and range, every technical-table field, the full photo gallery, the dealer's address and map coordinates, and on request the dealer's phones, email and website. Paste any carmarket.ch search URL and the whole result set is delivered, not only the 33 pages the site shows.

How the carmarket.ch Scraper works

Why use this scraper

  • Complete result sets. carmarket.ch stops at 33 pages of 30 (1,000 cars) per search. The actor splits larger searches by price on its own and checks the result against the site's own count, so a 3,482-car search delivers 3,482 cars.
  • Your filters, exactly. Set the filters on carmarket.ch, copy the address, paste it. Every filter in the URL is applied the way the site applies it, and a filter the actor cannot apply stops the run with a clear message instead of being ignored.
  • Everything the listing page shows. All technical-table fields, the page's schema.org data (jsonLd), all gallery images in order and the dealer block.
  • Dealer location on every row. sellerCoordinates carries the point on the dealer's carmarket.ch profile map.
  • Dealer contact details when you need them. Switch on Include dealer contact details to add the phones, email and website; they are charged once per dealer per run, not per car.
  • A short run says so. The completeness check compares every search with the count carmarket.ch reports and can fail a run that comes up short.
  • Fast. The 3,482 used electric cars on 07.10.2026: 62 requests, about 16 seconds.

What you can scrape

Start URLExampleWhat you get
Search pagehttps://carmarket.ch/de/suche?fuelType=g%7C4&vehicleCondition=2Every car matching the search (here: used electric cars)
Listing pagehttps://carmarket.ch/de/fahrzeug/hyundai-ioniq-5-77-4-kwh-origo-4507362That car
Dealer pagehttps://carmarket.ch/de/haendler/auto-regli-gmbh-4363Every car that dealer lists

German, French and Italian URLs all work (/fr/recherche, /it/cerca, /fr/vehicule/…, /it/concessionaria/…). The URL's language sets the language of the values (Elektro / Electrique).

Search filters supported: make and model, fuel type, body type, condition, price (buy or monthly rate), mileage, first registration, power (PS or kW), transmission, drive, vehicle class and type, doors, seats, engine size, cylinders, weights, battery capacity and range, colours, upholstery, energy-efficiency class, equipment, other filters (e.g. "Ab MFK"), promotions, free text and location radius. Sorting and paging parameters are ignored, since every matching car is delivered.

Input

FieldDescription
startUrlscarmarket.ch search, listing or dealer URLs.
maxItemsMost listings to deliver across the run; 0 = no limit. Default 1000. Non-paying users are capped at 100.
includeContactDetailsAdds the dealer's phones, email and website to seller and jsonLd. Charged once per dealer per run. Default off.
includeRawDataAdds the vehicle record exactly as carmarket.ch's API returns it, under raw. Default off.
failOnIncompleteEnd the run as FAILED when a search's shortfall exceeds the threshold. Default on.
completenessTolerancePercent / completenessToleranceAbsoluteThe threshold: the larger of this percentage of the reported count and this many listings. Defaults 1 and 25.
proxyConfigurationOptional. The data comes from two public JSON services that need no proxy.
{
"startUrls": [{ "url": "https://carmarket.ch/de/suche?fuelType=g%7C4&vehicleCondition=2" }],
"maxItems": 0,
"includeContactDetails": true
}

Output

One row per car. Selected fields from a real row, with Include dealer contact details on:

{
"id": 4507362,
"url": "https://carmarket.ch/de/fahrzeug/hyundai-ioniq-5-77-4-kwh-origo-4507362",
"title": "HYUNDAI Ioniq 5 77,4 kWh Origo",
"make": "HYUNDAI", "model": "Ioniq", "version": "Ioniq 5 77,4 kWh Origo",
"price": 28890, "priceCurrency": "CHF", "priceInitial": 57099,
"conditionType": "Occasion",
"firstRegistrationDate": "2022-12-28", "mileage": 40100,
"powerHp": 227, "powerKw": 167,
"batteryCapacityKwh": 77.4, "batteryRangeKm": 507,
"fuelType": "Elektro", "transmissionType": "Automatik-Getriebe", "drive": "Hinterradantrieb",
"vin": "KMHKM81EFPU124243",
"typeApproval": "1HC553",
"commissionNumber": "GA24243",
"directImport": true,
"warranty": { "typeId": 2, "months": 96, "maxKm": 160000 },
"imageCount": 20,
"images": ["https://vehicle.imgix.net/4507362/2c4934ea-ea00-4d75-8982-fb699f91ddfb.jpg", "…"],
"seller": {
"id": 5031, "name": "Auto Welt von Rotz AG",
"profileUrl": "https://carmarket.ch/de/haendler/auto-welt-von-rotz-ag-5031",
"street": "Wilerstrasse 72", "zip": "9542", "city": "Münchwilen",
"telephone": "+41 71 516 11 27", "phone": "+41 71 913 33 66", "calltrackingPhone": "+41 71 516 11 27",
"email": "…", "website": null
},
"sellerContactIncluded": true,
"sellerCoordinates": { "latitude": 47.4722981, "longitude": 9.0109541, "source": "seller_location" },
"jsonLd": { "@type": ["Product", "Car"], "vehicleIdentificationNumber": "KMHKM81EFPU124243", "offers": { "offeredBy": { "@type": "AutoDealer" } } }
}

Key output fields

FieldMeaning
vinVehicle identification number, unchanged.
typeApprovalSwiss type approval number ("Typengenehmigung").
commissionNumber"Wagennummer" as the page shows it: the dealer's own reference, else carmarket.ch's internal number (both also in vehicleExternalId and internalCommissionNumber).
batteryCapacityKwh, batteryRangeKmBattery capacity and range; null when the listing gives none.
seller.telephoneThe number the listing shows: a call-tracking number when the dealer has one, otherwise the dealer's own. seller.phone is always the dealer's own number. All contact fields (telephone, phone, calltrackingPhone, email, website, and offeredBy.telephone/url in jsonLd) are null unless Include dealer contact details is on.
sellerContactIncludedTrue when the row carries the dealer's contact details.
sellerCoordinatesThe dealer's location on its carmarket.ch profile map; source is seller_location.
jsonLdThe listing page's schema.org Product/Car object, built the way the page builds it (weightTotal.maxValue is filled in where the page leaves it empty).
warrantyWarranty as carmarket.ch records it (type, months, kilometres, text per language).

Completeness

Each search's count is compared with the listings delivered for it. The comparison is logged, written to the COMPLETENESS record in the run's key-value store and shown in the status message, for example Done — delivered 3482 of 3482 reported (difference 0, threshold 35). With failOnIncomplete on, a shortfall above the threshold ends the run as FAILED. A search cut short by maxItems is not judged. A car that appears in two of your searches is delivered and charged once.

Pricing

Pay per event:

EventWhen it is charged
resultOnce per car delivered. A car that several of your URLs return is delivered and charged once per run.
contact-detailsOnce per dealer per run, only with Include dealer contact details on, however many of that dealer's cars you get. A dealer with no phone, email or website on carmarket.ch costs nothing.

The amounts for your Apify plan are on the actor's Pricing tab. A run stops cleanly at your spending limit: the rows you get are the rows you paid for.

FAQ

Why not just 33 pages? That is the site's display limit, not the number of cars. The actor reads the same search index the site uses and splits large searches by price, so nothing is cut off.

What if my URL has a filter the actor doesn't know? The run stops before scraping and names the filter. Send the URL to the developer and support will be added.

Are private sellers included? carmarket.ch lists dealers only.

Why are the dealer's phone and email empty? Include dealer contact details is off. The dealer's name, address and map coordinates are always included.

What happens if the run is moved to another server mid-way? The actor reads back what it already delivered and continues; no car is delivered or charged twice.

Support

Found a bug or need a field added? Open an issue on the actor's Issues tab or write to muhameddidovic@gmail.com.

⚠️ Disclaimer

This actor collects publicly available listing data from carmarket.ch. You are responsible for using the data in line with carmarket.ch's terms, the Swiss Federal Act on Data Protection (FADP), the GDPR where it applies, and any other law that applies to you. Dealer contact details are business information published by the dealers; do not use them for unsolicited marketing where the law forbids it.

SEO Keywords

carmarket.ch scraper, carmarket scraper, Swiss car listings scraper, Switzerland used cars data, electric car listings Switzerland, EV battery capacity data, used EV market data Switzerland, car dealer data Switzerland, Occasion Elektroauto Schweiz, Auto Händler Daten Schweiz, VIN data scraper, car marketplace API, Emil Frey carmarket data