EasyAuto123 Scraper - Vehicle Listings, VINs & Dealer Data avatar

EasyAuto123 Scraper - Vehicle Listings, VINs & Dealer Data

Pricing

from $1.00 / 1,000 dataset items

Go to Apify Store
EasyAuto123 Scraper - Vehicle Listings, VINs & Dealer Data

EasyAuto123 Scraper - Vehicle Listings, VINs & Dealer Data

Scrape EasyAuto123 vehicle listings into clean structured data. Extract prices, VINs, odometer readings, make, model, year, trim, specs, images, dealer names, locations, contact details, listing URLs, and optional extra fields for market research, lead generation, and inventory tracking.

Pricing

from $1.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Features

Limited permissions

Share

EasyAuto123 Scraper: Used Car Listings, Prices & Dealer Details

EasyAuto123 Scraper turns easyauto123.com.au into a clean used-vehicle dataset. Get make, model, variant, year, price, odometer, VIN, fuel and transmission, plus the dealer's name, address, phone, email and rating for every listing. Build a search from filters or paste EasyAuto123 links, switch on detail fields for specs, ratings and full photo sets, track the same search over time with incremental mode, then export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Two ways to build a pull. Search by make, model, variant, dealer location, price, year and odometer range, body type, fuel, transmission, colour, lifestyle, size and EasyAuto123 category, or paste search and vehicle URLs directly.
  • Listing and detail depth. Turn on detail fields to add engine and drive specifications, ANCAP and CO2 ratings, warranty terms and extra photo sets, fetched from each vehicle's own page.
  • Dealer details attached. Store name, address, phone, email and rating are attached from EasyAuto123's store directory whenever it is available, no separate lookup needed.
  • Built for monitoring. Incremental mode tracks the same search across scheduled runs and classifies every vehicle as new, updated, unchanged, reappeared or expired. Read the limits under "Resume and recurring updates" before relying on expiry detection.
  • Skip what you already have. Point a run at a previous run or dataset and it never re-saves or re-bills vehicles already saved there (see the limit on how far a resumed search walks, below).
  • Cost control built in. Max items and max pages cap a run before it starts, and detail fields carry a separate, clearly billed surcharge only when they are actually fetched successfully.
  • Deliver straight to your apps. Pipe results into Notion, Linear, Airtable or Apify through MCP connectors as an optional extra step.

Use Cases

  • Dealers and resellers: monitor EasyAuto123 stock, pricing and store coverage against your own inventory.
  • Price and market researchers: track how price, odometer and stock status move for specific makes, models or price bands over time.
  • Lead generation and CRM teams: pull dealer contact details and vehicle specs to route enquiries to the right store.
  • Comparison sites and marketplaces: build a feed of listings with specs, images and store details for your own site or app.
  • Finance, insurance and valuation teams: gather year, odometer, VIN and specification data to support valuations.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
listingId"sample-listing-00001"
urlEasyAuto123 link to the vehicle's own detail page
title"2019 Toyota Corolla Ascent Sport"
make / model / variant"TOYOTA" / "COROLLA" / "Ascent Sport"
year2019
price / priceType24990 / "Drive Away"
odometer52000
vin"SAMPLEVIN00000001"
fuelType / transmission / driveType"Petrol" / "Automatic" / "FWD"
engineCapacity"1800"
colour / vehicleTypes"White" / ["Hatchback"]
fuelConsumption / co2Emission / ancapRating"6.4" / "150" / "5 star" (when detail fields are on)
stockNumber / series / description / lifestyle / vehicleSizeDealer stock number, model series code, trim description, lifestyle and size class (when detail fields are on)
registrationNumber / registrationState / registrationExpiryDateRegistration plate, state and expiry date as listed (when detail fields are on)
seats / cylinders / engineCapacityLitres / torque / countryOfOriginEngine and drive specifications (when detail fields are on)
isDriveawayPrice / driveawayPrice / listPrice / isReserved / stateNameWhether the listed price is drive-away, the drive-away and list price, reservation flag, full state name
state / location / region"QLD" / "Sample Suburb" / "Sample Region"
carType / banner / status"Quality Verified" / "Reduced" / "IN-STOCK"
primaryImage / imageCountimage URL / 12
storeName / storeAddress"easyauto123 Sample Suburb" / "1 Sample Street, Sample Suburb QLD 4000"
storePhone / storeEmail / storeRating"(07) 5550 1234" / "sales@example.com" / 4.6
warranty / engineSpecifications / driveSpecifications / suspensionfull detail-page spec objects (when detail fields are on)
changeType / changedFields"UPDATED" / ["price"] (incremental mode only)
firstSeenAt / lastSeenAtISO timestamps (incremental mode only)
storeRaw / rawVehiclethe complete source store and vehicle objects

