MachineryTrader Scraper — Dealer Inventory & Price Monitor avatar

MachineryTrader Scraper — Dealer Inventory & Price Monitor

Pricing

from $1.50 / 1,000 scraped machinerytrader listings

Go to Apify Store
MachineryTrader Scraper — Dealer Inventory & Price Monitor

MachineryTrader Scraper — Dealer Inventory & Price Monitor

Scrape MachineryTrader heavy equipment listings for dealers and buyers: asking prices, make/model/year, hours, serials, dealer phones, and images. Monitor mode tracks new inventory and price changes.

Pricing

from $1.50 / 1,000 scraped machinerytrader listings

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Crawloop Used Machinery Marketplace Suite — US heavy equipment asking prices, dealer phones, and inventory change alerts. Pair with European Machineryline / Exapro / auction Actors for cross-market comps.

Machineryline (EU)MachineryTrader (US)ExaproTroostwijkSurplex
Machineryline ScraperMachineryTrader Scraper ◄── you are hereExapro ScraperTroostwijk ScraperSurplex Scraper

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by MachineryTrader, Sandhills Global, or their brands. Data is read from publicly accessible pages only. You are responsible for complying with applicable law and site terms. No warranty on accuracy or availability.

What this MachineryTrader scraper does

Extract MachineryTrader construction and heavy equipment listings into clean JSON on Apify: asking price, make, model, year, hours, serial number, dealer phone, location, and images. Built for equipment dealers, appraisers, fleet buyers, and data teams who need a MachineryTrader API alternative in Python, Node.js, or MCP workflows — export to dataset / CSV / Excel without manual browsing.

Use listings for fast catalog pulls (cards already include dealer phone and specs) or details for PDP street-address enrichment. Enable monitorMode with an Apify Schedule to track new inventory and price changes per dealer or category.

When to use

  • Dealer competitive intelligence — watch a rival AccountCRMID inventory daily
  • Asking-price comps for excavators, mini excavators, dozers, wheel loaders, skid steers, lifts, and aggregate equipment
  • Fleet sourcing and replacement planning by manufacturer, model, hours, or US state
  • Outreach lists with published dealer phones (no details mode required for most retail cards)
  • Join US asking prices with EU stock from Machineryline Scraper

For European dealer boards, use Machineryline Scraper. For industrial auction lots, use Troostwijk Scraper or Surplex Scraper. For farm equipment in Europe, see Agriaffaires Scraper.

US ↔ EU machinery workflow

US asking prices EU enrichment / auctions
──────────────── ───────────────────────
MachineryTrader Scraper ◄── you are here
│ dealer phones, hours, serials, monitor deltas
Machineryline Scraper ──────────► EU heavy equipment + contacts
Exapro / Machineseeker ─────────► CNC & industrial boards
Troostwijk / Surplex ───────────► auction lots & bids
Join by make + model + year ──► comps, remarketing, residual checks

Key features

  • Search URL or filters — paste a search / dealer inventory / category URL, or build one from manufacturer, category id, keywords, state, and AccountCRMID
  • Two modeslistings (fast SSR cards with phone + specs) and details (ld+json address enrichment)
  • Monitor mode — seed fingerprints, then emit only new / price_change rows; optional Telegram alerts
  • Dealer phones on cards — outreach fields without visiting every PDP
  • Cloudflare-readycurl_cffi Chrome TLS; Apify Residential (US) recommended
  • Priced-only filter — skip Call-for-price and zero-price rows
  • Listing typesFor Retail, For Rent, and Auction Results metadata (sold prices may be login-gated)

Input

