eBay Scraper - Product Listings, Prices & Sold Data
Pricing
from $6.15 / 1,000 results
eBay Scraper - Product Listings, Prices & Sold Data
eBay scraper and API for product listings, prices and sold data. No API key. Search by keyword, category, condition, price, buying format or item URL across 9 eBay sites. Get price, seller feedback, shipping, item specifics, GTIN, images and sold-price comps. Export JSON, CSV, Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
eBay Scraper - Product Listings, Prices & Sold Data
A fast eBay scraper and API for eBay product data with no API key and no login. Search eBay listings by keyword, category, condition, price range, buying format, or item URL across nine eBay marketplaces, and get clean structured records with eBay price data, seller and feedback data, shipping, item specifics, GTIN/UPC, images, and real sold-price comps for product research and reselling.
Here is one real result, with every field the actor returns:
{"imageUrl": "https://i.ebayimg.com/images/g/3uoAAeSwiipqm4Jt/s-l1600.jpg","title": "SV28 V11 Extra Cordless Vacuum Cleaner | Iron | Refurbished","url": "https://www.ebay.com/itm/277769465576","itemId": "277769465576","price": 364.99,"priceMax": null,"currency": "USD","priceText": "$364.99","wasPrice": 659.99,"discountPercent": 45,"condition": "Certified - Refurbished","listingType": "FixedPrice","bidCount": null,"bestOffer": null,"isSponsored": false,"timeLeft": null,"sellerName": "dysonofficial","sellerFeedbackPercent": 99.2,"sellerFeedbackScore": 174200,"sellerUrl": "https://www.ebay.com/str/dysonstore","rating": 4.74,"reviewCount": 19,"gtin": "0885609027500","shipping": "Free","freeShipping": true,"shippingCost": 0,"itemLocation": "United States","availability": "InStock","quantityAvailable": 10,"returnsAccepted": true,"returnPolicy": "30 day returns","soldCount": 159,"watchers": 222,"brand": "Dyson","mpn": "411636-01","category": "Vacuum Cleaners","breadcrumbs": ["eBay", "Home & Garden", "Household Supplies & Cleaning", "Vacuum Cleaners"],"itemSpecifics": {"Brand": "Dyson","Model": "Dyson V11 Extra","MPN": "411636-01","Type": "Stick","Power": "185aw","Filters": "Pre and Post Motor (HEPA) Washable","Color": "Silver","Condition": "Certified - Refurbished"},"images": ["https://i.ebayimg.com/images/g/3uoAAeSwiipqm4Jt/s-l1600.jpg","https://i.ebayimg.com/images/g/zccAAeSwdK5qm4Jt/s-l1600.jpg","https://i.ebayimg.com/images/g/uNMAAeSwGatqm4Jt/s-l1600.jpg"],"aiCleanName": "Dyson V11 Extra Cordless Vacuum Cleaner","aiTitleEn": "Dyson V11 Extra Cordless Vacuum Cleaner (Iron, Refurbished)","aiAttributes": { "brand": "Dyson", "model": "V11 Extra", "type": "Cordless Stick Vacuum", "color": "Iron" },"aiCategory": "Home Appliances","observedAt": "2026-09-05T03:04:32.191Z","error": null}
The most complete eBay listings scraper available. It returns every field the search results and item pages expose, from price, condition, seller, and feedback to brand, MPN, GTIN, breadcrumbs, return policy, quantity available, and the full image gallery, plus optional AI name cleanup and structured attributes. Search, direct-URL, category, and sold-comps modes let you target exactly the eBay product data and eBay seller data you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches eBay by keyword, reads eBay search or category page URLs, or scrapes specific item URLs you provide, paginates through the results, and writes one normalized record per listing to the run's dataset. Narrow any keyword search with category, condition, price range, buying format, free-shipping, item location, and sort filters, and pick any of nine eBay marketplaces (US, UK, DE, FR, IT, ES, CA, AU, IE). Each record carries price and price range, currency, original price and discount, condition, listing type, sponsored flag, shipping cost and free-shipping flag, item location, seller store and feedback, and engagement signals such as watchers and sold count.
With item details enabled (the default), the actor also opens each item page to add full item specifics, brand, model, MPN, GTIN/UPC, category and breadcrumb path, availability, quantity available, return policy, and the complete image gallery. A sold-comps mode returns past sold and completed listings so you can build real price comparables. Two optional paid AI add-ons produce a clean product name plus English translation, and normalized structured attributes with a broad category.
Why this eBay scraper
- No API key, no login. Just a search term or a URL. Nothing to register with eBay.
- Search filters that match eBay's own. Category, condition, price range, buying format, free shipping, item location, and sort, plus 9 country marketplaces.
- Sold-price comps. Turn on
soldListingsfor realized sale prices that eBay's official API does not expose, ideal for reseller and product research. - Deepest field set. Seller feedback, sponsored flag, return policy, quantity available, GTIN/UPC, breadcrumbs, and the full image gallery, not just title and price.
- Direct-URL and start-URL modes. Track specific listings, or paste any eBay search/category page.
How it compares
| Capability | This actor | parseforge/ebay-scraper | automation-lab/ebay-scraper |
|---|---|---|---|
| Keyword search | Yes | Yes | Yes |
| Start URLs (search/category/item) | Yes | Yes | Search URLs only |
| Category ID filter | Yes | Yes | No |
| Condition filter | Yes | Yes | Yes |
| Price range filter | Yes | Yes | Yes |
| Buying format filter | Yes | No | Yes |
| Free-shipping filter | Yes | Yes | No |
| Item-location filter | Yes | Yes | No |
| Sort order | Yes | Yes | Yes |
| Country marketplaces | 9 | Country via proxy | 8 |
| Sold / completed comps | Yes | Yes | Yes |
| Price range (min/max) | Yes | No | No |
| Seller feedback % and score | Yes | Percent only | No |
| Seller store URL | Yes | No | No |
| Sponsored flag | Yes | Yes | No |
| Return policy | Yes | Yes | No |
| Quantity available | Yes | No | No |
| GTIN / UPC / EAN | Yes | No | No |
| Full item specifics map | Yes | Partial | No |
| Full image gallery | Yes | Yes | Yes |
| AI title cleanup and attributes | Yes | No | No |
Every input those actors accept is accepted here, and every field they output is returned here, plus the extra fields above. Competitor capabilities are summarized from their public Apify store pages and may change.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 active nintendo switch listings with full item details.
{"searchQueries": ["nintendo switch"],"maxProducts": 10,"withDetails": true}
Provide searchQueries, itemUrls, startUrls, or any mix. Every input is optional; with an empty input the actor searches the default query and returns active listings. Set soldListings to true for sold-price comparables.
Narrow a search with filters, exactly like eBay's own search sidebar:
{"searchQueries": ["mechanical keyboard"],"marketplace": "US","condition": ["new", "open_box"],"minPrice": 30,"maxPrice": 150,"listingType": "buy_it_now","freeShipping": true,"sort": "price_low","maxProducts": 50}
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | string[] | no | ["nintendo switch"] | Keywords to search on eBay, for example nintendo switch or vintage rolex. Result pages are paginated until maxProducts is reached. |
itemUrls | string[] | no | [] | Direct eBay item URLs (https://www.ebay.com/itm/<itemId>) to scrape, ideal for tracking specific listings over time. |
startUrls | string[] | no | [] | Any eBay search, category, or item page URLs. Search and category pages are paginated; item pages are scraped directly. Filters encoded in the URL are respected. |
maxProducts | integer | no | 10 | Maximum listings to collect across all inputs combined. |
marketplace | string | no | US | Which eBay site to search: US, UK, DE, FR, IT, ES, CA, AU, IE. Sets both the domain and a matching residential proxy country. |
category | string | no | "" | Optional eBay category ID to restrict a keyword search (for example 139973). |
condition | string[] | no | [] | Filter by condition: new, open_box, refurbished, used, for_parts. |
minPrice | number | no | Only listings priced at or above this amount. | |
maxPrice | number | no | Only listings priced at or below this amount. | |
listingType | string | no | all | Buying format filter: all, buy_it_now, auction, best_offer. |
freeShipping | boolean | no | false | Only listings that offer free shipping. |
location | string | no | any | Item location filter: any, us, north_america, europe, asia, worldwide. |
sort | string | no | best_match | Result order: best_match, ending_soonest, newly_listed, price_low, price_high. |
withDetails | boolean | no | true | Open each item page to add full item specifics, brand, model, MPN, UPC, complete image gallery, sold count, quantity available, return policy, and availability. Turn off for a faster, lighter run. |
soldListings | boolean | no | false | Return past SOLD and completed listings instead of active ones, for real sold-price comparables. Applies to search queries and search start URLs. |
withDescription | boolean | no | false | Paid AI add-on. Produces a concise clean product name and an English translation of the listing title. Billed only on usable AI output. |
withAttributes | boolean | no | false | Paid AI add-on. Extracts normalized structured product attributes and a broad product category. Billed only on usable AI output. |
Output reference
One dataset item per listing. Types: string, number, integer, boolean, string[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
title | string | Full listing title as shown on eBay. |
url | string | Canonical item URL. |
itemId | string | eBay numeric item id. |
imageUrl | string | Primary listing image URL. |
price | number | Current price as a number (the low value of a price range). |
priceMax | number | High value when the listing shows a price range ($12 to $15), else null. |
currency | string | ISO currency code, for example USD. |
priceText | string | Price as displayed, including currency symbol. |
wasPrice | number | Original (struck-through) price when discounted, else null. |
discountPercent | integer | Percent discount off wasPrice, else null. |
condition | string | Item condition, for example New, Open Box, Used. |
listingType | string | FixedPrice or Auction. |
bidCount | integer | Number of bids on auction listings, else null. |
bestOffer | boolean | Whether Best Offer is accepted, when known. |
isSponsored | boolean | Whether the card is a sponsored/promoted listing. |
timeLeft | string | Time remaining on auction listings, else null. |
sellerName | string | Seller username when exposed. |
sellerFeedbackPercent | number | Seller positive feedback percentage when exposed. |
sellerFeedbackScore | integer | Seller feedback score when exposed. |
sellerUrl | string | Seller store URL. |
rating | number | Product rating when shown, else null. |
reviewCount | integer | Number of product reviews when shown, else null. |
gtin | string | GTIN/UPC/EAN barcode when present. |
shipping | string | Shipping cost as displayed, or Free. |
freeShipping | boolean | true when shipping is free, false when a cost is shown, else null. |
shippingCost | number | Numeric shipping cost (0 when free), else null. |
itemLocation | string | Where the item ships from. |
availability | string | Stock state, for example InStock, from the item page. |
quantityAvailable | integer | Units available, from the item page, else null. |
returnsAccepted | boolean | Whether returns are accepted, from the item page, else null. |
returnPolicy | string | Return policy summary, for example 30 day returns, else null. |
soldCount | integer | Number sold, from the item page. |
watchers | integer | Number of watchers, from the item page. |
brand | string | Brand from item specifics. |
mpn | string | Manufacturer part number from item specifics. |
category | string | Leaf category name. |
breadcrumbs | string[] | Full category breadcrumb path. |
itemSpecifics | object | Key/value map of every item-specific attribute, or null. |
images | string[] | Full image gallery URLs from the item page. |
aiCleanName | string | AI clean product name, only with withDescription. |
aiTitleEn | string | AI English translation of the title, only with withDescription. |
aiAttributes | object | AI-normalized structured attributes, only with withAttributes. |
aiCategory | string | AI broad product category, only with withAttributes. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Item-page fields (availability, soldCount, watchers, brand, mpn, category, breadcrumbs, itemSpecifics, images) are populated only when withDetails is enabled. The ai* fields are populated only when the matching AI add-on is on.
Example output record
Search-mode record (item details off). Detail-only fields such as brand, itemSpecifics, images, and availability are null because the item page is not opened. This is a real record from a live run:
{"imageUrl": "https://i.ebayimg.com/images/g/cjQAAeSwRRNqXVvO/s-l500.webp","title": "New Silicone Phone Case For iPhone 15 16 17 Pro Max 17 Air Free US","url": "https://www.ebay.com/itm/287472595200","itemId": "287472595200","price": 1.95,"priceMax": null,"currency": "USD","priceText": "$1.95","wasPrice": null,"discountPercent": null,"condition": "Brand New","listingType": "FixedPrice","bidCount": null,"bestOffer": null,"isSponsored": false,"sellerName": "ecommbu32","sellerFeedbackPercent": 99.2,"sellerFeedbackScore": 361,"shipping": "Free","freeShipping": true,"shippingCost": 0,"itemLocation": "United States","observedAt": "2026-09-05T03:02:57.624Z","error": null}
Run via API and CLI
Start a run and read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ebay-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["vintage rolex"],"maxProducts":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ebay-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["nintendo switch"],"soldListings":true,"maxProducts":100}'
Apify CLI:
apify call scrapers_lat/ebay-scraper \--input '{"itemUrls":["https://www.ebay.com/itm/398204502459"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. Each listing record bills on the
resultevent. See the pricing tab for the current per-result price. - Item-detail and AI events billed separately. Opening an item page bills the
detailsevent.withDescriptionandwithAttributesbill theai_descriptionandai_attributesevents, and only when the AI returns usable output. The AI add-ons are off by default and require a paid Apify plan. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxProducts.
FAQ and troubleshooting
Do I need an eBay API key or account? No. There is no API key, developer registration, or login. Provide a search term or a URL and run.
Can I scrape other eBay country sites?
Yes. Set marketplace to US, UK, DE, FR, IT, ES, CA, AU, or IE. The actor uses that domain and a matching residential proxy country.
Can I filter by condition, price, or buying format?
Yes. Use condition, minPrice/maxPrice, listingType, freeShipping, location, category, and sort. They apply to keyword searches the same way eBay's search filters do. You can also paste a fully filtered eBay search URL into startUrls.
Can I get sold prices for market research?
Yes. Set soldListings to true. The actor returns past sold and completed listings instead of active ones, so you can build real price comparables for reselling and product research.
How do I track specific listings over time?
Pass their URLs in itemUrls. Each run re-reads those exact items so you can watch price, availability, and watchers change.
Why are brand, mpn, and images empty?
Those come from the item page. Enable withDetails (on by default) to fetch them. With details off, only the search-result fields are returned.
Do the AI fields cost extra?
Yes. aiCleanName/aiTitleEn and aiAttributes/aiCategory are optional paid add-ons, billed only when the AI returns usable output. Leave withDescription and withAttributes off to skip them.
A run returned 0 records. Why? The search matched nothing, or the item URLs were invalid or removed. Loosen the query or verify the URLs. Zero-result runs are not charged.
Is this an official eBay tool? No. This actor is independent and is not affiliated with eBay Inc. It reads only publicly visible listing data. Use it in accordance with eBay's terms and applicable law.
Related scrapers
- Amazon Product Scraper: Amazon product listings, prices, and details by search or ASIN.
- Amazon Reviews Scraper: Amazon customer reviews and ratings for any product.
- AliExpress Scraper: AliExpress product listings, prices, and specs.
- MercadoLibre Scraper: MercadoLibre listings and prices across Latin America.
- Google Play App Details Scraper: App listings and details from the Google Play Store.
- 1688 Wholesale Scraper: 1688 wholesale product listings and supplier data.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with eBay Inc. Accesses only publicly visible eBay listing data. Use in accordance with eBay's terms of service.
