eBay Motors Vehicle & Parts Scraper avatar

eBay Motors Vehicle & Parts Scraper

Pricing

from $2.99 / 1,000 vehicle listings

Go to Apify Store
eBay Motors Vehicle & Parts Scraper

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

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

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

  1. Open the Actor Store page and select Try for free or open the Input tab.
  2. Choose mode: searchVehicles, searchParts, or byListingUrls. For listing URLs, add public eBay /itm/ links to startUrls.
  3. Set market, a small maxItems, and either a searchQuery or a category. Keep includeDetails and maxDetailPages small for the first run.
  4. 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.

FieldTypeRequired?DefaultMeaning
marketstring enumOptional"uk"Marketplace for generated searches and currency defaults: us, uk, or de, mapping to eBay.com, eBay.co.uk, or eBay.de.
modestring enumOptional"byListingUrls"Target type: searchVehicles for a Motors vehicle search, searchParts for parts, or byListingUrls to read specific item pages.
searchQuerystringOptionalNot suppliedKeyword phrase for a generated search, up to 200 characters, such as ford mustang. When empty, the selected category term is used instead.
querystringOptionalNot suppliedLegacy alias for searchQuery, up to 200 characters. If both are supplied, searchQuery wins.
vehicleTypestring enumOptional"cars-trucks"Vehicle category for searchVehicles: cars-trucks, motorcycles, boats, rvs-campers, atvs-utvs-snowmobiles, commercial-trucks, or other-vehicles.
partCategorystring enumOptional"car-truck-parts"Parts category for searchParts: car-truck-parts, motorcycle-parts, boat-parts, atv-parts, or other.
conditionstring enumOptional"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.
sortBystring enumOptional"best-match"Result order: best-match, price-asc, price-desc, distance-nearest, newly-listed, or ending-soonest.
minPriceintegerOptionalNot suppliedMinimum price in the marketplace currency, from 0 to 10,000,000. Sent on generated searches and applied to parsed numeric prices.
maxPriceintegerOptionalNot suppliedMaximum price in the marketplace currency, from 0 to 10,000,000. Sent on generated searches and applied to parsed numeric prices.
minYearintegerOptionalNot suppliedMinimum model year, from 1900 to 2030. Applied locally to rows with a parsed year; listings without a year are not excluded by this filter.
maxYearintegerOptionalNot suppliedMaximum model year, from 1900 to 2030. Applied locally to rows with a parsed year.
startUrlsstring arrayOptionalOne eBay.co.uk item URLPublic eBay item URLs used with byListingUrls, up to 5,000 entries. Each must be an http(s) eBay /itm/ URL.
maxItemsintegerOptional1Maximum unique listing rows saved, from 1 to 5,000. Generated searches request at most one results page of up to 200 cards.
includeDetailsbooleanOptionaltrueOpen public item pages to add make, model, trim, VIN, mileage, engine, transmission, drivetrain, fuel, body, colours, doors, and seats.
maxDetailPagesintegerOptional1Maximum generated-search results enriched from item pages, from 0 to 20. byListingUrls reads its supplied item pages regardless of this cap.
proxyConfigurationobjectOptionalApify Proxy, residential, GBStandard 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.