FieldTypeDefaultDescription
startUrlsArrayexcavators sampleSearch, category, dealer inventory, or detail URLs
searchQueryStringKeywords for a built search URL
listingTypeStringFor RetailFor Retail, For Rent, or Auction Results
manufacturerStringe.g. CATERPILLAR, JOHN DEERE, KOMATSU
categoryStringCategory id (e.g. 1031 excavators, 1025 dozers)
accountCrmIdStringDealer AccountCRMID inventory watch
stateStringUS state filter when building a search URL
runModeStringlistingslistings or details
pricedOnlyBooleanfalseKeep only rows with a published price
maxItemsInteger100Emit budget (seed run: fingerprint budget)
maxPagesPerUrlInteger10Pages per start URL (~28 listings/page)
monitorModeBooleanfalseDelta tracking via named KV store
monitorStoreNameStringmachinerytrader-monitor-stateDistinct name per watch target
proxyConfigurationObjectUS Residential prefillApify proxy settings
{
"startUrls": [
{
"url": "https://www.machinerytrader.com/listings/search?ListingType=For%20Retail&AccountCRMID=10693"
}
],
"runMode": "listings",
"monitorMode": true,
"monitorStoreName": "mt-hampton-excavators",
"maxItems": 500,
"maxPagesPerUrl": 20,
"pricedOnly": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

With monitorMode: true, the first run seeds fingerprints and writes no dataset rows. Later scheduled runs emit only changeType: "new" or "price_change".

Output

FieldDescription
idListing id
title / make / model / yearEquipment identity
price / currency / priceFormattedAsking price when published
hours / serialNumber / stockNumberSpecs from the card
dealerName / dealerPhone / dealerWebsiteDealer contact
accountCrmIdDealer account key for inventory watch URLs
location / city / state / postalCodeMachine location
images / imageCountPhoto URLs
changeType / previousPrice / monitoredAtMonitor deltas only
{
"id": "218824435",
"title": "2026 EARTHWORM CONVEYORS 30X100",
"make": "EARTHWORM CONVEYORS",
"model": "30X100",
"year": "2026",
"price": 56730,
"currency": "USD",
"priceFormatted": "USD $56,730",
"condition": "New",
"category": "Conveyor / Feeder / Stacker Aggregate Equipment",
"dealerName": "Hampton Equipment LLC",
"dealerPhone": "+12606385032",
"accountCrmId": "10693",
"location": "Fort Wayne, Indiana 46816",
"url": "https://www.machinerytrader.com/listing/for-sale/218824435/2026-earthworm-conveyors-30x100-conveyor-slash-feeder-slash-stacker-aggregate-equipment"
}

Use cases

JobHow
Competitor dealer watchaccountCrmId + monitorMode on an Apify Schedule
Category price scanCategory / manufacturer filters, pricedOnly, export JSON or CSV
Dealer outreach listlistings mode — phones already on retail cards
Cross-market compsJoin make/model/year with Machineryline Scraper
MCP / AI researchAsk an assistant via Apify MCP to run filters and summarize prices

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/machinerytrader-scraper').call({
manufacturer: 'CATERPILLAR',
category: '1031',
runMode: 'listings',
maxItems: 50,
pricedOnly: true,
proxyConfiguration: {
useApifyProxy: true,
apifyProxyGroups: ['RESIDENTIAL'],
apifyProxyCountry: 'US',
},
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 3));

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("crawloop/machinerytrader-scraper").call(
run_input={
"accountCrmId": "10693",
"runMode": "listings",
"monitorMode": True,
"monitorStoreName": "mt-dealer-10693",
"maxItems": 300,
"pricedOnly": True,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US",
},
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("changeType"), item.get("title"), item.get("price"))

cURL

curl "https://api.apify.com/v2/acts/crawloop~machinerytrader-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"manufacturer\":\"JOHN DEERE\",\"category\":\"1031\",\"maxItems\":25,\"pricedOnly\":true}"

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name (crawloop/machinerytrader-scraper).

Example prompts:

  • "Run MachineryTrader Scraper for CATERPILLAR excavators, max 40, priced only, and return title, price, hours, dealerPhone as JSON"
  • "Monitor dealer AccountCRMID 10693 on MachineryTrader and list only new or price-changed rows"
  • "Scrape MachineryTrader listings for skid steers in TX, then compare asking prices with Machineryline Scraper for the same make and model"

Suite next step

After US asking prices, pull European dealer stock and contacts with Machineryline Scraper, or industrial auction lots with Surplex Scraper.

FAQ

Is this a MachineryTrader API?
There is no official public bulk API for most users. This Actor is a structured scrape / API alternative that returns a dataset you can call from Python, Node.js, cURL, or MCP.

Do I need details mode for dealer phones?
Usually no — retail cards already expose dealerPhone, website, and location. Use details when you need street address from PDP ld+json.

How do I watch one dealer?
Set accountCrmId (from any listing card) or paste a dealer inventory search URL, enable monitorMode, pick a unique monitorStoreName, and schedule the Actor.

Why are Auction Results prices empty?
Sold amounts are often login-gated in anonymous HTML (Price: 0). The Actor still returns auction metadata; use pricedOnly to skip zero rows.

Which proxy should I use?
Apify Residential with apifyProxyCountry: "US" is recommended — the site sits behind Cloudflare.

Can I filter Caterpillar excavators only?
Yes — set manufacturer to CATERPILLAR and category to 1031, or paste an equivalent search URL in startUrls.

ActorRole
Machineryline ScraperEU heavy equipment + dealer contacts + monitor
Exapro ScraperEuropean used industrial machinery
Machineseeker ScraperMachineseeker / Maschinensucher regional boards
Truck1 ScraperEuropean trucks & construction equipment
Agriaffaires ScraperEuropean farm machinery
Troostwijk ScraperEuropean industrial auction lots
Surplex ScraperEuropean plant-closure auctions