eBay Motors Vehicle & Parts Scraper
Pricing
from $2.99 / 1,000 vehicle listings
eBay Motors Vehicle & Parts Scraper
Extract publicly visible eBay Motors listings for cars, trucks, motorcycles, boats, RVs, ATVs, and parts. Search by keyword, vehicle type, condition, price range, and year. Returns listing details or fail-closed access diagnostics when public evidence is unavailable.
Pricing
from $2.99 / 1,000 vehicle listings
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
eBay Motors Vehicle & Parts Classifier
Collect public eBay Motors listings from generated vehicle or parts searches, or enrich specific item URLs. Each saved row records the item identity, price, condition, listing type, item kind, vehicle details when eBay publishes them, official image URLs, the request context, and provenance for the page that produced it. Searches run on the United States, United Kingdom, and Germany marketplaces, and every row states whether a proxy was used.
Get started
- Open the Actor Store page and select Try for free or open the Input tab.
- Choose
mode:searchVehicles,searchParts, orbyListingUrls. For listing URLs, add public eBay/itm/links tostartUrls. - Set
market, a smallmaxItems, and either asearchQueryor a category. KeepincludeDetailsandmaxDetailPagessmall for the first run. - Start the Actor, open the dataset, and export the rows as JSON, CSV, or Excel. Open Run summary (
OUTPUT_SUMMARY) to check item-kind counts and access boundaries.
Input
All fields are optional; the defaults below are ready to use. Unsupported field names and out-of-range values are rejected before requests start. mode determines which target fields matter: generated searches use searchQuery and a category, while byListingUrls reads startUrls.
| Field | Type | Required? | Default | Meaning |
|---|---|---|---|---|
market | string enum | Optional | "uk" | Marketplace for generated searches and currency defaults: us, uk, or de, mapping to eBay.com, eBay.co.uk, or eBay.de. |
mode | string enum | Optional | "byListingUrls" | Target type: searchVehicles for a Motors vehicle search, searchParts for parts, or byListingUrls to read specific item pages. |
searchQuery | string | Optional | Not supplied | Keyword phrase for a generated search, up to 200 characters, such as ford mustang. When empty, the selected category term is used instead. |
query | string | Optional | Not supplied | Legacy alias for searchQuery, up to 200 characters. If both are supplied, searchQuery wins. |
vehicleType | string enum | Optional | "cars-trucks" | Vehicle category for searchVehicles: cars-trucks, motorcycles, boats, rvs-campers, atvs-utvs-snowmobiles, commercial-trucks, or other-vehicles. |
partCategory | string enum | Optional | "car-truck-parts" | Parts category for searchParts: car-truck-parts, motorcycle-parts, boat-parts, atv-parts, or other. |
condition | string enum | Optional | "all" | Condition filter: all, new, used, certified-pre-owned, or for-parts-not-working. It is sent to generated searches and also applied to parsed rows whose condition is known. |
sortBy | string enum | Optional | "best-match" | Result order: best-match, price-asc, price-desc, distance-nearest, newly-listed, or ending-soonest. |
minPrice | integer | Optional | Not supplied | Minimum price in the marketplace currency, from 0 to 10,000,000. Sent on generated searches and applied to parsed numeric prices. |
maxPrice | integer | Optional | Not supplied | Maximum price in the marketplace currency, from 0 to 10,000,000. Sent on generated searches and applied to parsed numeric prices. |
minYear | integer | Optional | Not supplied | Minimum model year, from 1900 to 2030. Applied locally to rows with a parsed year; listings without a year are not excluded by this filter. |
maxYear | integer | Optional | Not supplied | Maximum model year, from 1900 to 2030. Applied locally to rows with a parsed year. |
startUrls | string array | Optional | One eBay.co.uk item URL | Public eBay item URLs used with byListingUrls, up to 5,000 entries. Each must be an http(s) eBay /itm/ URL. |
maxItems | integer | Optional | 1 | Maximum unique listing rows saved, from 1 to 5,000. Generated searches request at most one results page of up to 200 cards. |
includeDetails | boolean | Optional | true | Open public item pages to add make, model, trim, VIN, mileage, engine, transmission, drivetrain, fuel, body, colours, doors, and seats. |
maxDetailPages | integer | Optional | 1 | Maximum generated-search results enriched from item pages, from 0 to 20. byListingUrls reads its supplied item pages regardless of this cap. |
proxyConfiguration | object | Optional | Apify Proxy, residential, GB | Standard Apify Proxy object. Residential egress in the marketplace country is prefilled because eBay blocks unproxied and datacenter traffic; set useApifyProxy to false to go direct. |
Default input:
{"mode": "byListingUrls","market": "uk","startUrls": ["https://www.ebay.co.uk/itm/377440218011"],"vehicleType": "cars-trucks","condition": "all","sortBy": "best-match","maxItems": 1,"includeDetails": true,"maxDetailPages": 1,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "GB"}}
Replace the sample URL with the listing you need. The Actor reads public eBay pages over direct HTTP or the configured Apify Proxy. In search modes it builds one search URL from the query or category, the selected category ID, the sort code, the condition code, and the price bounds. It does not sign in, use private endpoints, solve CAPTCHAs, or bypass access controls; a blocked response is recorded in the run summary and never becomes a dataset row.
Output
The dataset contains one row per unique item, de-duplicated by item ID or item URL across the requested targets. A generated search produces card-level rows; includeDetails enriches up to maxDetailPages of them from item pages. byListingUrls reads the supplied item pages directly. Optional values appear only when eBay publishes them, and no diagnostic or placeholder rows are written.
| Field | Type | Availability | Meaning |
|---|---|---|---|
recordType | string enum | Always | Row type; always ebay-motors-listing. |
recordId | string | Always | Stable identifier built as ebay-motors-<itemId>. |
itemKind | string enum | When published | Heuristic listing class: vehicle, part, or unknown, based on title, category, condition, and vehicle signals. |
found | boolean | Always | Whether a public listing identity was found; true on saved rows. |
dataAvailable | boolean | Always | Whether source-backed fields were parsed; true on saved rows. |
ok | boolean | Always | Whether the row passed extraction and dataset validation; true on saved rows. |
usedProxy | boolean | Always | Whether the fetch used an Apify Proxy URL. |
accessStatus | string | Always | Public access outcome for the row; saved rows carry success. |
evidence | string | Always | Public evidence used: public-listing-card, structured-data, public-item-detail, or public-listing-card+item-detail. |
sourceTransport | string | Always | Transport used for the decisive page: direct or apify-proxy. |
cloudOperations | integer | Always | Reserved operational counter; currently 0. |
httpStatus | integer | Always | HTTP status of the page that produced the row. |
sourceUrl | string | Always | Page actually fetched for the row: the search URL for a card row, or the item URL when a detail page was used. |
itemId | string | Always | eBay item number used as the row identity. |
itemUrl | string | Always | Canonical public item URL. |
url | string | Always | Row URL; currently identical to itemUrl. |
searchUrl | string | When published | Optional search URL recorded with a row; search provenance normally appears in sourceUrl or searchSourceUrl instead. |
searchSourceUrl | string | When published | Search page that produced a row which was later enriched from its item page. |
detailUrl | string | When published | Item URL opened for detail enrichment. |
detailStatus | string | When published | Detail outcome: success, not-requested, limit-reached, no-public-detail-evidence, or the access status that blocked the detail page. |
scrapedAt | string | Always | Time the row was saved, in ISO UTC. |
title | string | Always | Listing title as displayed by eBay. |
price | string | When published | Price text as displayed on the card or item page. |
priceFormatted | string | When published | Formatted price value; currently identical to price. |
priceNumeric | number | When published | Numeric price parsed from the displayed text. |
currency | string | When published | ISO currency code from the page or the selected marketplace default. |
condition | string | When published | Condition label shown on the card or item page, such as New or Used. |
vehicleType | string | When published | Vehicle category exposed by public structured data, when present. |
listingType | string | When published | vehicle-listing, parts-listing, listing, or the source's listing format. |
year | number | When published | Model year parsed from the title, card, or item specifics. |
make | string | When published | Manufacturer or make from item specifics. |
model | string | When published | Model name from item specifics or structured data. |
trim | string | When published | Trim or derivative from item specifics. |
mileage | number | When published | Odometer mileage when the card or item page states one. |
vin | string | When published | Vehicle identification number from item specifics. |
engine | string | When published | Engine or engine-size description. |
transmission | string | When published | Transmission type. |
drivetrain | string | When published | Drivetrain or drive type. |
fuelType | string | When published | Fuel type. |
bodyStyle | string | When published | Body style or body type. |
exteriorColor | string | When published | Exterior colour or colour from item specifics. |
interiorColor | string | When published | Interior colour from item specifics. |
doors | number | When published | Number of doors when listed. |
seats | number | When published | Number of seats when listed. |
seller | object | array | string | number | boolean | When published | Seller name or seller object from the public page. |
location | object | array | string | number | boolean | When published | Item location text or structured location value. |
shipping | object | array | string | number | boolean | When published | Shipping or delivery value from the card, page, or structured data. |
description | string | When published | Description or subtitle exposed in public structured data. |
images | array | object | string | When published | Official eBay image URL or image collection from the card or item page. |
requestedMode | string enum | Always | Mode used for the run: searchVehicles, searchParts, or byListingUrls. |
requestedMarket | string enum | Always | Marketplace code used for the run: us, uk, or de. |
requestedSearchQuery | string | When published | Search phrase recorded from the input, when supplied. |
requestedVehicleType | string | When published | Vehicle category recorded in searchVehicles mode. |
requestedPartCategory | string | When published | Parts category recorded in searchParts mode. |
requestedCondition | string | Always | Condition filter recorded for the run. |
requestedSortBy | string | Always | Sort order recorded for the run. |
requestedMinPrice | integer | When published | Minimum price filter, when supplied. |
requestedMaxPrice | integer | When published | Maximum price filter, when supplied. |
requestedMinYear | integer | When published | Minimum year filter, when supplied. |
requestedMaxYear | integer | When published | Maximum year filter, when supplied. |
requestedMaxItems | integer | Always | Item limit recorded for the run. |
requestedIncludeDetails | boolean | Always | Whether detail enrichment was requested. |
The example below is a real saved card-level row from the 2026-10-25 run.
{"recordType": "ebay-motors-listing","recordId": "ebay-motors-147651701334","itemKind": "vehicle","found": true,"dataAvailable": true,"ok": true,"usedProxy": true,"accessStatus": "success","evidence": "public-listing-card","sourceTransport": "apify-proxy","cloudOperations": 0,"httpStatus": 200,"sourceUrl": "https://www.ebay.com/sch/i.html?_nkw=ford+mustang&_sacat=6001&_ipg=3&_sop=10","itemId": "147651701334","itemUrl": "https://www.ebay.com/itm/147651701334","url": "https://www.ebay.com/itm/147651701334","detailStatus": "not-requested","scrapedAt": "2026-10-25T20:49:57.545Z","title": "1970 Ford Mustang 1970 Ford Mustang Boss 302 clone V8 automatic w/ power","price": "$500.00","priceFormatted": "$500.00","priceNumeric": 500,"currency": "USD","condition": "New","listingType": "vehicle-listing","year": 1970,"mileage": 1970,"location": "Located in United States","shipping": "Delivery or pickup available","images": ["https://i.ebayimg.com/images/g/vhwAAeSwqeFqyO2l/s-l500.jpg"],"requestedMode": "searchVehicles","requestedMarket": "us","requestedSearchQuery": "ford mustang","requestedVehicleType": "cars-trucks","requestedCondition": "all","requestedSortBy": "best-match","requestedMaxItems": 3,"requestedIncludeDetails": false}
This run used includeDetails: false, so detailStatus is not-requested, no detailUrl or searchSourceUrl exists, and the row contains only card-level data. Card parsing is coarse: condition, mileage, and location reflect whatever the search card displayed and can be incomplete or ambiguous. Enable includeDetails with a positive maxDetailPages for item-page specifics such as make, model, vin, engine, and trim.
seller, location, shipping, and images are pass-through public values and may be a string, object, array, or number depending on the page. images is usually an array of absolute ebayimg.com URLs, capped at eight per card and twelve per detail page. The requested* fields echo normalized input values, not source values.
Run summary
Run summary is stored separately from the dataset in the run's key-value store under OUTPUT_SUMMARY, with an identical legacy copy under OUTPUT. Diagnostics are logged and counted here; they never become dataset rows.
| Field | Meaning |
|---|---|
status | Actor process outcome: SUCCEEDED or FAILED. |
runStatus | Canonical run status; matches status. |
dataStatus | Completeness of the saved rows: COMPLETE, PARTIAL, NO_RESULTS, or FAILED. |
hasData | Whether at least one listing row was saved. |
normalRecords | Listing rows written to the dataset. |
datasetWriteFailureCount | Rows that failed dataset validation or writing. Writing stops at the first such failure to preserve earlier rows. |
market | Marketplace code used for the run. |
mode | Mode used for the run. |
requestCount | Public page requests made, including search pages, detail pages, and proxy retries. |
itemCount | Saved listing rows; matches normalRecords. |
diagnosticCount | Operational issues recorded for the run, excluding dataset-write failures. |
uniqueItems | Unique saved item identities; equals the saved row count after de-duplication. |
vehicleItems | Saved rows classified as vehicle. |
partItems | Saved rows classified as part. |
unknownItems | Saved rows classified as unknown. |
accessBoundaryDetected | Whether any diagnostic matched an access boundary such as a challenge, login wall, rate limit, WAF block, or HTTP 403/429/451. |
proxyUsed | Whether Apify Proxy or custom proxy URLs were used. |
source | Public source label; always ebay-motors-public. |
completedAt | Time the summary was written, in ISO UTC. |
| Status | Data status | Meaning |
|---|---|---|
SUCCEEDED | COMPLETE | Rows were saved and no diagnostic or dataset-write failure was recorded. |
SUCCEEDED | PARTIAL | Rows were saved, but at least one diagnostic or dataset-write failure was recorded. Saved rows remain available. |
SUCCEEDED | NO_RESULTS | No rows were saved and no blocking failure occurred, for example because all results were filtered out or the page exposed no item evidence. |
FAILED | FAILED | No rows were saved and a source failure or dataset-write failure occurred. |
Example OUTPUT_SUMMARY from the 2026-10-25 run:
{"status": "SUCCEEDED","runStatus": "SUCCEEDED","dataStatus": "COMPLETE","hasData": true,"normalRecords": 3,"datasetWriteFailureCount": 0,"market": "us","mode": "searchVehicles","requestCount": 1,"itemCount": 3,"diagnosticCount": 0,"uniqueItems": 3,"vehicleItems": 3,"partItems": 0,"unknownItems": 0,"accessBoundaryDetected": false,"proxyUsed": true,"source": "ebay-motors-public","completedAt": "2026-10-25T20:49:57.758Z"}
Coverage and limitations
A generated vehicle or parts search fetches one public eBay results page, with _ipg capped at 200 cards, so maxItems above 200 cannot be reached in those modes without using byListingUrls. There is no search pagination. byListingUrls accepts up to 5,000 item URLs and reads each supplied item page, but invalid or non-eBay item URLs are rejected.
Search filters do not all work the same way. condition, minPrice, and maxPrice are sent to eBay and also applied to parsed rows; minYear and maxYear are applied only to rows with a parsed year. Rows without a parsed condition are not removed by the condition filter. query is ignored when searchQuery is present. vehicleType and partCategory also select the eBay category, so an unsuitable category can exclude relevant listings before parsing.
Detail enrichment is capped by maxDetailPages for generated searches and is skipped when includeDetails is false or the cap is zero. Search-card rows are intentionally shallow: title, price, condition, year, mileage, location, shipping, and images can be missing, coarse, or based on ambiguous card text. itemKind is a heuristic and can return unknown or misclassify edge cases; it is not an official eBay field. When a detail page cannot be used, the card-level row remains and detailStatus records the outcome.
eBay can block a request with a CAPTCHA, login wall, paywall, geofence, rate limit, device check, or WAF response. Such a target is counted in the summary and logs without a dataset row. The Actor fails closed and never fabricates missing values. If some rows were saved before a later target failed, the run stays SUCCEEDED with dataStatus: "PARTIAL".
Usage and support
Cost depends on the number of search and detail requests, response sizes, proxy usage, and emitted rows. Start with mode: "searchVehicles", a narrow query, maxItems around 10, and maxDetailPages at or below 5; inspect the rows and OUTPUT_SUMMARY, then scale. Because a search reads one page, raising maxItems beyond the page's card count has no effect. Enable details only for the rows whose vehicle specifications you need, since each detail page is another request.
Use the Actor Issues page to report a problem. Include the run ID, the input used, and the OUTPUT_SUMMARY; do not include proxy credentials, cookies, or private data. This independent community Actor is not affiliated with, endorsed by, or sponsored by eBay Inc. Use it only for public data and in accordance with eBay's terms, robots guidance, and applicable law. Public listings can contain personal information; use the output only for lawful purposes.