eBay Motors Scraper
Pricing
from $1.40 / 1,000 listing saveds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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,drivetrainand 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
soldAtandsoldPricefor 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?
| Goal | How |
|---|---|
| Price a used vehicle | Search the make, model and year range in sold mode and compare soldPrice by mileage, trim and titleStatus. |
| Watch dealer inventory | Schedule a daily search and compare listingIds and prices between runs. |
| Find underpriced vehicles | Search active listings with a max price and max mileage, sorted by lowest price, and check titleStatus and vehicleHistory. |
| Track auctions | Filter by auction and read bidCount, currentBid, reserveStatus and auctionEndsAt. |
| Research parts demand | Search a part and sort by quantitySold to see which listings sell. |
| Match part numbers | Collect mpn, oemPartNumbers and interchangePartNumbers for a part type across sellers. |
| Feed a pricing tool or a dashboard | Call the actor through the API and load the dataset into your database or BI tool. |
How it compares
| What you need | eBay Motors Scraper | Generic eBay scrapers | Manual research on ebay.com |
|---|---|---|---|
| Vehicle fields as columns | Year, make, model, trim, mileage, VIN, title status, engine, colors | Usually title and price, or a raw list | Read each listing |
| Parts fields | Brand, MPN, OEM and interchange numbers, stated fitment | Varies | Read each listing |
| Sold prices | Yes, soldAt and soldPrice | Varies | Yes, one search at a time |
| Filters | Make, model, years, price, mileage, condition, format, ZIP + radius | Mostly keyword and price | Yes |
| Run summary | eBay's result count, saved, filtered and stop reason per search | Rarely | No |
| Price | Pay per listing | Pay per listing or monthly | Your time |
Quick start
- Click Try for free and sign in to Apify.
- Keep Mode on Vehicles and enter a search such as
toyota tacomain Search keywords. - Optional: set Year from
2015and Year to2020. - For a first run, set Max results per search to
20. - 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:
| Group | Fields |
|---|---|
| Listing | listingId, title, url, image, price, currency, priceText, originalPrice, condition, location, sponsored |
| Buying | listingType (auction, auction_with_buy_it_now, buy_it_now, classified), bidCount, auctionEndsAt, buyItNowAvailable, buyItNowPrice, bestOfferAvailable |
| Vehicle | year, make, mileage, mileageUnit, titleStatus, transmission, drivetrain (as shown on the search card; not every listing has all of them) |
| Parts | brand, shippingCost, shippingText, quantitySold |
| Seller | seller.username, seller.feedbackScore, seller.feedbackPercent, seller.isBusiness (eBay Store sellers) |
| Sold | soldAt, soldPrice, soldDateText (sold mode only) |
| Search | query, marketplace, mode, listingStatus, searchRank, scrapedAt |
With Include listing details on, each row also has:
| Group | Fields |
|---|---|
| Vehicle | model, trim, vin, bodyType, engine, cylinders, fuelType, exteriorColor, interiorColor, doors, previousOwners, warranty, sellerType (dealer or private) |
| History | vehicleHistory (provider, score, accidents, owners, title check, odometer check, report date) when eBay shows a report, securePurchase, depositRequired |
| Parts | mpn, oemPartNumbers, interchangePartNumbers, partType, placement, fitmentType, genuineOem, warranty, epid, quantityAvailable, fitment |
| Auction | currentBid, reserveStatus |
| Listing | subtitle, images (all photos), exact location (city, region, country), categoryPath, itemSpecifics (every item specific), listedAt, endsAt |
| Seller | seller.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 case | Frequency | Cron expression |
|---|---|---|
| New listings for a model | Twice a day | 0 6,18 * * * |
| Dealer inventory and price watch | Daily | 0 6 * * * |
| Sold-price comps | Weekly (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:
priceperlistingIdover time. - Sold or removed: active
listingIds that no longer appear. - Market price: median
soldPriceperyearandmileageband from sold-mode runs.
Input reference
| Field | Type | Default | Effect |
|---|---|---|---|
mode | String | "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. |
queries | Array of strings | Empty | Search keywords, one search per entry. Can be empty when make or model is set. |
startUrls | Array of URLs | Empty | eBay 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. |
marketplace | String | "ebay.com" | "ebay.com", "ebay.co.uk", "ebay.de", "ebay.com.au" or "ebay.ca". |
vehicleType | String | "cars_trucks" | "cars_trucks", "motorcycles", "powersports", "boats", "trailers" or "other_vehicles". Types other than cars are ebay.com only. |
listingStatus | String | "active" | "active" or "sold". |
maxItems | Integer | 50 | Maximum listings saved per search. |
includeDetails | Boolean | false | Adds the detail fields above. One extra request per listing, charged as a separate event. |
make / model | String | Empty | Added to the search keywords. |
yearFrom / yearTo | Integer | Empty | Vehicles: 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. |
maxMileage | Integer | Empty | Vehicles: drops rows above this mileage. On ebay.com eBay's mileage filter is also used. Rows without a mileage are kept. |
minPrice/maxPrice | Number | Empty | Price range in the site's currency. |
condition | String | "any" | "any", "new", "used", "certified_refurbished" or "for_parts". |
listingType | String | "any" | "any", "auction", "buy_it_now" or "accepts_offers". |
sortBy | String | "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. |
postalCode | String | Empty | Search near this ZIP or postal code. |
maxDistance | Integer | Empty | Radius around postalCode, in miles (ebay.com, ebay.co.uk) or km. |
categoryId | String | Empty | Any eBay category ID instead of the default one. |
proxyConfiguration | Object | Residential | Apify 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. priceis the current price. For auctions it is the current bid. Shipping is separate (shippingCost,0when free). Vehicles usually show no shipping cost.sellerTypeis what the listing states under "For Sale By" (dealer or private).seller.isBusinessis eBay's business-seller registration. They can differ.fitmentcomes 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; thenfitmentisnulland the vehicles are often listed in the title.interchangePartNumbersandoemPartNumbersare 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
priceand reports it inbuyerProtectionFee; without detailsbuyerProtectionFeeisnulland the price may include it. UK vehicles are not affected. soldAtis the sale date at midnight UTC. eBay shows sold listings for about the last 90 days.searchRankis the position among the results eBay returned for that search.- Results after eBay's "Results matching fewer words" line are skipped and counted as
looseMatchesSkippedin 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 hasscrapedAtin 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.
Is it legal to scrape eBay?
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:
| Event | Charged when |
|---|---|
listing | A listing is saved without details. |
listing-with-details | A 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.