
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape mobile.de car listings by search URL or filters: price, price rating, specs, equipment, photos, description, dealer address, phone, rating, GPS and financing. No login.
Scrape vehicle listings from mobile.de, Germany's largest car marketplace, by search URL or by filters. Every listing comes with price, mobile.de price rating, full specs, equipment, all photos, the seller's description, dealer address, phone, rating and GPS, plus the public financing and leasing offers. About 1,000 listings in under a minute, no login, and $0.50 per 1,000 listings.
/auto/bmw-5er.html, and single listings.| Field | What it does |
|---|---|
startUrls | Search URLs, landing-page URLs or listing URLs from any mobile.de site and language |
maxItems | Total listings to save in this run (default 20) |
maxItemsPerSearch | Optional cap per search URL, so several URLs share the total |
make, model, keyword | Filter search, e.g. BMW + 520, or a model family like Golf |
category | Cars, motorbikes, motorhomes, vans, trucks, trailers and more |
priceMin / priceMax, yearMin / yearMax, mileageMin / mileageMax, powerKwMin / powerKwMax | Ranges |
fuelType, transmission, bodyType, exteriorColor | Pick one or more |
sellerType, condition, damaged, country | Dealer or private, new or used, damaged vehicles (EXCLUDE by default like mobile.de's own search; ANY includes them, ONLY shows only them), vehicle country |
location, radiusKm | Postcode or city plus a radius in km |
sort | Relevance, price, mileage, registration or listing date |
includeDetails | Load the full detail data for every listing (on by default) |
{
"startUrls": [
{ "url": "https://suchen.mobile.de/fahrzeuge/search.html?dam=false&isSearchRequest=true&ms=3500%3B17%3B%3B&s=Car&vc=Car" }
],
"maxItems": 100
}
Filter search instead of a URL:
{
"make": "Volkswagen",
"model": "Golf",
"yearMin": 2019,
"priceMax": 25000,
"fuelType": ["PETROL", "HYBRID"],
"location": "10115",
"radiusKm": 100,
"sellerType": "DEALER",
"maxItems": 500
}
One row per listing. Main fields:
| Field | Example |
|---|---|
title, brand, model | BMW 520d Touring, BMW, 520 |
priceAmount, price | 24990, with gross, net and VAT |
priceRatingLabel, priceRating | Good price, with the price bands |
mileageKm, firstRegistration, year | 98500, 03/2019, 2019 |
powerKw, powerHp, fuelType, transmission | 140, 190, Diesel, Automatic |
attributes, features | Full spec table and equipment list |
description, images | Seller text and every photo URL |
city, zip, latitude, longitude | Vehicle location |
sellerName, sellerType, sellerPhones, sellerRating | Seller contact |
dealerDetails | Address, phones, WhatsApp, opening hours, scores, dealer page |
financing, leasing | Public financing example and leasing rates |
createdDate, modifiedDate | When the listing was posted and last changed |
url | Listing URL |
Example (fictional values, real shape, trimmed):
{
"id": 412345678,
"url": "https://suchen.mobile.de/fahrzeuge/details.html?id=412345678",
"title": "BMW 520d Touring Navi LED AHK",
"brand": "BMW",
"model": "520",
"category": "EstateCar",
"price": {
"total": { "amount": 24990, "currency": "EUR", "localized": "€24,990" },
"type": "FIXED",
"net": { "amount": 21000, "currency": "EUR", "localized": "€21,000" },
"vatRate": 19.0
},
"priceAmount": 24990,
"priceRating": {
"rating": "Good price",
"ratingCode": "GOOD_PRICE",
"priceRanges": {
"Very good price": { "start": 21501, "end": 24000 },
"Good price": { "start": 24001, "end": 25900 },
"Fair price": { "start": 25901, "end": 28800 },
"Increased price": { "start": 28801, "end": 30900 },
"High price": { "start": 30901, "end": 34200 }
}
},
"priceRatingLabel": "Good price",
"mileageKm": 98500,
"firstRegistration": "03/2019",
"year": 2019,
"powerKw": 140,
"powerHp": 190,
"fuelType": "Diesel",
"transmission": "Automatic",
"exteriorColor": "Black Metallic",
"previousOwners": 1,
"nextInspection": "04/2027",
"condition": "Used vehicle, Accident-free",
"createdDate": "2026-09-02T08:15:00.000Z",
"modifiedDate": "2026-10-12T17:40:11.000Z",
"description": "Gepflegter Touring aus erster Hand, scheckheftgepflegt ...",
"attributes": { "Mileage": "98,500 km", "Power": "140 kW (190 hp)", "Fuel": "Diesel", "Number of Vehicle Owners": "1" },
"features": ["Adaptive Cruise Control", "Heated seats", "LED headlights", "Navigation system", "Trailer coupling"],
"previewImage": "https://img.classistatic.de/api/v1/mo-prod/images/aa/aa000000-0000-0000-0000-000000000001?rule=mo-1600.jpg",
"images": ["https://img.classistatic.de/api/v1/mo-prod/images/aa/aa000000-0000-0000-0000-000000000001?rule=mo-1600.jpg"],
"city": "Musterstadt",
"zip": "12345",
"latitude": 52.5,
"longitude": 13.4,
"sellerType": "Dealer",
"sellerName": "Autohaus Beispiel GmbH",
"sellerPhones": ["+49 (0)30 1234567"],
"sellerRating": 4.7,
"sellerReviewCount": 85,
"sellerAddress": "Beispielstraße 1, DE-12345 Musterstadt",
"dealerDetails": {
"name": "Autohaus Beispiel GmbH",
"phones": ["+49 (0)30 1234567"],
"address": "Beispielstraße 1, DE-12345 Musterstadt",
"location": { "latitude": 52.5, "longitude": 13.4 },
"activeSince": "2015-06-01T00:00:00.000Z",
"openingHours": [{ "day": "Mon - Fri", "time": "08:00 h - 18:00 h" }],
"score": { "total": 4.7, "responseTime": 4.8, "friendliness": 4.8, "advice": 4.6 },
"activeRatingCount": 85,
"recommendPercentage": 94
},
"financing": {
"bankName": "Example Bank AG",
"loanType": "BALLOON",
"creditTermMonths": 60,
"interestRateEffective": 5.99,
"monthlyInstallment": 289.0
},
"rank": 1
}
You pay $0.50 per 1,000 listings ($0.0005 per listing), plus the small platform usage of the run (compute and datacenter proxy traffic). A measured 1,000-listing run with full details used $0.012 of platform usage, so 1,000 listings ≈ $0.51 in total. The price is the same with or without full details.
Is it legal? The scraper reads publicly visible listing data, the same data any visitor sees without an account. You are responsible for how you use it, especially personal data such as private sellers' phone numbers under the GDPR.
Do I need a mobile.de account or a proxy? No login is needed. The run uses the built-in datacenter proxy by default; you don't have to set anything up.
How many listings can I get? As many as the search has. mobile.de shows at most 2,000 results per search, so larger searches are split by price automatically. The run stops and says so when a search has fewer listings than you asked for.
Why does a cheap price search show nearly new cars for a few hundred euros? priceAmount is always the purchase price the seller entered (leasing rates are only in leasing). The very cheap recent cars at the top of a price_asc search are usually damaged or non-roadworthy vehicles (isDamaged: true, readyToDrive: false) or private listings with a mistyped first-registration date. Filter searches exclude damaged vehicles by default (damaged: EXCLUDE), the same as mobile.de's own search; set damaged to ANY to include them or ONLY to see only damaged vehicles. Search URLs keep their own dam setting. isNew is the vehicle condition (new car); isNewListing marks a listing added recently.
Why is a field empty? Sellers fill in different details. Financing, leasing, price rating, previous owners or the dealer stock number only appear when the listing has them. With Include full details off, the description, spec table, equipment and dealer address are not loaded.
Can I schedule it or use the API? Yes. Save your input as a task, schedule it daily or hourly, and fetch results through the API or webhooks.
Which language are the labels in? English (fuel type, colour and the spec table). The seller's own description stays in the language it was written in.
home.mobile.de/<dealer>) are not read directly. Use the dealer's vehicle search URL, or a link that contains customerId=.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.
startUrlsarrayOptionalmobile.de URLs
Search result URLs or listing URLs from suchen.mobile.de, www.mobile.de or m.mobile.de, in any site language. Set up a search on mobile.de with all the filters you like, then paste the address. Listing URLs return that one vehicle.
maxItemsintegerOptionaldefault 20Maximum listings
How many listings to save in total for this run. mobile.de shows at most 2,000 results per search; above that the search is split by price automatically, so you can collect tens of thousands.
Search by filters instead of, or in addition to, URLs. Leave everything empty to use only the URLs above.
makestringOptionalMake
Brand name as shown on mobile.de, for example BMW, Volkswagen or Mercedes-Benz. Used when you search with filters instead of a URL.
modelstringOptionalModel
Model name, for example 320, Golf or C 200. Needs a make. Model families such as 5er or Golf GTI also work.
keywordstringOptionalKeyword
Free-text search, for example "AHK Panorama".
categoryenumOptionaldefault "Car"Vehicle category
Which part of mobile.de to search.
priceMinintegerOptionalMinimum price (EUR)
Lowest price.
priceMaxintegerOptionalMaximum price (EUR)
Highest price.
yearMinintegerOptionalMinimum first registration year
Lowest first registration year.
yearMaxintegerOptionalMaximum first registration year
Highest first registration year.
mileageMinintegerOptionalMinimum mileage (km)
Lowest mileage.
mileageMaxintegerOptionalMaximum mileage (km)
Highest mileage.
powerKwMinintegerOptionalMinimum power (kW)
Lowest power.
powerKwMaxintegerOptionalMaximum power (kW)
Highest power.
fuelTypearrayOptionalFuel type
Pick one or more.
transmissionarrayOptionalGearbox
Pick one or more.
bodyTypearrayOptionalBody type
Car body types. Pick one or more.
exteriorColorarrayOptionalExterior colour
Pick one or more.
sellerTypeenumOptionaldefault "ANY"Seller type
Dealers, private sellers, or both.
conditionenumOptionaldefault "ANY"Condition
New or used vehicles.
damagedenumOptionaldefault "EXCLUDE"Damaged vehicles
Exclude (default, like mobile.de's own search), include or only show vehicles with unrepaired damage. Applies to filter searches; URLs keep their own setting.
locationstringOptionalNear location
Postcode or city, for example 10115 or München. Combine with the radius.
radiusKmintegerOptionalRadius (km)
Distance around the location. Default 50 km when a location is set.
countrystringOptionalCountry
Two-letter country code of the vehicle location, for example DE, AT or NL. Also narrows the location lookup.
sortenumOptionaldefault "relevance"Sort by
Order of the filter search results.
includeDetailsbooleanOptionaldefault trueInclude full details
Load each listing's detail data: description, full specification table, equipment list, all photos, dealer address, opening hours and ratings. Turn off for faster runs with the search-card fields only (price, key specs, location, seller, financing). The price per listing is the same.
maxItemsPerSearchintegerOptionalMaximum listings per search
Optional cap for each search URL or the filter search, so several URLs share the total fairly. Leave empty for no per-search cap.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used to reach mobile.de. Datacenter works and is the cheapest.
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 | integer | null | mobile.de listing id |
| url | string | null | Listing URL |
| title | string | null | Listing title |
| brand | string | null | Make |
| model | string | null | Model |
| priceAmount | number | null | Gross price |
| priceCurrency | string | null | Currency |
| price | object | null | Gross price, net price and VAT |
| priceRating | object | null | mobile.de price rating with the price bands |
| mileageKm | integer | null | Mileage in km |
| firstRegistration | string | null | First registration (MM/YYYY) |
| year | integer | null | First registration year |
| powerKw | integer | null | Power in kW |
| powerHp | integer | null | Power in hp |
| fuelType | string | null | Fuel |
| transmission | string | null | Gearbox |
| category | string | null | Body type |
| condition | string | null | Condition |
| description | string | null | Seller description as plain text |
| attributes | object | null | Full specification table |
| features | array | null | Equipment list |
| images | array | null | Photo URLs |
| previewImage | string | null | First photo |
| location | object | null | Vehicle location with GPS |
| sellerType | string | null | Dealer or private seller |
| sellerName | string | null | Seller name |
| sellerPhones | array | null | Seller phone numbers |
| sellerRating | number | null | Dealer rating (1-5) |
| dealerDetails | object | null | Dealer address, phones, GPS, ratings, opening hours |
| financing | object | null | Public financing example |
| leasing | object | null | Public leasing offer |
| createdDate | string | null | Listing created |
| modifiedDate | string | null | Listing last modified |
| rank | integer | null | Position in the search |
| priceRatingLabel | string | null | Price rating label |
| city | string | null | Vehicle city |
| zip | string | null | Vehicle postcode |
| latitude | number | null | Latitude |
| longitude | number | null | Longitude |
| sellerAddress | string | null | Seller address |
| sellerReviewCount | integer | null | Dealer review count |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One saved mobile.de vehicle listing. | $0.0005 |
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('roamandroof/mobile-de-scraper').call({
"startUrls": [
{
"url": "https://suchen.mobile.de/fahrzeuge/search.html?dam=false&isSearchRequest=true&ms=3500%3B17%3B%3B&s=Car&vc=Car"
}
],
"maxItems": 20,
"damaged": "EXCLUDE",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// 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 roamandroof/mobile-de-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/mobile-de-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Make and model search from 2015, cheapest first.
Motorbikes from dealers with full listing details.
Used, accident-free cars under 15,000 EUR, cheapest first.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.