How to Use

  1. Pick a mode: search (build a filtered search) or url (paste EasyAuto123 links).
  2. Fill in the filters for search mode, or add one or more search or vehicle URLs for url mode.
  3. Set Max items (and optionally Max pages) to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search by make, model and fuel type:

{
"mode": "search",
"makes": ["Toyota"],
"models": ["COROLLA"],
"fuelTypes": ["Petrol"],
"maxItems": 20
}

Search by location and price range:

{
"mode": "search",
"locations": ["Hendra, QLD"],
"minPrice": 15000,
"maxPrice": 35000,
"sort": "price-asc",
"maxItems": 50
}

Paste a listing search URL:

{
"mode": "url",
"urls": ["https://easyauto123.com.au/buy/used-cars?page=1&limit=20&fuel-type=Hybrid"],
"fetchDetails": true
}

Supported URL shapes (URL mode):

URL shapeExample
Paginated searchhttps://easyauto123.com.au/buy/used-cars?page=1&limit=20
Later pagehttps://easyauto123.com.au/buy/used-cars?page=2&limit=20
Bare listing (page and limit are added for you)https://easyauto123.com.au/buy/used-cars
Make and model filterhttps://easyauto123.com.au/buy/used-cars?p=Toyota.CAMRY
Price range filterhttps://easyauto123.com.au/buy/used-cars?min-price=0&max-price=10000
Sorted searchhttps://easyauto123.com.au/buy/used-cars?sort=price-asc&page=1&limit=20
Vehicle detail pagehttps://easyauto123.com.au/buy/used-cars/details/2024/KIA/CARNIVAL/S/VIC/Melbourne/Brooklyn/Automatic/Blue/Wagon-7+-Seater/KNANB81BMS6498995

Three more link forms are handled explicitly:

URL shapeWhat happens
https://www.easyauto123.com.au/buy/used-cars?page=1&limit=20www. is normalised to https://easyauto123.com.au.
http://easyauto123.com.au/buy/used-cars?page=1&limit=20http:// is normalised to https://.
Category page https://easyauto123.com.au/buy/electric-and-hybrid-carsThe page itself lists no vehicles, so it is resolved to the search its own button opens (used Hybrid and Electric vehicles, ordered by recent price reductions) and walked page by page like any search URL. Other site pages such as /buy/finance are skipped with a warning in the log, and the run fails with a clear message if none of your URLs is supported.

Default urls (URL mode): the input form ships a list of six example URLs (listing page 1, a make and model filter, a price band, a sorted search, the electric and hybrid category and one vehicle page). The actor walks them in order and stops at maxItems (20 by default), so a default run reads the first listing page. An explicit empty list ("urls": []) scrapes one page, /buy/used-cars?page=1&limit=20. Incremental mode treats a run that uses the shipped default list, an omitted urls and an empty list as the same tracked search, so changing between them does not start a new baseline. The input form pre-fills one example of each supported shape; the shipped default list leaves out the bare listing and page-2 examples because they resolve to the same pages as the first URL. Paste any shape from the tables above to scrape something else. In URL mode only the URLs are used and the search filters are ignored; in Search mode the filters are used and URLs are ignored.

Filters and sorts

Search mode accepts makes, models, variants, locations, vehicleTypes, fuelTypes, transmissions, colours, lifestyles, vehicleSizes, carTypes, minYear/maxYear, minPrice/maxPrice and maxOdometer (see Input Parameters). sort controls ordering, for example price-reduced (default) or price-asc; the input form lists every available sort. minOdometer is retired and ignored because the site has no such facet.

Cheaper list-only run, no detail fields:

