eBay Motors Scraper avatar

eBay Motors Scraper

Pricing

from $1.40 / 1,000 listing saveds

Go to Apify Store
eBay Motors Scraper

eBay Motors Scraper

Scrape eBay Motors vehicles and parts: price, year, make, model, trim, mileage, VIN, title status, seller, location, part numbers and fitment. Active or sold listings on ebay.com, .co.uk, .de, .com.au and .ca. No login. Export to JSON, CSV or Excel.

Pricing

from $1.40 / 1,000 listing saveds

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

eBay Motors Scraper: vehicle and parts listings with year, make, model, mileage, VIN, title status and fitment

eBay Motors Scraper turns any eBay Motors search into a spreadsheet of cars, trucks, motorcycles, boats or parts. It works for dealers watching inventory and prices, vehicle-pricing tools, and parts resellers. Each vehicle row has the price, buying format, year, make, mileage, title status, transmission, drive type, seller and location. With details on, you also get the VIN, model, trim, engine, colors, the vehicle history summary and all photos. Parts rows have brand, part numbers, condition, shipping, quantity sold and the fitment the listing states.

  • Two modes. Vehicles (cars & trucks, motorcycles, powersports, boats, trailers, other vehicles) or parts & accessories. Each mode gets its own fields and its own table view.
  • Vehicle data in columns. year, make, model, trim, mileage, vin, titleStatus (clean, salvage, rebuilt...), engine, transmission, drivetrain and colors. eBay's item specifics are mapped to fixed columns, so you don't have to parse titles.
  • Active or sold. Collect live listings, or sold listings with soldAt and soldPrice for price comparisons.
  • Filters you need. Make, model, year range, price, max mileage, condition, auction or Buy It Now, ZIP code and radius, sort order, or any eBay category ID. You can also paste an eBay search URL with your own filters.
  • Five eBay sites. ebay.com (full eBay Motors), ebay.co.uk, ebay.de, ebay.com.au and ebay.ca (cars and parts).
  • Pay per listing, no subscription. No eBay account, API key or proxy setup needed. Export to JSON, CSV, Excel or Google Sheets.

Scope: This actor searches eBay Motors (vehicles and parts & accessories). For other eBay categories, use a general eBay search or sold-listings actor.

What can you do with eBay Motors Scraper?

GoalHow
Price a used vehicleSearch the make, model and year range in sold mode and compare soldPrice by mileage, trim and titleStatus.
Watch dealer inventorySchedule a daily search and compare listingIds and prices between runs.
Find underpriced vehiclesSearch active listings with a max price and max mileage, sorted by lowest price, and check titleStatus and vehicleHistory.
Track auctionsFilter by auction and read bidCount, currentBid, reserveStatus and auctionEndsAt.
Research parts demandSearch a part and sort by quantitySold to see which listings sell.
Match part numbersCollect mpn, oemPartNumbers and interchangePartNumbers for a part type across sellers.
Feed a pricing tool or a dashboardCall the actor through the API and load the dataset into your database or BI tool.

How it compares

What you needeBay Motors ScraperGeneric eBay scrapersManual research on ebay.com
Vehicle fields as columnsYear, make, model, trim, mileage, VIN, title status, engine, colorsUsually title and price, or a raw listRead each listing
Parts fieldsBrand, MPN, OEM and interchange numbers, stated fitmentVariesRead each listing
Sold pricesYes, soldAt and soldPriceVariesYes, one search at a time
FiltersMake, model, years, price, mileage, condition, format, ZIP + radiusMostly keyword and priceYes
Run summaryeBay's result count, saved, filtered and stop reason per searchRarelyNo
PricePay per listingPay per listing or monthlyYour time

Quick start

  1. Click Try for free and sign in to Apify.
  2. Keep Mode on Vehicles and enter a search such as toyota tacoma in Search keywords.
  3. Optional: set Year from 2015 and Year to 2020.
  4. For a first run, set Max results per search to 20.
  5. Click Start. When the run finishes, open the Output tab and export the data.
{
"mode": "vehicles",
"queries": ["toyota tacoma"],
"yearFrom": 2015,
"yearTo": 2020,
"maxItems": 20
}

What data can you extract?

Every row is one listing. These fields come from the search results:

GroupFields
ListinglistingId, title, url, image, price, currency, priceText, originalPrice, condition, location, sponsored
BuyinglistingType (auction, auction_with_buy_it_now, buy_it_now, classified), bidCount, auctionEndsAt, buyItNowAvailable, buyItNowPrice, bestOfferAvailable
Vehicleyear, make, mileage, mileageUnit, titleStatus, transmission, drivetrain (as shown on the search card; not every listing has all of them)
Partsbrand, shippingCost, shippingText, quantitySold
Sellerseller.username, seller.feedbackScore, seller.feedbackPercent, seller.isBusiness (eBay Store sellers)
SoldsoldAt, soldPrice, soldDateText (sold mode only)
Searchquery, marketplace, mode, listingStatus, searchRank, scrapedAt

