# Autoline, Machineryline & Agroline Scraper (`normdata/autoline-scraper`) Actor

Scrape Autoline, Machineryline and Agroline: trucks, trailers, vans, construction and farm machinery from 850k+ listings. Price, year, mileage, hours, power, specs, location, dealer. Every filter. Seller phones, WhatsApp, address and full specs as an add-on.

- **URL**: https://apify.com/normdata/autoline-scraper.md
- **Developed by:** [Norm Data](https://apify.com/normdata) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 94.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 listing saveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 🚛 Autoline, Machineryline & Agroline Scraper

Extract listings from **Autoline**, **Machineryline** and **Agroline**, the LineMedia marketplaces with 850k+ used and new trucks, trailers, vans, buses, construction machinery and farm equipment from dealers across Europe and the world. Search by category, brand, model and country with every filter the sites have, or paste any search link. You get one clean table with typed fields.

Each listing comes with:

- Title, **brand**, **model**, category, site, offer type (sale, rent, auction), **condition**.
- **Price** with currency, **price in EUR**, price on request flag.
- **Year**, **mileage (km)**, **running hours**, **power (HP)**, fuel, **Euro emission class**, axle configuration.
- Every attribute shown on the search card.
- **Country**, city, **dealer name**, verified dealer, years on the site.
- Main photo, photo count, listing link.
- Add-on: **seller contacts and full specs**. **Phone numbers**, **WhatsApp**, **Viber**, contact person, spoken languages, opening hours, **dealer address with latitude and longitude**, dealer page, dealer's ad count, **rating and reviews**, years on the market, gross price (with VAT), first registration, gearbox, **VIN**, **every spec on the listing**, full description, every photo and the date placed.

> 👉 **Try it now:** press **Start**. The ready-made input gives you 10 listing saveds in a few seconds.<br>
> 💰 **$0.004 per listing saved** on the Free plan (10 listing saveds per run), from $0.0035 on paid plans. [See pricing](#-pricing)

### ✨ Why this scraper?

> - **Search by name, not only by link**<br>
>   Type categories, brands, models and countries. No need to build search links by hand.
>
> - **Seller contacts**<br>
>   The add-on opens each listing for phones, WhatsApp, Viber, contact person, address and coordinates.
>
> - **Full specs**<br>
>   Every spec on the listing page (gross weight, suspension, retarder, cab, tyres, hydraulics...) as label: value, plus VIN, gearbox and the full description.
>
> - **Fast**<br>
>   1,000 listings in about 15 seconds. With seller contacts and full specs, about 450 listings per minute.
>
> - **No page cap**<br>
>   Leave the maximum empty to get every match.
>
> - **Typed, ready to analyse**<br>
>   Prices, year, mileage, hours, power and coordinates are numbers. Dates are ISO. No proxy needed.
>
> - **Apify platform**<br>
>   Schedule runs, get only new listing saveds, export to Excel or CSV, use the API, or connect Google Sheets, Zapier and Make.

### ⚖️ How it compares

Based on each Actor's public README and input options (October 2026).

| Capability | This actor | sn41lz |
|---|:--:|:--:|
| Autoline, Machineryline, Agroline | **yes** | yes |
| Paste search links | **yes** | yes |
| Search by category, brand, model, country name | **yes** | no |
| Condition, offer type, price, year, mileage, hours, power filters | **yes** | only inside a link |
| Several values per filter in one run | **yes** | no |
| Keywords filter | **yes** | no |
| Page limit | **none** | 400 pages per link |
| Opens listing pages | **add-on** | no |
| Phones, WhatsApp, Viber, contact person | **add-on** | no |
| Dealer address, coordinates, rating, reviews | **add-on** | no |
| Full specs, VIN, description, gross price | **add-on** | no |
| New listings only (monitoring) | **yes** | no |

### 🚀 How to scrape Autoline, Machineryline & Agroline

1. Create a free Apify account.
2. Pick the filters you need, or keep the ready-made input.
3. Click **Start**.
4. Download the listing saveds as Excel, CSV or JSON from the **Output** tab.

### 💰 Pricing

#### How much does it cost to scrape Autoline, Machineryline & Agroline?

You pay a one-time **$0.005** per run, plus a price for each listing saved saved (and for each add-on you turn on):

| Charged for | Free | Bronze | Silver | Gold+ |
| --- | --- | --- | --- | --- |
| **Listing saved**: One listing saved to your dataset with price, year, mileage, hours, power, location and dealer. | 0.004 | 0.0035 | 0.003 | 0.0025 |
| **Seller contacts and full specs**: Extra per listing saved with phones, WhatsApp, Viber, dealer address, every spec and the full description. | 0.008 | 0.007 | 0.006 | 0.005 |

Example: 1,000 listing saveds cost about **$3.5** on Bronze. No proxy or compute costs on top.

### 📦 What data you get

| Field | Description |
| --- | --- |
| `id`, `autolineRef`, `url` | Listing ID, the sites' own reference (e.g. "RW52717") and the listing page. |
| `title`, `brand`, `model`, `category` | As the site shows them. |
| `site`, `offerType` | Autoline, Machineryline or Agroline; sale, rent or auction. |
| `condition` | used, new, demonstration and so on. |
| `price`, `currency`, `priceEur`, `priceOnRequest` | Asking price in the seller's currency and in EUR. |
| `grossPrice` | Add-on: price with VAT, when the seller gives it. |
| `year`, `firstRegistration` | Year of manufacture; first registration (add-on). |
| `mileageKm`, `runningHours`, `powerHp` | Numbers. |
| `fuel`, `euroClass`, `gearbox`, `axleConfiguration`, `vin` | `gearbox` and `vin` come with the add-on. |
| `attributes` | Every attribute on the search card, as label: value. |
| `specs` | Add-on: every spec on the listing page, as label: value. Ticked features are `true`. |
| `description` | Add-on: the seller's full text. |
| `country`, `city` | Where the vehicle or machine is. |
| `sellerType`, `sellerName`, `verifiedSeller`, `yearsOnSite` | Dealer or private seller. |
| `yearsOnMarket`, `sellerAdsCount`, `sellerRating`, `sellerReviews`, `sellerUrl` | Add-on: dealer profile. |
| `contactPerson`, `phones`, `whatsapp`, `viber`, `languages`, `workingHours` | Add-on: how to reach the seller. |
| `sellerAddress`, `latitude`, `longitude` | Add-on: dealer address and map point. |
| `placedOn` | Add-on: date the listing was placed. |
| `image`, `images`, `imageCount` | Main photo; every photo with the add-on. |
| `searchedFor` | Which of your searches or links found it. |
| `scrapedAt` | When the row was collected (UTC). |
| `error` | Why the details are missing, when a listing page could not be loaded. |

#### Example row (trimmed, with seller contacts and full specs)

```json
{
  "id": "26100620490206528500",
  "autolineRef": "RW52717",
  "title": "Mercedes-Benz Actros 1848 LS ACC AUT KlimaA LM Luft Standh",
  "brand": "Mercedes-Benz",
  "category": "Truck tractor",
  "site": "Autoline",
  "offerType": "sale",
  "condition": "new",
  "price": 99900,
  "currency": "EUR",
  "priceEur": 99900,
  "grossPrice": 118881,
  "year": 2026,
  "mileageKm": 1700,
  "fuel": "diesel",
  "gearbox": "automatic",
  "axleConfiguration": "4x2",
  "specs": { "Gross weight": "19,000 kg", "Suspension": "air/air", "Retarder": true, "Colour": "white" },
  "country": "Germany",
  "city": "Zimmern o.R.",
  "sellerType": "dealer",
  "sellerName": "Riess GmbH & Co. KG Mercedes-Benz und DAF Vertragspartner",
  "verifiedSeller": true,
  "sellerAdsCount": 161,
  "sellerRating": 4.5,
  "sellerReviews": 212,
  "contactPerson": "Stefan Schirmer",
  "phones": ["+491607191060", "+497411743030"],
  "languages": ["English", "Polish", "German"],
  "workingHours": ["Mon - Fri 07:45 - 18:00", "Sat 08:00 - 14:00"],
  "sellerAddress": "Germany, Baden-Wurttemberg, 78658 , Zimmern o.R., Albring 19",
  "latitude": 48.168262,
  "longitude": 8.569562,
  "placedOn": "2026-10-06",
  "imageCount": 16,
  "url": "https://autoline.info/-/sale/truck-tractors/Mercedes-Benz/Actros-1848-LS-ACC-AUT-KlimaA-LM-Luft-Standh--26100620490206528500",
  "searchedFor": "truck tractors · Germany",
  "scrapedAt": "2026-10-06T18:32:57.609Z",
  "error": null
}
```

### ⚙️ Input

| Section | What it's for |
| --- | --- |
| **Maximum listings** | Always first: caps the whole run, shared across your searches. Empty means no limit. |
| **What** | Categories, sites, brands, models, search links. |
| **Where** | Countries or regions. |
| **Condition and deal** | Condition, offer type, availability. |
| **Price, year and use** | Price, year, mileage, running hours ranges. |
| **Engine and equipment** | Power, Euro class, fuel, gearbox, drive, colour, keywords. |
| **Sort** | Price, year or mileage. |
| **Add-ons** | Seller contacts and full specs. |
| **Monitoring** | New listings only, with an optional monitor name. |

The sites take one value per filter, so several categories, brands, countries or filter values run as one search per combination, with duplicates removed.

#### 🔗 Links and filters together

| You fill in | What runs |
| --- | --- |
| Only categories, brands, models or countries | A search for each, with every filter you set. |
| Only links | Each link exactly as it is on the site. |
| Links + filters (condition, price, year, mileage, hours, power, Euro class, fuel, gearbox, drive, colour, availability, keywords) | Each link, narrowed by your filters. A price or year range replaces the same range in the link. A filter the link already has in its address (for example "Euro-6" in the path) stays as the link has it. |
| Links + categories, brands, models or countries | The links and the name searches both run, each with your filters. A listing found by both is saved once. |

Sort applies to links that have no sort of their own. The maximum is shared across all links and searches.

#### Input examples

#### 🚚 Euro 6 truck tractors in Germany and Poland, newest first

```json
{ "categories": ["truck tractors"], "locations": ["Germany", "Poland"], "euroClasses": ["euro6"], "sortBy": "yearNew", "maxItems": null }
```

#### 🏗️ Used Caterpillar and Komatsu excavators under 5,000 hours

```json
{ "categories": ["excavators"], "brands": ["Caterpillar", "Komatsu"], "condition": ["used"], "maxRunningHours": 5000, "maxItems": null }
```

#### 🚜 Fendt Vario 724 tractors with prices

```json
{ "models": ["Fendt Vario 724"], "minPrice": 1, "sortBy": "priceLow", "maxItems": null }
```

#### 📞 Lead list: semi-trailer dealers in Europe with phones and WhatsApp

```json
{ "categories": ["semi-trailers"], "locations": ["Europe"], "includeDetails": true, "maxItems": 5000 }
```

#### 🔔 New combines every morning

```json
{ "categories": ["combines"], "onlyNew": true, "maxItems": null }
```

#### 🔗 A search you already made on the site, narrowed to used Euro 6 from 2019

```json
{ "urls": [{ "url": "https://autoline.de/-/Sattelzugmaschinen/DAF--c42tm2525?sort=price-desc" }], "condition": ["used"], "euroClasses": ["euro6"], "minYear": 2019, "maxItems": null }
```

### 🔗 Related scrapers

> - [8891 Scraper](https://apify.com/normdata/auto8891-scraper): Taiwan Used Cars: Prices, Mileage, Dealers.
> - [AutoScout24 Scraper](https://apify.com/normdata/autoscout24-scraper)
> - [AutoTempest Scraper](https://apify.com/normdata/autotempest-scraper)
> - [Christie's Auction Scraper](https://apify.com/normdata/christies-scraper)

### ❓ FAQ and troubleshooting

#### Is there an Autoline, Machineryline & Agroline API? Do I need an API key?

> Autoline, Machineryline & Agroline has no public data API for this. This Actor works as an Autoline, Machineryline & Agroline API alternative: it reads the public pages and gives you clean JSON, CSV or Excel, with no API key, no login and no code to maintain. You can also call it from your own code with the Apify API, or from an AI agent through MCP:
> `claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/autoline-scraper"`

#### Why do I get only 10 listing saveds?

> On the Apify free plan each run saves up to 10 results, so you can try it before paying. Any paid plan removes the limit.

#### A category, brand or model was ignored

> The log says why. Use the names the sites use ("truck tractors", "excavators", "tractors") and write models as brand plus model ("DAF XF 106").

#### Some listings have WhatsApp or Viber but no phone

> Some dealers hide their phone numbers on the site and show only WhatsApp or Viber. Those are saved in `whatsapp` and `viber`.

#### Is this an official Autoline, Machineryline & Agroline tool?

> No. It is independent and not affiliated with Autoline, Machineryline & Agroline. It reads only data Autoline, Machineryline & Agroline publishes on its public pages, at a moderate pace. Use the data in line with Autoline, Machineryline & Agroline's terms and the laws that apply to you.

### 📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

# Actor input Schema

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

Stop after this many listings in total. Leave empty for no limit (every matching listing). The Apify Free plan is always capped at 10.

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

One per line, in English as on the site, e.g. "truck tractors", "semi-trailers", "vans", "dump trucks", "excavators", "wheel loaders", "cranes", "tractors", "combines", "balers". Main categories and subcategories both work. Each category is searched on the site that has it. Leave empty for every category.

## `sites` (type: `array`):

Which marketplaces to search. Autoline: trucks, trailers, vans, buses, cars. Machineryline: construction, mining, material handling and industrial machinery. Agroline: tractors, harvesters and farm machinery. Leave empty for all three (categories are found on the site that has them).

## `brands` (type: `array`):

One per line, e.g. "DAF", "Volvo", "Mercedes-Benz", "Scania", "Caterpillar", "Komatsu", "John Deere", "Claas". Each brand is a separate search. Leave empty for all brands.

## `models` (type: `array`):

Brand and model on one line, e.g. "DAF XF", "Scania R 450", "Caterpillar 320", "John Deere 6155R". A model replaces its brand in the Brands list.

## `urls` (type: `array`):

Search pages from Autoline, Machineryline or Agroline in any language (autoline.info, autoline.de, …), e.g. https://autoline.info/-/truck-tractors/DAF/Germany--c42tm2525cntDE?ym=2018%3A. Every filter in the link is kept. The filters below (condition, price, year, mileage, fuel...) narrow the link further; a filter the link already sets in its address wins. Categories, brands, models and countries run as separate searches next to the link.

## `locations` (type: `array`):

One per line: a country name or two-letter code ("Germany", "NL", "Poland", "USA") or a region ("Europe", "America", "Asia"). Each is a separate search. Leave empty for the whole world.

## `condition` (type: `array`):

Keep only ANY of these. Each value is a separate search. Leave empty for all.

## `adType` (type: `array`):

Sale, rent, auction, leasing and other offer types. Each value is a separate search. Leave empty for all.

## `availability` (type: `string`):

In stock now, or on request (ordered from the maker).

## `minPrice` (type: `integer`):

At least this price, in euros (the site converts other currencies).

## `maxPrice` (type: `integer`):

At most this price, in euros.

## `minYear` (type: `integer`):

Made in this year or later, e.g. 2018.

## `maxYear` (type: `integer`):

Made in this year or earlier.

## `minMileage` (type: `integer`):

At least this many kilometres.

## `maxMileage` (type: `integer`):

At most this many kilometres, e.g. 500000.

## `minRunningHours` (type: `integer`):

At least this many engine hours (machinery and tractors).

## `maxRunningHours` (type: `integer`):

At most this many engine hours, e.g. 5000.

## `minPowerHp` (type: `integer`):

At least this much engine power, in horsepower.

## `maxPowerHp` (type: `integer`):

At most this much engine power, in horsepower.

## `euroClasses` (type: `array`):

Keep only ANY of these Euro classes. Each value is a separate search.

## `fuels` (type: `array`):

Keep only ANY of these. Each value is a separate search.

## `gearboxes` (type: `array`):

Keep only ANY of these. Each value is a separate search.

## `driveTypes` (type: `array`):

Keep only ANY of these. Each value is a separate search.

## `colors` (type: `array`):

Keep only ANY of these. Each value is a separate search.

## `keywords` (type: `array`):

Keep only listings whose title, category or features contain ANY of these words, e.g. "retarder", "ADR", "4x4", "low deck". Leave empty for all.

## `sortBy` (type: `string`):

Order of the results. Matters most when you set a Maximum.

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

Open each listing page for the seller's phone numbers, WhatsApp and Viber, contact person, spoken languages, opening hours, full address with coordinates, dealer page, stock size, rating and reviews, plus the full spec sheet (every feature), VIN, gross price, first registration, gearbox, the seller's description, placed-on date and every photo. Charged as an add-on per listing. Slower, since each listing is one more page.

## `onlyNew` (type: `boolean`):

For scheduled runs: save only listings this same search has not saved before. The first run saves everything; later runs save just what is new. Kept per search (categories, brands, links and filters).

## `monitorName` (type: `string`):

Optional. Give "New listings only" a fixed name to keep its memory even after you change the filters.

## Actor input object example

```json
{
  "maxItems": 10,
  "categories": [
    "truck tractors"
  ],
  "includeDetails": false,
  "onlyNew": false
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

# 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 = {
    "maxItems": 10,
    "categories": [
        "truck tractors"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/autoline-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 = {
    "maxItems": 10,
    "categories": ["truck tractors"],
}

# Run the Actor and wait for it to finish
run = client.actor("normdata/autoline-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 '{
  "maxItems": 10,
  "categories": [
    "truck tractors"
  ]
}' |
apify call normdata/autoline-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,normdata/autoline-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/DIUkzVvfVqzRMN1kE/builds/b8FefV4QZhgivUhwD/openapi.json