{
"mode": "search",
"vehicleTypes": ["SUV"],
"fetchDetails": false,
"maxItems": 100
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/easyauto123-cars-scraper").call(run_input={"mode": "search", "makes": ["Toyota"], "maxItems": 20})
for vehicle in client.dataset(run["defaultDatasetId"]).iterate_items():
print(vehicle["title"], vehicle["price"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/easyauto123-cars-scraper').call({ mode: 'search', makes: ['Toyota'], maxItems: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Max items and max pages

Max items is the main cap: the run stops once that many vehicles have been saved or a search runs out of pages (see "How a search or URL ends" under "Resume and recurring updates" below). Max pages is optional; leave it at 0 for no page cap, and set it only when you want to limit how far a single search or pasted URL can page through results.

Resume and recurring updates

  • How a search or URL ends. Every search or pasted URL is walked from its first page. A page the site itself returns with fewer vehicles than its page size (20 unless the URL sets limit), or with none, is the last page and ends that search or URL. A full page whose vehicles were already collected (earlier in the same run, from an earlier pasted URL, or seeded by resumeFromRunId) does not end it: the walk goes on to the next page, reading listings only, with no detail fetch and no charge for vehicles already seen, until it reaches the site's short or empty page, Max pages or Max items. Cases to know about:
    • Several pasted URLs in one run. Overlapping URLs are each walked to their own end; vehicles already collected are skipped and never saved or billed twice. Overlapping URLs cost extra listing-page reads only.
    • Resume. A resumed search starts again at page 1 and walks past the pages the earlier run already saved, reading listings only, until it finds new vehicles or the end. Set Max pages if you want to bound that re-reading.
    • Max items. The run stops as soon as Max items vehicles are saved. A page cut short by that cap is not treated as the end of the search, so EXPIRED detection is skipped for that run. In incremental mode unchanged vehicles are held back and use no slot, so the run keeps reading pages until Max items changed or new vehicles are saved or the search reaches its end; only the vehicles after the last saved one on the final page are left unexamined, and they are picked up by the next run.
    • Listings moving between pages mid-run. On a busy search, a vehicle can shift from one page to the next while the run is paging, so it can be missed on that run and picked up on the next.
  • resumeFromRunId continues ONE specific interrupted run. Paste a previous run ID or dataset ID and this run never re-saves or re-bills vehicles already saved there, subject to the page-walk rules above.
  • Incremental mode (incrementalMode) is for scheduling the SAME search again and again and only getting what changed. The first run returns every matching vehicle as NEW. Later runs return only NEW, UPDATED and REAPPEARED vehicles by default. Turn on emitUnchanged or emitExpired to also return (and bill) unchanged or expired vehicles.
  • State is kept separately for each distinct combination of filters (or pasted URLs), plus whether detail fields are fetched. Raising Max items or Max pages tomorrow does not start a new baseline. stateKey optionally names or shares a monitoring campaign across otherwise different setups; leave it empty to let the actor derive one automatically.
  • EXPIRED rows are only produced with emitExpired on, and only after a scan that provably reached the end of every search or URL: the site itself returned a short or empty page, no Max items or Max pages cap was hit, no resumeFromRunId was used, and no pasted URL started past page 1 (or pointed at one vehicle; the shipped default list is exempt). Overlapping pasted URLs do not turn it off, because each is walked to the site's own last page. If a run stops early for any other reason, expiry detection is skipped and tracked vehicles keep their previous state. EXPIRED rows never exceed the Max items still available in the run.
  • ignoreFieldsForChanges lists field names that must not make a vehicle UPDATED (for example banner, or a nested path such as engineSpecifications.power). Ignored fields are still returned; they are only left out of change detection and changedFields. Changing this list never causes a wave of false UPDATED rows, because the saved state is compared again with the current list.
  • Comparison contract. Each vehicle is fingerprinted from its returned fields (minus any in ignoreFieldsForChanges). Same fingerprint as last run means UNCHANGED; a different fingerprint means UPDATED with the differing fields in changedFields; a vehicle seen before but missing from the previous run is REAPPEARED. A detail page fetched only to compute the fingerprint of an unchanged vehicle is neither saved nor charged.
  • A field-level change is only reported when the value genuinely changes between two successfully observed values. The vehicle's own last-updated timestamp, and the signed query parameters on its image links, do not by themselves count as a change.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title (the vehicle name) and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchBuild a search from filters, or start from one or more URLs.
urlsarraysix example URLs (listing page 1, a make and model filter, a price band, a sorted search, the electric and hybrid category, one vehicle page)EasyAuto123 search, category or vehicle URLs (url mode). An explicit empty list scrapes the first listing page (/buy/used-cars?page=1&limit=20).
keywordsarray(none)Optional free-text make word (search mode). Prefer Makes, Models and Variants for exact matches.
makesarray(none)Vehicle makes to include.
modelsarray(none)Vehicle models, used together with Makes.
variantsarray(none)Vehicle variants, used together with Makes and Models.
locationsarray(none)Dealer locations in Suburb, STATE form.
vehicleTypesarray(none)Body and type labels, for example SUV, Wagon, Sedan.
fuelTypesarray(none)Fuel labels to include (Petrol, Diesel, Hybrid, Electric).
transmissionsarray(none)Transmission labels to include (Automatic, Manual).
coloursarray(none)Vehicle colours to include.
lifestylesarray(none)Lifestyle labels, such as Family or Tradie.
vehicleSizesarray(none)Size labels to include (Small, Medium, Large).
carTypesarray(none)EasyAuto123 vehicle category (Quality Verified, Budget).
minYearinteger(none)Only include vehicles from this release year or newer.
maxYearinteger(none)Only include vehicles from this release year or older.
minPriceinteger(none)Only include vehicles at or above this displayed price.
maxPriceinteger(none)Only include vehicles at or below this displayed price.
minOdometerinteger(none)Retired: the live source has no minimum-odometer facet, so this value is ignored. Kept for saved tasks.
maxOdometerinteger(none)Only include vehicles at or below this odometer reading.
sortstringprice-reducedResult ordering.
fetchDetailsbooleantrueAdds fields only available on individual vehicle pages, with a per-item surcharge on each successfully enriched item.
maxItemsinteger20Stop after this many saved vehicles.
maxPagesinteger0Optional page cap per search or URL (0 = no cap).
resumeFromRunIdstring(none)Continue one interrupted run without re-scraping what it already saved.
incrementalModebooleanfalseReturn only new and changed vehicles on scheduled runs of the same search.
stateKeystring(none)Name or share an incremental-mode monitoring campaign.
emitUnchangedbooleanfalseAlso return (and bill) unchanged vehicles, marked UNCHANGED.
emitExpiredbooleanfalseAlso return (and bill) vehicles no longer found, marked EXPIRED.
ignoreFieldsForChangesarray(none)Field names (or dotted nested paths) left out of change detection in incremental mode.
mcpConnectorsarray(none)Optional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which vehicle pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.
proxyConfigurationobjectApify ProxyConnection settings.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"listingId": "sample-listing-00001",
"url": "https://easyauto123.com.au/buy/used-cars/details/2019/TOYOTA/COROLLA/Ascent-Sport/QLD/Sample-Region/Sample-Suburb/Automatic/White/Hatchback/SAMPLEVIN00000001",
"title": "2019 Toyota Corolla Ascent Sport",
"make": "TOYOTA",
"model": "COROLLA",
"variant": "Ascent Sport",
"year": 2019,
"price": 24990,
"priceType": "Drive Away",
"odometer": 52000,
"vin": "SAMPLEVIN00000001",
"fuelType": "Petrol",
"transmission": "Automatic",
"driveType": "FWD",
"engineCapacity": "1800",
"colour": "White",
"vehicleTypes": ["Hatchback"],
"state": "QLD",
"location": "Sample Suburb",
"region": "Sample Region",
"carType": "Quality Verified",
"status": "IN-STOCK",
"primaryImage": "https://example.com/sample-vehicle-1.jpg",
"imageCount": 12,
"storeName": "easyauto123 Sample Suburb",
"storeAddress": "1 Sample Street, Sample Suburb QLD 4000",
"storePhone": "(07) 5550 1234",
"storeEmail": "sales@example.com",
"storeRating": 4.6
}

Output views

The dataset has five views in the Console: Overview (headline vehicle fields plus change columns), Store info (dealer name, address, phone, email, rating), Media (primary image, image count, image URLs), Changes (incremental) (changeType, changedFields, first and last seen) and Vehicle detail (specifications, warranty and pricing detail, detailFetched). Fields marked "when detail fields are on" are filled only with fetchDetails enabled.

Plan Requirement

The default proxy setting uses Apify Proxy. Listing pages start on the default Apify connection; vehicle detail pages (read when fetchDetails is on) start on a residential Australian connection unless you pick proxy groups yourself, in which case your groups are used first. Whether the datacenter connection serves every page type has not been measured for this site, so detail pages do not depend on it. Each page gets up to three attempts, and the attempts are spread across connections: if the first connection stalls or fails, the actor moves to the next one (residential, default, then backup connections) instead of retrying the same one, and logs: "Served over the backup connection (the default connection was unavailable)." when a backup connection carried pages. Residential access is not included on Apify free plans. If you supply your own proxy URLs, only those are used, with no escalation.

A run that could not load any page ends as failed, with one of these messages, instead of reporting an empty result:

  • Proxy refused for the account: "The proxy connection was refused for this account, so no page could be read. Your Apify plan does not include proxy access; a paid plan is required." Check your plan, or the credentials of your own proxy URLs.
  • Residential unavailable and backup failed: "No results: residential proxies are unavailable on this run (Apify free plans do not include them), and the backup connection could not load the requested easyauto123 pages." Upgrade your plan or supply your own proxy URLs.
  • Pages failed to load: "Could not load any results page (the requests failed), so nothing was collected. This is a connection problem, not an empty search." Try again later.

FAQ

How much does it cost?

You pay per record returned, plus a separate detail-enrichment surcharge only for items whose detail page was actually fetched and enriched successfully; suppressed or unchanged rows in incremental mode are never charged for it. The Pricing tab shows the current rates. Use Max items to cap the cost of any run.

This actor collects only publicly available vehicle listing data. You are responsible for how you use it: follow EasyAuto123's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Listing details such as price and specifications are generally facts, but photos may be subject to third-party rights.

Can I get only new or changed vehicles on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared vehicles by default, and unchanged ones are not billed unless you turn on Emit unchanged.

What's the difference between Resume and Incremental mode?

resumeFromRunId continues ONE specific interrupted run from a pasted run or dataset ID. Incremental mode is for running the SAME search again and again on a schedule and remembers its own state, no ID needed. Use Resume after a run stops partway through; use Incremental mode for ongoing monitoring. Both reuse the page-walk rules in "Resume and recurring updates" above: a resumed search walks past the pages already saved (listings only) instead of stopping, and an incremental run stops at the site's own last page or when Max items is reached.

Does a run with several pasted URLs read all of them in full?

Yes. Each URL is paged from its start to the site's own last page, or until Max pages or Max items stops the run. Vehicles already collected from an earlier URL in the same run are skipped (never saved or billed twice), but their listing pages are still read, so overlapping URLs take a little longer.

Why did my run fail instead of returning an empty dataset?

If a listing page still cannot be fetched after several retries, the run is marked failed instead of succeeded (anything already saved before that page stays in the dataset), so a blocked or unreachable site is not mistaken for "no matching vehicles". Run it again in a few minutes. Two softer failures do not stop the run: a vehicle whose detail page cannot be read still ships with its listing-level fields (and no detail surcharge), and if the store directory cannot be read, vehicles ship without the dealer name, address, phone, email and rating.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

🔗 Want more car data?

Pair this actor with these related scrapers from the same team:

🚗 Carsales.com.au Scraper
Scrape structured vehicle listings from Carsales.com.au from $1 per 1K results. Built to...
🚗 Autotrader US
Scrape US car listings from Autotrader by make, model, ZIP, price, year, body style...
🚗 AutoTrader UK Scraper
Pull structured vehicle listings from autotrader.co.uk at scale. Search by filters or use...
🏷️ Gumtree AU Scraper
Scrape gumtree.com.au classifieds across every vertical: for-sale goods, motors, real...
🚗 AutoScout24 Scraper
A lean, production-grade scraper for autoscout24.com. Point it at a search, get back...
🚗 Craigslist Scraper
Scrape Craigslist postings in any of 700+ cities worldwide: price, title, posting text...

👉 Browse all abotapi scrapers

💬 Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.