eBay Listings Scraper - Prices, Bids, Sellers & Item Specifics avatar

eBay Listings Scraper - Prices, Bids, Sellers & Item Specifics

Pricing

from $0.09 / 1,000 listings

Go to Apify Store
eBay Listings Scraper - Prices, Bids, Sellers & Item Specifics

eBay Listings Scraper - Prices, Bids, Sellers & Item Specifics

Scrape active eBay listings by keyword, search URL, category, seller or item link: price, bids, time left, shipping, condition, seller score, sold count and sponsored flag; add item specifics, images, quantity and returns. 13 eBay sites, monitor mode. $0.09 per 1,000 listings, no start fee.

Pricing

from $0.09 / 1,000 listings

Rating

0.0

(0)

Developer

Top Api

Top Api

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

What does eBay Listings Scraper do?

eBay Listings Scraper returns active eBay listings as structured rows: the price or price range, buying format, bids and time left, shipping, condition, item location, the seller and their feedback, sold count, watchers and whether eBay marked the listing as sponsored. Search by keyword, paste any eBay search, category, store or seller link, or give item numbers. Resellers, price trackers, brand-protection teams and market researchers use it to watch what is for sale right now.

eBay search scraper - eBay product scraper - eBay listings API - eBay auction tracker

  • Every search card as a row: title, price (and price range), original price, discount, format, bids, time left, shipping cost, total price, returns, location, sold count, watchers, seller, feedback score and positive %
  • Sponsored flag eBay hides: eBay scrambles the visible "Sponsored" label; the actor reads the accessibility label it points at, so each row carries isSponsored and an organicRank among non-sponsored listings
  • Keyword, URL, category, store, seller or item number: combine any of them in one run
  • Item details add-on: item specifics, all images, quantity available, exact watchers, returns policy, delivery estimate, seller details, listing start and end time, and the seller's own description
  • 13 eBay sites: US, UK, Germany, France, Italy, Spain, Canada, Australia, Austria, Switzerland, Ireland, Netherlands and Poland, each in its own currency
  • Monitor mode: scheduled runs deliver only listings earlier runs did not, and can re-deliver listings whose price changed
  • Free price summary: count, min, median, percentiles and max per search, plus auction, free-shipping and sponsored shares
  • No eBay account, cookies or API key
  • Export anywhere: JSON, CSV, Excel; schedules, webhooks, Make, Zapier, n8n, Google Sheets; the Apify API and MCP server

What data can you get from eBay listings?

💲 Price and price range (price, priceMax)🏷️ Original price and discount💱 Currency
🔨 Format, bids and time left🤝 Accepts offers (bestOffer)🚚 Shipping cost and total price
↩️ Free returns, import fees📍 Item location📦 Sold count and watchers
👤 Seller, feedback score, positive %🏅 Top Rated, eBay Refurbished, Authenticity Guarantee📢 Sponsored flag and organic rank
📝 Title, subtitle, condition🧩 Product chips (itemAttributes)⭐ Catalog rating and count
🗂️ Category id and eBay product id (epid)🖼️ Image (500 and 1600 px)🔗 Item link and number
📋 Item specifics (details)📸 All gallery images (details)⏱️ Start and end time (details)

On 568 listing rows from four test runs (keywords "iphone 13", "nintendo switch", "ps5 console"), every row had the item id, link, title, price, currency, condition, format, shipping line, location, image and seller; 97% had the seller's feedback score, 97% the category id, 81% product chips, 65% the eBay product id, 52% a catalog rating, 26% a sold count and 21% a watcher count (eBay prints those two only on some cards).

How to scrape eBay listings

  1. Open the actor and type one or more Keywords, for example iphone 13.
  2. Choose the eBay site (ebay.com by default) and any Filters: condition, format, price range, sort, free shipping, location.
  3. Set Max listings. Turn on Item details if you need item specifics, all images and start/end times.
  4. Click Start. Rows appear in the dataset as each search page is read; download them as JSON, CSV or Excel.

⬇️ Input

