Automotive Vehicle Scraper avatar

Automotive Vehicle Scraper

Pricing

from $1.10 / 1,000 vehicle scrapeds

Go to Apify Store
Automotive Vehicle Scraper

Automotive Vehicle Scraper

Paste vehicle listing URLs from 31 car marketplaces and get each one as a schema.org Car record with the full attribute set: VIN, mileage, price, fuel, transmission, body type, colour and dealer location. Export data, run via API, schedule and monitor runs, or integrate with other tools.

Pricing

from $1.10 / 1,000 vehicle scrapeds

Rating

0.0

(0)

Developer

E Commerce

E Commerce

Maintained by Apify

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Paste vehicle listing URLs from 31 car marketplaces and get each car back as a schema.org Car record with the full attribute set — VIN, mileage with its unit, price with its currency, fuel, transmission, drivetrain, engine, body type, colour, condition, trim, seller type, posting date and a location with coordinates. Mix sites freely in one run: a CarMax link, an Otomoto advert and an Encar listing all land in the same columns.

What does the Automotive Vehicle Scraper do?

  • Reads the vehicle's own page, which is where VIN, engine, equipment, seller address and the full photo set live — deeper than any results page.
  • Takes URLs from 31 marketplaces and normalises every one into a single schema.org Car shape, with a source column naming the site.
  • Keeps each market's own units. Prices carry the site's ISO 4217 currency; odometers carry SMI for miles or KMT for kilometres. Nothing is silently converted.
  • Falls back gracefully. Paste a search or category page by mistake and it is read as a listing, returning the vehicles on it rather than an error.
  • Returns everything the page exposes. Nothing is de-duplicated or relevance-filtered, so your own matching rules stay yours.

Which sites does it support?

United States — Craigslist, CarMax, CarGurus, AutoTrader, cars.com, TrueCar, Carvana, Bring a Trailer, Hemmings. United Kingdom — AutoTrader UK, Motors UK, Cinch. Europe — AutoScout24, Leboncoin, La Centrale, Coches.net, Subito, Marktplaats, Otomoto, Standvirtual, Blocket, Finn.no, Mobile.bg. Asia-Pacific — Carsales, CarsGuide, Encar, Goo-net, SgCarMart, CarDekho. Americas — AutoTrader Canada, MercadoLibre.

Why scrape individual vehicle listings?

  • Enrich a shortlist. You already have the URLs from a search, a spreadsheet or a colleague — this turns them into structured rows with VIN and full specs.
  • Watch specific cars. Run the same URLs on a schedule and see price drops, status changes and removals.
  • Verify a VIN before buying. Pull the seller's own stated mileage, condition, title status and equipment straight from the advert.
  • Build a comparison set. Ten links from six countries, one dataset, each priced in its own currency.

Quick start

  1. Copy the address of any vehicle page from a supported marketplace.
  2. Paste it into Vehicle page URLs. Add as many as you like, from as many sites as you like — or upload a file, or point at a Google Sheet.
  3. Optionally set Maximum vehicles, which caps the run.
  4. Click Start and export the dataset to JSON, CSV, Excel or XML.

Input parameters

FieldTypeDescription
vehicleUrlsarrayVehicle listing page URLs — one record per URL. Paste them, add them in bulk, upload a file, or point at a Google Sheet. Example: https://www.carmax.com/car/70002037.
maxResultsPerUrlintegerOnly applies when a URL turns out to be a model or search page rather than one vehicle, capping how many vehicles are taken from it. Default 100.
maxResultsintegerStop after this many vehicles. Optional — leave empty to scrape every URL you provided.

Example vehicle URLs:

https://www.carmax.com/car/70002037
https://www.cargurus.com/details/453768925
https://www.otomoto.pl/osobowe/oferta/skoda-octavia-ID6I5urQ.html

What data do you get?

One record per vehicle, 22 fields, in schema.org Car shape:

