TruckWorld Scraper — Used Trucks Australia
Pricing
from $2.49 / 1,000 scraped truckworld listings
TruckWorld Scraper — Used Trucks Australia
Scrape TruckWorld used trucks in Australia: prime movers, tippers, and trailers. Extract AUD prices with GST split, odometer, make/model/year, dealer phones, and images.
Pricing
from $2.49 / 1,000 scraped truckworld listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Crawloop Commercial Vehicles Suite — Australian TruckWorld asking prices with GST split, odometer, dealer phones, and inventory change alerts. Pair with European Truck1 for AU vs EU truck comps.
| Truck1 (EU trucks) | Machineryline | Surplex | Troostwijk | TruckWorld |
|---|---|---|---|---|
| Truck1 Scraper | Machineryline Scraper | Surplex Scraper | Troostwijk Scraper | TruckWorld Scraper ◄── you are here |
Disclaimer: Unofficial tool for publicly accessible TruckWorld pages. Not affiliated with, sponsored by, or endorsed by TruckWorld, Sandhills Pacific, or Sandhills Global. Trademarks belong to their respective owners.
For informational and research use only (market research, dealer intelligence, fleet sourcing, price comps). You are responsible for compliance with applicable laws, site terms, and your organization policies.
No warranty as to accuracy, completeness, or continued availability of third-party data.
TruckWorld scraper for Australia’s commercial truck marketplace — prime movers, tippers, tray trucks, pantechs, refrigerated units, utes, trailers, buses, and components. Extract AUD asking prices with GST split (ex GST / inc GST), odometer (km), year, make, model, horsepower, dealer phones, location, and images. Run category or keyword crawls (Kenworth, Isuzu, Hino), dealer inventory (AccountCRMID), or direct listing URLs — a practical TruckWorld API alternative for Python, Node.js, cURL, and MCP on Apify.
Built for truck dealers, fleet buyers, finance desks, and market-intel teams covering Australia. Choose listings for fast card-level catalogs (phones and GST already on the tile) or details for Vehicle JSON-LD street-address enrichment. Enable monitorMode on an Apify Schedule to track new inventory and price changes.
When to use this Actor
Use the TruckWorld Scraper when you need:
- Australian commercial truck inventory — prime movers, tippers, tray, pantech, refrigerated, utes, trailers
- GST-aware AUD prices — card ask plus inc-GST when PriceTaxModel publishes both
- Odometer, year, make/model, horsepower, and right-hand-drive specs
- Dealer phones on listing cards — outreach without visiting every PDP
- Dealer inventory watch via
AccountCRMID - Discovery — category shortcuts, keyword search, or pasted start URLs
Ideal for traders comparing Australian asking prices against EU Truck1 comps.
When not to use
- You need European commercial vehicles → Truck1 Scraper
- You need EU heavy-equipment dealer stock → Machineryline Scraper
- You need industrial auction lots → Surplex Scraper or Troostwijk Scraper
- You need authenticated Auction Results sold hammer prices (often login-gated)
Data pipeline
Input Mode Output───────────────────────── ──────────────────── ──────────────────────────Category / search / dealer ──► listings (fast cards) ──► AUD price, GST, km, phoneKeyword / AccountCRMID ──► details (full PDP) ──► street address, ld+jsonDirect listing URLs ──► ──► make, model, year, HPJoin by make + model + year ──► comps with Truck1 / Machineryline
Key Features
- Two extraction modes —
listingsfor SSR cards;detailsfor Vehicle ld+json address enrichment - GST-aware AUD prices —
price,priceIncGst,gstFlag(ex_gst/inc_gst/na) - Category shortcuts — prime movers, tippers, trailers, utes, and more
- Dealer phones on cards — no details mode required for most retail rows
- Monitor mode — seed fingerprints, then emit only
new/price_change; optional Telegram alerts - Retail-only filter — skip AuctionTime cross-lists and auction-result rows
- Cloudflare-ready — curl_cffi Chrome TLS; Apify Residential (AU) on platform runs
- Export-ready JSON — Apify dataset for CSV / Excel / API / MCP
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array | Prime movers category | Search, category, dealer inventory, or listing URLs. |
searchQuery | String | — | Keywords for a built search URL (e.g. Kenworth). |
categories | Array | [] | Built-in body-type shortcuts (prime-movers, tipper-trucks, …). |
listingType | String | "For Retail" | "For Retail", "For Rent", or "Auction Results". |
manufacturer | String | — | e.g. KENWORTH, ISUZU, HINO. |
category | String | — | Raw Sandhills category id (15158 prime movers). |
accountCrmId | String | — | Dealer AccountCRMID inventory watch. |
state | String | — | e.g. Victoria, NSW, Queensland. |
runMode | String | "listings" | "listings" or "details". |
pricedOnly | Boolean | false | Keep only rows with a published price. |
retailOnly | Boolean | true | Skip auction-result / AuctionTime cross-lists. |
maxItems | Integer | 100 | Cap on emitted records. |
maxPagesPerUrl | Integer | 10 | Pagination depth (~28 listings/page). |
concurrencyLimit | Integer | 5 | Parallel PDP fetches in details mode. |
monitorMode | Boolean | false | Delta tracking via named KV store. |
monitorStoreName | String | truckworld-monitor-state | Distinct name per watch target. |
proxyConfiguration | Object | Residential AU | Apify Residential AU required on platform runs. |
Example input
{"startUrls": [{ "url": "https://www.truckworld.com.au/listings/for-sale/prime-movers/15158" }],"runMode": "listings","maxItems": 50,"maxPagesPerUrl": 2,"retailOnly": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "AU"}}
Output
| Field | Type | Description |
|---|---|---|
id | String | TruckWorld listing id |
title | String | Listing title |
make / model / year | — | Identity fields |
price / priceIncGst / currency | — | AUD ask; GST split when published |
gstFlag | String | ex_gst, inc_gst, or na |
mileage | String | Odometer (typically km) |
horsepower / vin | — | Specs when the card publishes them |
condition | String | New / Used |
dealerName / dealerPhone / accountCrmId | — | Seller surfaces (phone on the card) |
location / state | — | Australian location |
images | Array | Gallery URLs |
url | String | Canonical listing URL |
changeType | String | new / price_change in monitor mode |
Example output (listing card)
{"id": "258974779","url": "https://www.truckworld.com.au/listing/for-sale/258974779/2026-faw-j6p-prime-movers","title": "2026 FAW J6P","make": "FAW","model": "J6P","year": "2026","condition": "New","category": "Prime Movers","price": 199000,"priceIncGst": 218900,"currency": "AUD","gstFlag": "ex_gst","mileage": "22 km","horsepower": "540 HP","dealerName": "FAW Trucks Australia","dealerPhone": "+61380006667","state": "Victoria","location": "Deer Park, Victoria, Australia 3023"}
Use cases
- AU truck price comps for Kenworth / Volvo / Mack prime movers, Isuzu tippers, and tautliners
- GST-aware valuation — track ex-GST asks vs inc-GST display
- Dealer prospecting with phones already on listing cards
- Fleet sourcing by make, km, state, or
AccountCRMID - Scheduled monitor for new stock and price drops
- Python / Node / MCP pipelines that treat TruckWorld as a structured dataset
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/truckworld-scraper').call({startUrls: [{ url: 'https://www.truckworld.com.au/listings/for-sale/prime-movers/15158' }],runMode: 'listings',maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("crawloop/truckworld-scraper").call(run_input={"searchQuery": "kenworth","runMode": "details","maxItems": 20,"state": "Victoria",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("title"), item.get("price"), item.get("dealerPhone"))
cURL
curl "https://api.apify.com/v2/acts/crawloop~truckworld-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"categories":["prime-movers"],"runMode":"listings","maxItems":15}'
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.
Example prompts:
- "Run TruckWorld Scraper for used Kenworth prime movers in Victoria and return the top 20 rows as JSON"
- "Scrape tipper trucks with TruckWorld Scraper and summarize make, km, and ex-GST price"
- "Chain TruckWorld Scraper then Truck1 Scraper to compare AU vs EU prime-mover comps"
Suite next step
After Australian TruckWorld inventory, pull European commercial trucks with Truck1 Scraper, or heavy-equipment dealer stock with Machineryline Scraper. For industrial auction lots, continue with Surplex Scraper or Troostwijk Scraper.
FAQ
Are prices always present?
Priced ads expose an AUD ask. Zero / Call-for-price rows leave price empty. Auction Results often show PriceLabel: "Sold Price" with a gated hammer — retailOnly skips those.
How does GST work?
When both figures are published, price is the card ask and priceIncGst is GST-inclusive. If inc > ask, gstFlag is ex_gst.
Listings vs details?
listings is enough for catalogs, comps, and outreach — cards already include AUD price, GST, km, and dealer phone. Use details when you need the PDP street address from Vehicle JSON-LD.
Where do dealer phones come from?
Retail listing cards already include RetailPhoneNumber. Details mode adds street address from JSON-LD.
Do I need a proxy?
On the Apify platform, yes — Cloudflare blocks datacenter IPs. Use Apify Residential with country AU and keep concurrency modest. Direct curl_cffi from some home/office IPs may work without a proxy.
Why did I stop around 10k listings?
Unfiltered /listings/search caps at ~357 pages (28/page). Shard by categories or manufacturer to cover the full ~19.5k catalog.
Can I watch one dealer?
Yes — pass accountCrmId from a listing card (or a search URL with AccountCRMID=). Pair with monitorMode on a schedule.
How does monitor mode work?
The first run seeds a named Key-Value store (no dataset rows). Later scheduled runs emit only new and price_change. Use a distinct monitorStoreName per dealer or category. Optional Telegram alerts need a bot token and chat id.
Do I need a login?
No. Public browse, search, and advert pages are in scope.
Related Actors
- Truck1 Scraper — European commercial trucks
- Machineryline Scraper — EU heavy equipment + dealers
- Surplex Scraper — industrial auction lots
- Troostwijk Scraper — European industrial auctions
For a structured overview of TruckWorld search and category inputs, GST-aware output fields, API examples, MCP prompts, and dealer monitoring workflows, see the TruckWorld Scraper guide.