FieldWhat it does
keywordsOne search per keyword, e.g. ["iphone 13", "rtx 4080"]
startUrlseBay search URLs (/sch/i.html?..., filters read from the URL), category pages (/b/... or /sch/9355/i.html), store pages (/str/...), seller pages (/usr/...), item links (/itm/...)
sellers + sellersModeEach seller's listings (inventory), a keyword search limited to these sellers (only), or without them (exclude)
itemUrlsItem links or numbers; each gives one full row from the item page
ebaySiteebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au, ebay.at, ebay.ch, ebay.ie, ebay.nl, ebay.pl
categoryIdeBay category id; with no keyword it lists the whole category
itemCondition / conditionIdNew, used, open box, refurbished, for parts, or exact eBay condition ids
buyingFormatAll, auction, Buy It Now, accepts offers, classified ads
minPrice / maxPriceeBay's price filter, in the site's currency
sortByBest match, ending soonest, newly listed, price + shipping low/high, distance
freeShipping, returnsAcceptedeBay's own filters
itemLocation, locatedIn, availableToDomestic or worldwide, items located in a country, items shipped to a country
keywordMatch, excludeKeywords, searchInDescriptionAll / any / exact words, words to leave out, match descriptions too
aspectFilterItem-specific filters, e.g. {"Brand": "Apple", "Storage Capacity": "128 GB"}
titleMustMatchQuery, titleMustIncludeKeep only titles with every keyword word / every given word
excludeSellers, skipSponsoredDrop listings from these sellers / drop sponsored listings
minSellerFeedbackScore, minSellerPositivePercentDrop sellers below these
minBids, endingWithinHoursAuctions with at least N bids / ending within N hours
includePartialMatches, dedupeItemIdsKeep eBay's "fewer words" matches / one row per listing across searches
includeItemDetails, includeDescriptionThe paid item-details add-on; the seller's description text with it
monitorMode, trackPriceChanges, monitorStoreName, resetMonitorStateDeliver only new listings (and price changes) between scheduled runs
maxItems, maxItemsPerSearch, maxPages, itemsPerPageRun size; 0 = no limit
includeSummary, compactFree price summary; 25 core fields per row for AI agents
proxyConfiguration, maxConcurrencyYour own proxy groups; parallel item pages

Filters marked "eBay's" change the search itself. The refine filters (titleMustMatchQuery, excludeSellers, skipSponsored, seller score, bids, ending window) run on every row before it is delivered, and a row they remove is not charged.

Input JSON

{
"keywords": ["iphone 13"],
"ebaySite": "ebay.com",
"itemCondition": "used",
"buyingFormat": "buyItNow",
"maxPrice": 300,
"sortBy": "priceLowest",
"skipSponsored": true,
"maxItems": 200
}

Track auctions that end soon

{
"keywords": ["pokemon card psa 10"],
"buyingFormat": "auction",
"sortBy": "endingSoonest",
"endingWithinHours": 6,
"minBids": 1,
"maxItems": 300
}

With Sort = ending soonest, the run stops reading pages once listings end after the window.

{
"sellers": ["backinthebox"],
"startUrls": [
{ "url": "https://www.ebay.com/sch/i.html?_nkw=lego+42115&LH_BIN=1&_sop=15" },
{ "url": "https://www.ebay.com/str/backinthebox" }
],
"maxItemsPerSearch": 100
}

A store page is read for the seller account it belongs to, then that seller's listings are searched. A pasted search URL keeps its own filters.

⬆️ Output

One row per listing. A real row from a test run for "nintendo switch" (selected fields, values as delivered):

{
"itemId": "147654623841",
"url": "https://www.ebay.com/itm/147654623841",
"title": "Nintendo Switch 32GB Handheld System - Gray",
"price": 115,
"currency": "USD",
"condition": "Pre-Owned",
"listingType": "buyItNow",
"shippingCost": 8.15,
"totalPrice": 123.15,
"itemLocation": "United States",
"sellerUsername": "ab_577251",
"sellerFeedbackScore": 1100,
"sellerFeedbackPercentage": 99.9,
"isSponsored": false,
"rank": 6,
"organicRank": 1,
"categoryId": "139971",
"searchQuery": "nintendo switch"
}

With Item details on, the same row also carries listingStatus, listingStartedAt, listingEndsAt, currentBid, quantityAvailable and quantityAvailableText, outOfStock, purchaseLimit, hasVariations, itemSpecifics, brand, model, mpn, upc, gtin, color, category, categoryPath, breadcrumbs, images, conditionDescription, returnPolicy, returnsAccepted, shippingText, deliveryText, sellerItemsSold, sellerJoined, sellerResponseTime, storeName and, with Seller description text, description; detailsScraped is true.

Fields

  • Listing: itemId, url, title, subtitle, condition, conditionId, itemAttributes, epid, categoryId, image, fullResImage
  • Price: price, priceMax, priceText, currency, originalPrice, discount, totalPrice, couponText, volumeDiscountText
  • Format: listingType (auction, auctionWithBIN, buyItNow, buyItNowOrBestOffer), buyItNowAvailable, bestOffer, bidCount, timeLeft, timeLeftSeconds, auctionEndText
  • Shipping and returns: shipping, shippingCost (0 = free), shippingType, freeReturns, importFees, itemLocation
  • Demand: quantitySold, watchers, urgency, isNewListing, signals
  • Seller: sellerUsername, sellerFeedbackScore, sellerFeedbackPercentage, sellerType, topRatedSeller, programBadges, authenticityGuarantee, ebayRefurbished
  • Search: isSponsored, rank, organicRank, page, searchQuery, searchTarget, searchType, marketplace, scrapedAt
  • Monitor: changeType (new or priceChanged), previousPrice