FieldTypeAvailabilityMeaning
recordTypestring enumAlwaysRow type; always ebay-motors-listing.
recordIdstringAlwaysStable identifier built as ebay-motors-<itemId>.
itemKindstring enumWhen publishedHeuristic listing class: vehicle, part, or unknown, based on title, category, condition, and vehicle signals.
foundbooleanAlwaysWhether a public listing identity was found; true on saved rows.
dataAvailablebooleanAlwaysWhether source-backed fields were parsed; true on saved rows.
okbooleanAlwaysWhether the row passed extraction and dataset validation; true on saved rows.
usedProxybooleanAlwaysWhether the fetch used an Apify Proxy URL.
accessStatusstringAlwaysPublic access outcome for the row; saved rows carry success.
evidencestringAlwaysPublic evidence used: public-listing-card, structured-data, public-item-detail, or public-listing-card+item-detail.
sourceTransportstringAlwaysTransport used for the decisive page: direct or apify-proxy.
cloudOperationsintegerAlwaysReserved operational counter; currently 0.
httpStatusintegerAlwaysHTTP status of the page that produced the row.
sourceUrlstringAlwaysPage actually fetched for the row: the search URL for a card row, or the item URL when a detail page was used.
itemIdstringAlwayseBay item number used as the row identity.
itemUrlstringAlwaysCanonical public item URL.
urlstringAlwaysRow URL; currently identical to itemUrl.
searchUrlstringWhen publishedOptional search URL recorded with a row; search provenance normally appears in sourceUrl or searchSourceUrl instead.
searchSourceUrlstringWhen publishedSearch page that produced a row which was later enriched from its item page.
detailUrlstringWhen publishedItem URL opened for detail enrichment.
detailStatusstringWhen publishedDetail outcome: success, not-requested, limit-reached, no-public-detail-evidence, or the access status that blocked the detail page.
scrapedAtstringAlwaysTime the row was saved, in ISO UTC.
titlestringAlwaysListing title as displayed by eBay.
pricestringWhen publishedPrice text as displayed on the card or item page.
priceFormattedstringWhen publishedFormatted price value; currently identical to price.
priceNumericnumberWhen publishedNumeric price parsed from the displayed text.
currencystringWhen publishedISO currency code from the page or the selected marketplace default.
conditionstringWhen publishedCondition label shown on the card or item page, such as New or Used.
vehicleTypestringWhen publishedVehicle category exposed by public structured data, when present.
listingTypestringWhen publishedvehicle-listing, parts-listing, listing, or the source's listing format.
yearnumberWhen publishedModel year parsed from the title, card, or item specifics.
makestringWhen publishedManufacturer or make from item specifics.
modelstringWhen publishedModel name from item specifics or structured data.
trimstringWhen publishedTrim or derivative from item specifics.
mileagenumberWhen publishedOdometer mileage when the card or item page states one.
vinstringWhen publishedVehicle identification number from item specifics.
enginestringWhen publishedEngine or engine-size description.
transmissionstringWhen publishedTransmission type.
drivetrainstringWhen publishedDrivetrain or drive type.
fuelTypestringWhen publishedFuel type.
bodyStylestringWhen publishedBody style or body type.
exteriorColorstringWhen publishedExterior colour or colour from item specifics.
interiorColorstringWhen publishedInterior colour from item specifics.
doorsnumberWhen publishedNumber of doors when listed.
seatsnumberWhen publishedNumber of seats when listed.
sellerobject | array | string | number | booleanWhen publishedSeller name or seller object from the public page.
locationobject | array | string | number | booleanWhen publishedItem location text or structured location value.
shippingobject | array | string | number | booleanWhen publishedShipping or delivery value from the card, page, or structured data.
descriptionstringWhen publishedDescription or subtitle exposed in public structured data.
imagesarray | object | stringWhen publishedOfficial eBay image URL or image collection from the card or item page.
requestedModestring enumAlwaysMode used for the run: searchVehicles, searchParts, or byListingUrls.
requestedMarketstring enumAlwaysMarketplace code used for the run: us, uk, or de.
requestedSearchQuerystringWhen publishedSearch phrase recorded from the input, when supplied.
requestedVehicleTypestringWhen publishedVehicle category recorded in searchVehicles mode.
requestedPartCategorystringWhen publishedParts category recorded in searchParts mode.
requestedConditionstringAlwaysCondition filter recorded for the run.
requestedSortBystringAlwaysSort order recorded for the run.
requestedMinPriceintegerWhen publishedMinimum price filter, when supplied.
requestedMaxPriceintegerWhen publishedMaximum price filter, when supplied.
requestedMinYearintegerWhen publishedMinimum year filter, when supplied.
requestedMaxYearintegerWhen publishedMaximum year filter, when supplied.
requestedMaxItemsintegerAlwaysItem limit recorded for the run.
requestedIncludeDetailsbooleanAlwaysWhether 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.

FieldMeaning
statusActor process outcome: SUCCEEDED or FAILED.
runStatusCanonical run status; matches status.
dataStatusCompleteness of the saved rows: COMPLETE, PARTIAL, NO_RESULTS, or FAILED.
hasDataWhether at least one listing row was saved.
normalRecordsListing rows written to the dataset.
datasetWriteFailureCountRows that failed dataset validation or writing. Writing stops at the first such failure to preserve earlier rows.
marketMarketplace code used for the run.
modeMode used for the run.
requestCountPublic page requests made, including search pages, detail pages, and proxy retries.
itemCountSaved listing rows; matches normalRecords.
diagnosticCountOperational issues recorded for the run, excluding dataset-write failures.
uniqueItemsUnique saved item identities; equals the saved row count after de-duplication.
vehicleItemsSaved rows classified as vehicle.
partItemsSaved rows classified as part.
unknownItemsSaved rows classified as unknown.
accessBoundaryDetectedWhether any diagnostic matched an access boundary such as a challenge, login wall, rate limit, WAF block, or HTTP 403/429/451.
proxyUsedWhether Apify Proxy or custom proxy URLs were used.
sourcePublic source label; always ebay-motors-public.
completedAtTime the summary was written, in ISO UTC.
StatusData statusMeaning
SUCCEEDEDCOMPLETERows were saved and no diagnostic or dataset-write failure was recorded.
SUCCEEDEDPARTIALRows were saved, but at least one diagnostic or dataset-write failure was recorded. Saved rows remain available.
SUCCEEDEDNO_RESULTSNo rows were saved and no blocking failure occurred, for example because all results were filtered out or the page exposed no item evidence.
FAILEDFAILEDNo 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.