With Include listing details on, each row also has:

GroupFields
Vehiclemodel, trim, vin, bodyType, engine, cylinders, fuelType, exteriorColor, interiorColor, doors, previousOwners, warranty, sellerType (dealer or private)
HistoryvehicleHistory (provider, score, accidents, owners, title check, odometer check, report date) when eBay shows a report, securePurchase, depositRequired
Partsmpn, oemPartNumbers, interchangePartNumbers, partType, placement, fitmentType, genuineOem, warranty, epid, quantityAvailable, fitment
AuctioncurrentBid, reserveStatus
Listingsubtitle, images (all photos), exact location (city, region, country), categoryPath, itemSpecifics (every item specific), listedAt, endsAt
Sellerseller.displayName, seller.isBusiness (registered business seller), seller.memberSince

Track eBay Motors over time with scheduled runs

Running the same search again and comparing is where most of the value is. Apify can run the actor for you on a schedule and send the results wherever you need them.

1. Save your input as a task

Open the actor, set your searches and filters, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run, and add your task. See Schedules and How to create a schedule.

Common schedules:

Use caseFrequencyCron expression
New listings for a modelTwice a day0 6,18 * * *
Dealer inventory and price watchDaily0 6 * * *
Sold-price compsWeekly (Monday)0 6 * * 1

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically.

4. Compare runs

Every row has listingId and scrapedAt, so runs are easy to join:

  • New listings: listingIds that appear for the first time.
  • Price drops: price per listingId over time.
  • Sold or removed: active listingIds that no longer appear.
  • Market price: median soldPrice per year and mileage band from sold-mode runs.

Input reference

FieldTypeDefaultEffect
modeString"vehicles""vehicles" or "parts". Sets the default category and the fields in each row. A URL from a known Motors category keeps its own mode.
queriesArray of stringsEmptySearch keywords, one search per entry. Can be empty when make or model is set.
startUrlsArray of URLsEmptyeBay search (/sch/) or category (/b/) URLs from the five supported sites. A URL keeps its own site and filters; the filters below don't apply to it.
marketplaceString"ebay.com""ebay.com", "ebay.co.uk", "ebay.de", "ebay.com.au" or "ebay.ca".
vehicleTypeString"cars_trucks""cars_trucks", "motorcycles", "powersports", "boats", "trailers" or "other_vehicles". Types other than cars are ebay.com only.
listingStatusString"active""active" or "sold".
maxItemsInteger50Maximum listings saved per search.
includeDetailsBooleanfalseAdds the detail fields above. One extra request per listing, charged as a separate event.
make / modelStringEmptyAdded to the search keywords.
yearFrom / yearToIntegerEmptyVehicles: eBay's model-year filter (ebay.com, ebay.co.uk, ebay.ca) plus a check on each row's year. Parts: the same year in both fields is added to the keywords; a range is ignored.
maxMileageIntegerEmptyVehicles: drops rows above this mileage. On ebay.com eBay's mileage filter is also used. Rows without a mileage are kept.
minPrice/maxPriceNumberEmptyPrice range in the site's currency.
conditionString"any""any", "new", "used", "certified_refurbished" or "for_parts".
listingTypeString"any""any", "auction", "buy_it_now" or "accepts_offers".
sortByString"best_match""best_match", "ending_soonest", "newly_listed", "price_low", "price_high", "distance_nearest", and for vehicles "year_newest", "year_oldest", "mileage_lowest". Sold searches default to most recently ended.
postalCodeStringEmptySearch near this ZIP or postal code.
maxDistanceIntegerEmptyRadius around postalCode, in miles (ebay.com, ebay.co.uk) or km.
categoryIdStringEmptyAny eBay category ID instead of the default one.
proxyConfigurationObjectResidentialApify Proxy settings. The proxy country follows the marketplace unless you set one.

Ready-to-run examples

Toyota Tacoma 2015–2020 with full vehicle details

{
"mode": "vehicles",
"queries": ["toyota tacoma"],
"yearFrom": 2015,
"yearTo": 2020,
"maxMileage": 100000,
"maxItems": 100,
"includeDetails": true
}

Open the Vehicles view and sort by price or mileage. Check titleStatus and vehicleHistory before contacting a seller.

Sold prices for a model (comps)

{
"mode": "vehicles",
"make": "Ford",
"model": "Mustang",
"yearFrom": 2018,
"yearTo": 2022,
"listingStatus": "sold",
"maxItems": 200
}

