# Used Heavy Equipment Scraper with Dealer Contacts (`scrapers_lat/mascus-equipment-scraper`) Actor

Scrape used heavy equipment, trucks & farm machinery for sale: excavators, loaders, dozers, cranes, tractors and more. Get make, model, year, price, hours, location and the selling dealer's name, address, phone and email. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/mascus-equipment-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Used Heavy Equipment Scraper with Dealer Contacts

> Turn the world's largest used heavy-equipment marketplace into a clean, structured feed of machines for sale — complete with the selling dealer's name, address, phone and email.

**📥 [Input](https://apify.com/scrapers_lat/mascus-equipment-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/mascus-equipment-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/mascus-equipment-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/mascus-equipment-scraper/examples)**

Scrape used construction machinery, trucks, agricultural and material-handling equipment for sale across a global, dealer-heavy marketplace. Search by keyword, browse a specific category, or filter by make, country, year and price. Every listing comes back as one flat record ready for JSON, CSV or Excel.

### What you get

Each record is a single equipment listing with:

- **Machine**: title, make, model, year, category, operating hours or mileage, condition and serial number
- **Price**: asking price and currency (plus EUR), with auction and rental flags and auction event/date
- **Location**: city, country and map coordinates
- **Dealer lead**: dealer/company name, full street address, region, postal code, country, website and phone
- **Contact**: seller contact name, email, mobile and WhatsApp (with full details on)
- **Media & link**: primary image, image count and the listing URL

### Who is it for

- Equipment dealers and brokers building **prospect and competitor lists**
- Rental fleets and contractors sourcing machines and tracking market prices
- Finance, insurance and remarketing teams monitoring inventory and residual values
- Data teams enriching CRMs with verified dealer contacts

### How to use it

1. Enter one or more **search terms** (e.g. `volvo excavator`) or pick an **equipment category**.
2. Optionally narrow by **make**, **country**, **year** or **price** range.
3. Keep **Fetch Full Details** on to include dealer email, address and specs; turn it off for listing data only.
4. Set **Max Listings** and run. Export the results as JSON, CSV or Excel.

### FAQ

**Do I need an account or login for the source site?** No. The actor handles everything and requires no cookies or keys.

**Are empty runs charged?** No. You are only billed for real listing records that are returned. A run that matches nothing costs nothing.

**How current is the data?** Every record is fetched live at run time and stamped with the observation time.

### Related actors

- Heavy Equipment & Machinery Scraper with Dealer Emails
- More scrapers at [scrapers.lat](https://scrapers.lat)

***

This is an independent tool that collects publicly available listing information. It is not affiliated with, endorsed by, or connected to any marketplace or brand referenced by users.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search, one search per item (e.g. 'volvo excavator', 'komatsu wheel loader'). Leave empty to browse by category instead.

## `category` (type: `string`):

Optional: browse a specific equipment category instead of keyword search.

## `make` (type: `string`):

Optional: filter by manufacturer (e.g. Volvo, Caterpillar, Komatsu, John Deere).

## `country` (type: `string`):

Optional: keep only listings located in this 2-letter ISO country (e.g. US, DE, FR).

## `yearMin` (type: `integer`):

Optional: only equipment built in this year or later.

## `yearMax` (type: `integer`):

Optional: only equipment built in this year or earlier.

## `priceMin` (type: `integer`):

Optional: minimum asking price (in the listing currency, default USD).

## `priceMax` (type: `integer`):

Optional: maximum asking price (in the listing currency, default USD).

## `withDetails` (type: `boolean`):

When on (default), each listing is enriched from its detail page with seller email/name, full dealer address, website, coordinates, serial number and description. Turn off to pay for listing data only.

## `maxListings` (type: `integer`):

Maximum number of equipment listings to return across all searches.

## Actor input object example

```json
{
  "searchTerms": [
    "volvo excavator",
    "cat dozer"
  ],
  "withDetails": true,
  "maxListings": 50
}
```

# Actor output Schema

## `results` (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 = {
    "searchTerms": [
        "excavator"
    ],
    "maxListings": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/mascus-equipment-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 = {
    "searchTerms": ["excavator"],
    "maxListings": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/mascus-equipment-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 '{
  "searchTerms": [
    "excavator"
  ],
  "maxListings": 50
}' |
apify call scrapers_lat/mascus-equipment-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/mascus-equipment-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/IFucWaShuRqjKDHNH/builds/3801EENv3f8WHOhqW/openapi.json