Fill on 36 rows with item details (local and platform test runs): status, start and end time, item specifics, brand, model, images, returns, shipping and delivery lines, seller score, items sold and join date 100%; watchers 97%; store name 89%; category path 72%; sold count and seller notes 64%; colour 58%; MPN 42%; UPC/GTIN 19% (only where the seller filled them).

How much does it cost to scrape eBay listings?

Pay per event, no start fee:

EventPriceWhen
listing$0.00009 ($0.09 per 1,000 listings)each delivered row
item-details$0.0013each row that got its item page (Item details on, or an item link)

Examples: 1,000 listings = $0.09. 100 listings with item details = $0.009 + $0.13 = $0.139. An item link = $0.00139. Listings your filters remove are not charged, rows whose item page could not be read are delivered without details and without the add-on charge, and the run stops at your maximum cost per run without going over it.

Run it on a schedule (monitor mode)

Turn on Monitor mode, set Sort = newly listed, and schedule the actor hourly or daily in Apify Schedules. Each run remembers what it delivered (per search, in the named store monitorStoreName) and delivers only listings no earlier run did; with Also deliver price changes, a known listing whose price moved comes back with changeType: "priceChanged" and previousPrice. A poll that finds nothing new is not charged for any row. Through the API:

curl -X POST "https://api.apify.com/v2/acts/TopApi~ebay-listings-scraper/runs?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keywords":["leica m6"],"sortBy":"newlyListed","monitorMode":true,"trackPriceChanges":true,"maxItems":200}'

Use a webhook on ACTOR.RUN.SUCCEEDED to push new rows to Slack, Google Sheets or your own endpoint, or call the actor from an AI agent through the Apify MCP server.

How can I use eBay listings data?

  • 🏷️ Price monitoring: track what a product sells for right now, by condition and format, with the free price summary
  • 🔨 Auction sniping lists: auctions ending in the next hours with bids, time left and shipping
  • 🛡️ Brand protection: listings of your products by seller, with location, condition and sponsored placement
  • 📈 Market research: sold counts, watchers and how many listings are sponsored in a category
  • 🧾 Reseller sourcing: below-market listings filtered by seller score and returns

Integrations, API & MCP

Run it from the Apify Console, the Apify API, the JavaScript and Python clients, Make, Zapier, n8n or the Apify MCP server. Results export as JSON, CSV, Excel, XML or RSS.

More marketplace scrapers from TopApi

See every actor on the TopApi profile.

Limits & empty runs

  • Results per search: eBay shows up to about 10,000 results per search; split big searches by price range, condition or category.
  • eBay's browser check: eBay sometimes answers a page with its "Checking your browser" page. The actor never answers it and never retries it from another address of the same kind; that page type moves to the next route (datacenter, the platform's own address, residential, Apify's unblocker) for the rest of the run, within a per-run proxy budget. When the budget runs out the run ends SUCCEEDED with a warning saying how many pages it read; rows already delivered are kept. On test runs, searches of up to 2-3 pages finished on free routes; deeper runs often stopped after 3 pages (about 180 listings), and item details after the first few item pages.
  • Seller on the card: eBay hides the seller on search cards in some categories (trading cards, LEGO auctions, non-US auctions); turn on Item details to read it from the item page.
  • Category pages (/b/...) show about 30 listings per page and no seller.
  • Empty runs: a search that matches nothing ends SUCCEEDED with a status that says which search and what to change; a run where eBay refused every request ends FAILED with nothing charged.
  • Sold listings are not here; use eBay Sold Listings Scraper.

FAQ

How much does eBay Listings Scraper cost?

$0.09 per 1,000 listings and $0.0013 per listing with item details; no start fee.

How many listings can eBay Listings Scraper return?

Up to eBay's ~10,000 results per search. Set maxItems (0 = no limit) and maxItemsPerSearch. Long runs can stop earlier when eBay shows its browser check (see Limits).

Can it scrape auctions with bids and time left?

Yes. Rows carry bidCount, timeLeft, timeLeftSeconds and the card's end day and time; item details add the exact listingEndsAt and currentBid.

Does it tell me which listings are sponsored?

Yes, isSponsored on every search row, plus organicRank among non-sponsored listings. skipSponsored drops them before they are charged.

Can I scrape a seller's whole store?

Yes: add the username to sellers, or paste their store (/str/...) or /usr/... link.

Which eBay sites are supported?

ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au, ebay.at, ebay.ch, ebay.ie, ebay.nl and ebay.pl, each in its own currency.

Can eBay Listings Scraper run on a schedule?

Yes. Monitor mode delivers only new listings (and, if asked, price changes) on each scheduled run.

Do I need an eBay account, cookies or an API key?

No. It reads eBay's public search, category and item pages.

Can AI agents use it through MCP?

Yes, through the Apify MCP server; compact: true returns 25 core fields per row.

Why did I get fewer listings than I asked for?

Your filters removed some (the SUMMARY record counts each filter), the search had fewer results, or eBay's browser check ended the run early (the status message says so).

Your feedback

Found a problem or need a field? Open an issue on the actor's Issues tab and we will look at it.