Auctions near a ZIP code ending soon

{
"mode": "vehicles",
"queries": ["pickup truck"],
"listingType": "auction",
"postalCode": "75201",
"maxDistance": 200,
"sortBy": "ending_soonest",
"maxItems": 50
}

Parts for a vehicle, with part numbers

{
"mode": "parts",
"queries": ["brake pads"],
"make": "Toyota",
"model": "Tacoma",
"condition": "new",
"maxItems": 100,
"includeDetails": true
}

Sort by quantitySold to see what sells, and compare mpn and oemPartNumbers across sellers.

Motorcycles

{
"mode": "vehicles",
"vehicleType": "motorcycles",
"queries": ["harley davidson softail"],
"maxItems": 100
}

Cars in the UK from your own eBay search URL

{
"startUrls": [{ "url": "https://www.ebay.co.uk/sch/9801/i.html?_nkw=ford+focus&LH_ItemCondition=3000" }],
"maxItems": 100
}

Analyze the results with ChatGPT or Claude

Export the dataset as CSV (the Vehicles or Parts & accessories view keeps it small) and attach it to a chat with ChatGPT, Claude or another AI assistant. Some prompts to start with:

Price a vehicle. "These are sold eBay listings for one model. Group them by year and by mileage band (0–50k, 50–100k, 100k+). For each group show the number of sales and the median soldPrice. What should a 2018 with 60,000 miles and a clean title sell for?"

Find deals. "From these active listings, list the 10 with the lowest price relative to similar year and mileage, excluding salvage or rebuilt titleStatus. Explain each pick."

Parts research. "Group these parts listings by brand and show total quantitySold and median price. Which brands sell most at which price?"

The actor's dataset is also available through the Apify API and integrations such as Make, Zapier and n8n. To run it from your own code, call epicscrapers/ebay-motors-scraper:

curl -X POST "https://api.apify.com/v2/acts/epicscrapers~ebay-motors-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"vehicles","queries":["toyota tacoma"],"yearFrom":2015,"yearTo":2020,"maxItems":20}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('epicscrapers/ebay-motors-scraper').call({
mode: 'parts',
queries: ['brake pads'],
make: 'Toyota',
model: 'Tacoma',
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Output