FieldMeaning
source, name, url, descriptionMarketplace, listing title, direct link, seller's text
brand, model, vehicleModelDateMake, model, model year (first registration in Europe)
vehicleIdentificationNumberVIN, where the site publishes one
mileageFromOdometerValue plus unitCodeSMI miles or KMT kilometres
offersPrice plus its ISO 4217 priceCurrency
fuelType, vehicleTransmission, driveWheelConfiguration, vehicleEnginePowertrain as stated
bodyType, color, itemCondition, vehicleConfigurationBody style, colour, condition, trim
image, datePosted, sellerTypeFirst gallery image, publication date, dealer or private
itemLocationschema.org Place with postal address and coordinates
{
"source": "CarMax",
"@type": "Car",
"name": "2015 Toyota Camry LE 4dr Sedan",
"url": "https://www.carmax.com/car/70002037",
"brand": { "@type": "Brand", "name": "Toyota" },
"model": "Camry",
"vehicleModelDate": "2015",
"vehicleIdentificationNumber": "4T1BF1FK0FU931195",
"mileageFromOdometer": { "@type": "QuantitativeValue", "value": 145400, "unitCode": "SMI" },
"offers": { "@type": "Offer", "price": 9995, "priceCurrency": "USD", "itemCondition": "excellent" },
"vehicleTransmission": "Automatic",
"sellerType": "dealer",
"itemLocation": { "@type": "Place", "geo": { "latitude": 37.3492, "longitude": -121.9 } }
}

How do you run it from your own code?

curl -X POST "https://api.apify.com/v2/acts/e-commerce~automotive-vehicle-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"vehicleUrls":[{"url":"https://www.carmax.com/car/70002037"}]}'

Swap runs for run-sync-get-dataset-items to start the run and get the rows back in the same call. Schedule a run daily, send new rows to a webhook, or push them into Google Sheets, Airtable, Slack or S3 with the platform's integrations.

How much will it cost?

Pay per event, charged once for each vehicle returned to the dataset:

PlanPer vehiclePer 1,000 vehicles
Free$0.0020$2.00
Bronze$0.0017$1.70
Silver$0.0014$1.40
Gold$0.0011$1.10
Platinum$0.0008$0.80
Diamond$0.0005$0.50

No compute charge on top: a run that returns nothing costs only the start event.

Troubleshooting

IssueSolution
A URL returned nothingOpen it in a browser. Sold or withdrawn listings are removed by the marketplace, and there is nothing left on the page to read.
One URL returned many rowsThat URL was a model or search page, not a single vehicle. It is read as a listing; maxResultsPerUrl caps how many come back.
vehicleIdentificationNumber is nullNot every site publishes a VIN. AutoScout24 and AutoTrader UK do not; CarMax, CarGurus, cars.com, TrueCar and Carvana do.
Price looks wrong by a factor of 100Check priceCurrency — the value is the site's own figure in its own currency, never converted.
Mileage looks wrongCheck unitCode: SMI is miles, KMT is kilometres. European and Asian sites publish kilometres.
sellerType is nullNot every marketplace distinguishes dealer from private seller.
The run stopped earlymaxResults caps the whole run. Raise it, or leave it empty to scrape every URL.
A shortened or redirect link failedPaste the final listing URL, not a share or tracking link.

Scraping publicly available listing data is legal in most jurisdictions, and this Actor reads only pages any visitor can open. It collects no personal data beyond what a seller published in a public advert. How you use the data, including under GDPR and CCPA, is your responsibility.

FAQ

I don't have URLs yet. Use the Automotive Keyword Scraper to search by make, model and location, or the Automotive Search URL Scraper to scrape a search page you already built.

Can I mix marketplaces in one run? Yes — paste URLs from any of the 31 sites; the source column tells them apart.

Does it work with agents and MCP? Yes — it runs over the standard Apify API, so any MCP client or agent framework with Apify support can call it.

Can I export to CSV or Excel? The dataset exports to JSON, CSV, Excel, XML and HTML, or streams over the API.

Changelog

  • 1.1 — 31 marketplaces, per-market currency and odometer units, search-page fallback.
  • 1.0 — Vehicle URL scraping, schema.org Car output, pay-per-event pricing.

Feedback

Found a marketplace worth covering, or a field empty where the page shows it? Open an issue on the Issues tab with the URL you used.