eBay Scraper - Product Listings, Prices & Sold Data avatar

eBay Scraper - Product Listings, Prices & Sold Data

Pricing

from $6.15 / 1,000 results

Go to Apify Store
eBay Scraper - Product Listings, Prices & Sold Data

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

eBay Scraper - Product Listings, Prices & Sold Data

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

Apify Coverage Output Billing

Table of contents

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 soldListings for 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

CapabilityThis actorparseforge/ebay-scraperautomation-lab/ebay-scraper
Keyword searchYesYesYes
Start URLs (search/category/item)YesYesSearch URLs only
Category ID filterYesYesNo
Condition filterYesYesYes
Price range filterYesYesYes
Buying format filterYesNoYes
Free-shipping filterYesYesNo
Item-location filterYesYesNo
Sort orderYesYesYes
Country marketplaces9Country via proxy8
Sold / completed compsYesYesYes
Price range (min/max)YesNoNo
Seller feedback % and scoreYesPercent onlyNo
Seller store URLYesNoNo
Sponsored flagYesYesNo
Return policyYesYesNo
Quantity availableYesNoNo
GTIN / UPC / EANYesNoNo
Full item specifics mapYesPartialNo
Full image galleryYesYesYes
AI title cleanup and attributesYesNoNo

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

FieldTypeRequiredDefaultDescription
searchQueriesstring[]no["nintendo switch"]Keywords to search on eBay, for example nintendo switch or vintage rolex. Result pages are paginated until maxProducts is reached.
itemUrlsstring[]no[]Direct eBay item URLs (https://www.ebay.com/itm/<itemId>) to scrape, ideal for tracking specific listings over time.
startUrlsstring[]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.
maxProductsintegerno10Maximum listings to collect across all inputs combined.
marketplacestringnoUSWhich eBay site to search: US, UK, DE, FR, IT, ES, CA, AU, IE. Sets both the domain and a matching residential proxy country.
categorystringno""Optional eBay category ID to restrict a keyword search (for example 139973).
conditionstring[]no[]Filter by condition: new, open_box, refurbished, used, for_parts.
minPricenumbernoOnly listings priced at or above this amount.
maxPricenumbernoOnly listings priced at or below this amount.
listingTypestringnoallBuying format filter: all, buy_it_now, auction, best_offer.
freeShippingbooleannofalseOnly listings that offer free shipping.
locationstringnoanyItem location filter: any, us, north_america, europe, asia, worldwide.
sortstringnobest_matchResult order: best_match, ending_soonest, newly_listed, price_low, price_high.
withDetailsbooleannotrueOpen 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.
soldListingsbooleannofalseReturn past SOLD and completed listings instead of active ones, for real sold-price comparables. Applies to search queries and search start URLs.
withDescriptionbooleannofalsePaid AI add-on. Produces a concise clean product name and an English translation of the listing title. Billed only on usable AI output.
withAttributesbooleannofalsePaid 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.

FieldTypeDescription
titlestringFull listing title as shown on eBay.
urlstringCanonical item URL.
itemIdstringeBay numeric item id.
imageUrlstringPrimary listing image URL.
pricenumberCurrent price as a number (the low value of a price range).
priceMaxnumberHigh value when the listing shows a price range ($12 to $15), else null.
currencystringISO currency code, for example USD.
priceTextstringPrice as displayed, including currency symbol.
wasPricenumberOriginal (struck-through) price when discounted, else null.
discountPercentintegerPercent discount off wasPrice, else null.
conditionstringItem condition, for example New, Open Box, Used.
listingTypestringFixedPrice or Auction.
bidCountintegerNumber of bids on auction listings, else null.
bestOfferbooleanWhether Best Offer is accepted, when known.
isSponsoredbooleanWhether the card is a sponsored/promoted listing.
timeLeftstringTime remaining on auction listings, else null.
sellerNamestringSeller username when exposed.
sellerFeedbackPercentnumberSeller positive feedback percentage when exposed.
sellerFeedbackScoreintegerSeller feedback score when exposed.
sellerUrlstringSeller store URL.
ratingnumberProduct rating when shown, else null.
reviewCountintegerNumber of product reviews when shown, else null.
gtinstringGTIN/UPC/EAN barcode when present.
shippingstringShipping cost as displayed, or Free.
freeShippingbooleantrue when shipping is free, false when a cost is shown, else null.
shippingCostnumberNumeric shipping cost (0 when free), else null.
itemLocationstringWhere the item ships from.
availabilitystringStock state, for example InStock, from the item page.
quantityAvailableintegerUnits available, from the item page, else null.
returnsAcceptedbooleanWhether returns are accepted, from the item page, else null.
returnPolicystringReturn policy summary, for example 30 day returns, else null.
soldCountintegerNumber sold, from the item page.
watchersintegerNumber of watchers, from the item page.
brandstringBrand from item specifics.
mpnstringManufacturer part number from item specifics.
categorystringLeaf category name.
breadcrumbsstring[]Full category breadcrumb path.
itemSpecificsobjectKey/value map of every item-specific attribute, or null.
imagesstring[]Full image gallery URLs from the item page.
aiCleanNamestringAI clean product name, only with withDescription.
aiTitleEnstringAI English translation of the title, only with withDescription.
aiAttributesobjectAI-normalized structured attributes, only with withAttributes.
aiCategorystringAI broad product category, only with withAttributes.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 result event. See the pricing tab for the current per-result price.
  • Item-detail and AI events billed separately. Opening an item page bills the details event. withDescription and withAttributes bill the ai_description and ai_attributes events, 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.