Results go to the run's default dataset. Use the views Vehicles or Parts & accessories, or export everything as JSON, CSV, Excel, XML or HTML. The key-value store has a RUN_SUMMARY record with, for each search, eBay's total result count (ebayTotalResults, with eBay's text in ebayTotalText and ebayTotalIsEstimate: true for counts such as "5,900+ results"), the rows saved (returned), rows filtered out (filteredOut), duplicates, looseMatchesSkipped, detailsRequested and detailsFailed, the stopReason and the equivalent eBay searchUrl. For sold searches, ebayTotalResults counts eBay's whole sold history (about the last 90 days) for your filters.

This is a real row from a toyota tacoma 2015–2020 search with details on October 3, 2026, with the photo list and item specifics shortened:

{
"query": "toyota tacoma",
"marketplace": "ebay.com",
"mode": "vehicles",
"listingStatus": "active",
"searchRank": 1,
"listingId": "377530137697",
"url": "https://www.ebay.com/itm/377530137697",
"title": "2016 Toyota Tacoma DOUBLE CAB",
"image": "https://i.ebayimg.com/images/g/c8AAAeSwQ6Jquw8g/s-l1600.jpg",
"images": ["https://i.ebayimg.com/images/g/c8AAAeSwQ6Jquw8g/s-l1600.jpg", "…"],
"price": 29990,
"currency": "USD",
"listingType": "buy_it_now",
"buyItNowPrice": 29990,
"bestOfferAvailable": true,
"year": 2016,
"make": "Toyota",
"model": "Tacoma",
"trim": "DOUBLE CAB",
"mileage": 74994,
"mileageUnit": "mi",
"vin": "3TMCZ5ANXGM011685",
"bodyType": "Crew Cab Pickup",
"engine": "3.5L Gas V6",
"cylinders": 6,
"transmission": "Automatic",
"drivetrain": "4WD",
"fuelType": "gasoline",
"exteriorColor": "White",
"interiorColor": "Gray",
"doors": 4,
"titleStatus": "clean",
"condition": "Pre-Owned",
"previousOwners": 3,
"vehicleHistory": {
"provider": "AutoCheck",
"score": 97,
"accidents": "None",
"owners": 3,
"titleCheck": "OK",
"odometerCheck": "OK",
"reportDate": "October 01, 2026"
},
"securePurchase": true,
"depositRequired": 1000,
"sellerType": "private",
"location": "Millers Creek, North Carolina, United States",
"seller": {
"username": "creekside-deals",
"displayName": "creekside deals",
"feedbackScore": 6196,
"feedbackPercent": 99.9,
"isBusiness": true,
"memberSince": "Aug 2003"
},
"categoryPath": ["eBay Motors", "Cars & Trucks", "Toyota", "Tacoma"],
"itemSpecifics": { "Year": "2016", "Mileage": "74994", "Interior Color": "Gray", "…": "…" },
"listedAt": "2026-09-29T01:38:40.000Z",
"endsAt": "2026-10-29T01:38:40.000Z",
"detailsFetched": true,
"scrapedAt": "2026-10-03T08:14:33.027Z"
}

Notes on fields

  • Vehicle rows and parts rows have different fields. Fields that need details are null (or empty lists) without them.
  • price is the current price. For auctions it is the current bid. Shipping is separate (shippingCost, 0 when free). Vehicles usually show no shipping cost.
  • sellerType is what the listing states under "For Sale By" (dealer or private). seller.isBusiness is eBay's business-seller registration. They can differ.
  • fitment comes from the listing's own item specifics (Make, Model, Year, Trim, Engine). It is not eBay's full compatibility chart, which the app API doesn't provide. Many listings, especially large parts sellers, have no fitment in their item specifics; then fitment is null and the vehicles are often listed in the title.
  • interchangePartNumbers and oemPartNumbers are what the seller entered. Some sellers put keywords there.
  • On ebay.co.uk, eBay adds a Buyer Protection fee to private sellers' prices in search results. With details on, the actor removes it from price and reports it in buyerProtectionFee; without details buyerProtectionFee is null and the price may include it. UK vehicles are not affected.
  • soldAt is the sale date at midnight UTC. eBay shows sold listings for about the last 90 days.
  • searchRank is the position among the results eBay returned for that search.
  • Results after eBay's "Results matching fewer words" line are skipped and counted as looseMatchesSkipped in the run summary, because they don't match all keywords or filters.
  • The year and mileage filters drop rows only when the year or mileage is known. Rows without them are kept.
  • Missing values are null. Every row has scrapedAt in UTC.

FAQ

Why did I get few or no results?

Use short keywords a buyer would type, such as toyota tacoma, not a full listing title. Narrow filters (year range, mileage, ZIP radius) reduce results. If eBay has no matches, the run succeeds with 0 rows and says so in the log and status message. The RUN_SUMMARY record shows eBay's own result count for each search.

What happens if eBay blocks the scraper?

The actor retries with a new proxy session. If a search still fails, the run ends as Failed with the reason, and listings already collected stay in the dataset. A blocked search is never reported as "no results".

How many results can I get?

eBay shows at most about 10,000 results per search. Use several narrower searches (by year range or price range) for more.

How fast is it?

A search page of 120 listings takes a few seconds. Details add one request per listing, five at a time. In our tests, 3 vehicles with details took under 10 seconds.

Which eBay sites work?

ebay.com covers every eBay Motors category. ebay.co.uk, ebay.de and ebay.com.au work for cars and parts; ebay.ca works for cars and parts, but has few vehicle listings. On ebay.de item specifics are in German and often sparse. eBay's model-year filter is used on ebay.com, ebay.co.uk and ebay.ca; on ebay.de and ebay.com.au years are checked in each row only.

Do I need proxies, an eBay account or an API key?

No. The actor uses Apify's residential proxies and doesn't log in.

Does it collect personal data?

Rows contain what every eBay visitor sees on the listing: the seller's username, feedback and the item location. The actor doesn't collect phone numbers, emails or buyer data. Some sellers put a phone number in the listing title; that text is part of the title as eBay shows it.

The actor collects publicly visible listing data. You are responsible for how you use it, including eBay's terms and laws such as GDPR and CCPA. Use the data responsibly, for example for market research and pricing, and don't use it to spam sellers.

Cost

This actor uses pay-per-event pricing. You pay only for listings saved, with no subscription and no start fee:

EventCharged when
listingA listing is saved without details.
listing-with-detailsA listing is saved with details (one event per row).

On the free plan a listing costs $2 per 1,000 and a listing with details $3 per 1,000; higher Apify plans pay less (down to $1.40 and $2.10 on Gold). Platform usage and proxy are included.

If a detail request fails, the row is saved without details and charged as listing. Rows that are filtered out, duplicates and loose matches are not charged. The Pricing tab shows the current prices. Set a maximum cost per run; the actor stops cleanly when it is reached.

Support

Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.

This actor is not affiliated with, endorsed by or sponsored by eBay Inc. "eBay" and "eBay Motors" are trademarks of eBay Inc. AutoCheck is a trademark of its owner.