# TruckScout24 Scraper — Used Trucks, Trailers & Machinery (`yugenox/truckscout24-scraper`) Actor

Scrape TruckScout24 used trucks, tractor units, trailers, vans, buses and construction or farm machinery across Europe: net and gross price, make, model, mileage or hours, power, first registration, emission class, location, country, images, full technical data. By category, make or URL. No login.

- **URL**: https://apify.com/yugenox/truckscout24-scraper.md
- **Developed by:** [Yugenox Corp](https://apify.com/yugenox) (community)
- **Categories:** Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## TruckScout24 Scraper: used trucks, trailers and machinery

Scrape **truckscout24.com**, the European marketplace for used commercial vehicles. It covers trucks, tractor units, semi-trailers, trailers, vans, buses, construction and farm machinery, forklifts, cranes and motorhomes. For each listing you get the **price** (net and gross, VAT, reduced prices, fixed or negotiable), **make and model**, **mileage or operating hours**, **power**, **first registration and year**, **emission class**, **location and country**, images, and the listing's attributes. Turn on full details to also get the complete technical data, equipment, the full description and every gallery image.

Search by **category**, by **category + make** (for example tractor units from Volvo), or paste any TruckScout24 category, make or listing URL. You don't need a login, cookies or a browser.

### What you get

| | |
|---|---|
| **Vehicle** | Make, model, type (for example "Standard tractor unit" or "Motor coach"), condition, year, first registration |
| **Price** | Price, currency, previous price when it was reduced, gross price, VAT note (plus VAT, incl. VAT, VAT not applicable), fixed, negotiable or on request, delivery term (EXW) |
| **Key data** | Mileage (km) or operating hours, power (kW and HP), fuel, gearbox, emission class, axle configuration, seats, gross, empty and payload weight, colour, equipment |
| **Location** | City or town, country, ISO country code |
| **Media** | Main image, image count, all gallery images (with full details) |
| **Full details** (optional) | Complete technical data by section (dimensions and weight, axles and wheels, cab, brakes, documents and more), full description, the seller's reference number, the date the listing was last updated, listing number |
| **Seller** | Trust-seal (verified dealer) flag and the dealer's ID, company logo, the year the seller joined TruckScout24, and how many listings they have online |

### How to use it

1. Pick one or more **categories**, for example Trucks, Tractor units, Semi-trailers or Buses & coaches.
2. Optionally add **makes**, for example `Mercedes-Benz`, `MAN`, `Volvo`, `Scania`, `DAF` or `Iveco`. Each make is searched in each category.
3. Or paste **TruckScout24 URLs**: any category, subcategory or make page, or individual listings.
4. Set **Max listings**. Turn on **Include full details** if you need the full technical data and description.

TruckScout24 shows at most 200 listings for one category page. When you ask for more, the scraper goes through the category's subcategories one by one to get past that limit. You can turn this off.

#### Input examples

Volvo and Scania tractor units:

```json
{
  "categories": ["tractor-units"],
  "makes": ["Volvo", "Scania"],
  "maxItems": 400
}
```

1,000 bus and coach listings, with full details:

```json
{
  "categories": ["buses"],
  "maxItems": 1000,
  "includeDetails": true
}
```

Any page from the site:

```json
{
  "startUrls": [
    "https://www.truckscout24.com/trucks/used/box/mercedes-benz",
    "https://www.truckscout24.com/Excavators/ts-cat-105",
    "https://www.truckscout24.com/tsp/ts-228-60-500"
  ],
  "maxItems": 300
}
```

### Output example

This is a real row from 1 October 2026 with full details, shortened. Every row has every field. Fields that need the listing page are `null` when **Include full details** is off.

```json
{
  "listingId": "22860500",
  "listingNumber": "A228-60-500",
  "title": "Mercedes-Benz Actros 1840 Retarder Blatt Luft Bett Reifen 80%",
  "make": "Mercedes-Benz",
  "model": "Actros 1840 Retarder Blatt Luft Bett Reifen 80%",
  "subtitle": "Standard tractor unit",
  "price": 9900,
  "currency": "EUR",
  "priceType": "fixed",
  "vat": "plus VAT",
  "priceGross": 11781,
  "condition": "used",
  "year": 2015,
  "firstRegistration": "10/2015",
  "mileageKm": 619226,
  "powerKw": 294,
  "powerHp": 400,
  "fuelType": "diesel",
  "gearbox": "automatic",
  "emissionClass": "euro6",
  "axleConfiguration": "4x2",
  "grossWeightKg": 18000,
  "emptyWeightKg": 7400,
  "payloadKg": 10600,
  "color": "white",
  "equipment": ["Soot filter", "Navigation system", "Air conditioning", "Cruise control", "Differential lock"],
  "attributes": { "Condition": "used", "mileage": "619,226 km", "power": "294 kW (399.73 HP)", "first registration": "10/2015" },
  "technicalData": {
    "Dimensions and weight": { "Overall weight": "18,000 kg", "Empty load weight": "7,400 kg", "Maximum load weight": "10,600 kg" },
    "Motor and gearbox": { "Fuel type": "diesel", "Gearing type": "automatic" }
  },
  "city": "Deggendorf",
  "country": "Germany",
  "countryCode": "DE",
  "description": "(DE), Mercedes-Benz Actros 1840 SZM with various defects. The vehicle is operational and drives, the engine and transmission function perfectly …",
  "imageUrl": "https://cdn.truckscout24.com/data/listing/img/vga/ts/04/05/22860500-01.jpg?v=1790862159",
  "imageCount": 25,
  "referenceNumber": "5762",
  "updatedAt": "2026-10-01",
  "categoryUrl": "https://www.truckscout24.com/tractor-units/used/standard-truck-tractor",
  "sellerId": "75312",
  "sellerVerified": true,
  "sellerRegisteredSince": 2013,
  "sellerListingsOnline": 67,
  "url": "https://www.truckscout24.com/tsp/ts-228-60-500",
  "detailsFetched": true,
  "source": "search",
  "searchUrl": "https://www.truckscout24.com/tractor-units/used",
  "searchName": "Used tractor units for semi-trailers for sale",
  "position": 2,
  "scrapedAt": "2026-10-01T23:20:54.789Z"
}
```

### Use cases

- **Dealers and traders**: watch prices of the models you buy and sell across Europe, and spot reduced prices.
- **Fleet remarketing and leasing**: estimate the resale value of trucks and trailers by year, mileage, power and emission class.
- **Exporters**: find stock by country, with prices excluding VAT.
- **Market research**: count supply by make, category and country, and track it over time.
- **Dealer stock analysis**: group listings by verified dealer ID to see who carries what.

### FAQ

**Do I need a TruckScout24 account, cookies or a login?** No. The scraper reads the same public pages any visitor sees. It never logs in.

**Why is there no seller name or phone number?** TruckScout24 shows the seller's name, address and phone number only to logged-in users. This scraper never logs in, so it returns what anonymous visitors can see: the trust-seal flag and dealer ID for verified dealers, the company logo, when the seller joined and how many listings they have online.

**How many listings can I get?** TruckScout24 shows up to 200 listings for each category or make page. With **Go past 200 listings per category** on (the default), the scraper goes through the subcategories to get more, for example the nine bus types for Buses. For a make, add subcategory URLs such as `truckscout24.com/trucks/used/box/mercedes-benz` to go past 200. **Max listings** is shared fairly between your searches. Set it to 0 to get everything.

**How fast is it?** A results page holds 25 listings and takes about a second, so 200 listings take about 10 seconds. **Include full details** opens every listing page, which adds about half a second per listing.

**Which categories can I combine with a make?** Trucks, Tractor units, Semi-trailers, Trailers, Vans, Buses & coaches, Construction and Agricultural machines, Forklifts, Campervans and Special vehicles. Excavators, Loaders, Cranes and Work platforms are searched whole. You can also paste make pages from the site directly. If TruckScout24 doesn't know a make, it is skipped and not charged.

**What does a run cost?** There is a small fee per run. On top of that, you pay per listing saved, per search and per listing page read for full details. See the Pricing tab. Duplicates and makes TruckScout24 doesn't know are never charged.

**Which proxy should I use?** Keep the default (Apify Proxy, datacenter). It comes with every Apify plan, including the free one. If TruckScout24 refuses datacenter IPs for a while, the run switches to residential proxies when your account has them, and carries on without them when it doesn't.

**Is it legal to scrape TruckScout24?** This Actor only collects publicly available data: vehicle listings that anyone can see on TruckScout24 without an account, such as the make, model, price, technical data, location and the dealer's public profile facts. Collecting publicly available data is generally legal, but you're responsible for how you use it. Most sellers are dealers, but descriptions are written by sellers and can mention a person. The scraper removes personal e-mail addresses and phone numbers from descriptions and never collects the seller contact details that TruckScout24 keeps behind its login. You must follow privacy laws such as GDPR, PIPEDA and CCPA, as well as TruckScout24's terms. If you're unsure, check with a lawyer. More on this: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

**Does it access any private data?** No. Everything comes from pages TruckScout24 shows to any visitor without logging in. It never uses a login, never touches user accounts or the seller details reserved for registered users, and follows the site's robots.txt, so it never uses the site's search form or sorting.

This Actor is not affiliated with, endorsed by, or sponsored by TruckScout24 or its owners. TruckScout24 is a trademark of its owner.

# Actor input Schema

## `categories` (type: `array`):

TruckScout24 categories to scrape. Combine with makes below, e.g. Tractor units + "Volvo".

## `makes` (type: `array`):

Optional: manufacturers, e.g. "Mercedes-Benz", "MAN", "Volvo", "Scania", "DAF", "Iveco". Each make is searched in each category above (Excavators, Loaders, Cranes and Work platforms are searched whole). A make TruckScout24 doesn't know is skipped and not charged.

## `startUrls` (type: `array`):

Optional: any truckscout24.com category, subcategory or make page (e.g. truckscout24.com/trucks/used/box/mercedes-benz or truckscout24.com/Excavators/ts-cat-105), or listing pages (truckscout24.com/tsp/ts-228-61-715). Listing URLs always return full details.

## `maxItems` (type: `integer`):

Maximum number of listings for the whole run, shared fairly between your searches (a search that finds fewer leaves its share to the others). 0 = everything.

## `includeDetails` (type: `boolean`):

Also open every listing page for the complete technical data (dimensions, weights, axles, cab, equipment …), the full description, all gallery images, the seller's reference number, the last update date and how long the seller has been on TruckScout24. The listing cards already have price, make, model, mileage, power, first registration, emission class and location.

## `splitLargeCategories` (type: `boolean`):

TruckScout24 shows at most 200 listings for one category page. When you want more, the scraper goes through the category's subcategories one by one (each counts as a search).

## `proxyConfiguration` (type: `object`):

Apify Proxy (datacenter) is the default and comes with every Apify plan. If TruckScout24 refuses datacenter IPs for a while, the run switches to residential proxies when your account has them.

## Actor input object example

```json
{
  "categories": [
    "trucks"
  ],
  "makes": [
    "Mercedes-Benz"
  ],
  "maxItems": 20,
  "includeDetails": false,
  "splitLargeCategories": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped listings.

## `run` (type: `string`):

Status and statistics for this run.

## `report` (type: `string`):

RUN_REPORT: how the run ended, counts, requests and proxy use.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "categories": [
        "trucks"
    ],
    "makes": [
        "Mercedes-Benz"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("yugenox/truckscout24-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "categories": ["trucks"],
    "makes": ["Mercedes-Benz"],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("yugenox/truckscout24-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "categories": [
    "trucks"
  ],
  "makes": [
    "Mercedes-Benz"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call yugenox/truckscout24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,yugenox/truckscout24-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qk357dtRKKh771O3t/builds/SR1F8ASqSYuxfIw9W/openapi.json
