eBay Listings Scraper
Pricing
from $2.00 / 1,000 results
eBay Listings Scraper
Scrape eBay (ebay.com) search results and item pages: title, price, condition, shipping, seller and feedback, sold count, images and item specifics. Search by keyword or URL, with a cache that returns only new or changed listings. Export JSON, CSV or Excel.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
ActorFlow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share

Scrape listings from eBay (ebay.com): search results and item pages with title, price, condition, shipping, seller and feedback, sold count, images and item specifics. Paste an eBay search URL or an item URL, or type keywords, and export as JSON, CSV or Excel or call it as an API. A built-in cache returns only the new or changed listings on every run.
Target website: ebay.com
✨ Features of this eBay listings scraper
- Search results extraction — every result of a search is opened on its own item page, so each record is complete: price and list price, condition, buying format, shipping, location, returns, seller with feedback and the main image.
- Item page extraction — full item data: quantity and sold count, watchers, all images, categories, brand, model, listing date and the item specifics table, for search results and for item links alike.
- Auctions, variations and offers — the exact auction end time, the options of listings with variations (color, size, network) with their stock state, bulk-price tiers, sale countdown and discount.
- Returns, shipping and payments — return window, who pays for returns, handling time, delivery estimate, shipping service, warranty and accepted payment methods.
- Seller notes and identifiers — the full seller condition notes, UPC, EAN, model number and category ID.
- Search by keyword or URL — type keywords or paste an eBay search URL with its filters (category, price range, condition and more).
- Cache for new listings only — use the same cache project name on every scheduled run to skip unchanged listings.
- Pagination support — walks through the result pages, up to about 10,000 results per search.
- Proxy support — a proxy is used by default, so you do not need to set one up; you can switch to your Apify Proxy.
- No browser required — plain requests keep runs fast and cheap.
🚀 How to scrape eBay listings in 5 steps
- Sign up for a free Apify account — includes $5 monthly credit.
- Open the actor page and click Try for free.
- Fill in the Input fields (an eBay search URL, an item URL or keywords).
- Click Start and wait for the run to complete.
- Download results from the Output tab in JSON, CSV, or Excel format.
You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.
💰 Pricing for the eBay scraper
This actor uses pay-per-result billing based on the compute units a run consumes.
- New Apify accounts include $5 of free monthly credit.
- The actor uses plain HTTP requests instead of a browser, so it costs significantly less to run than browser-based scrapers.
- A proxy is used by default, so you do not need to configure anything; choosing Apify Proxy (residential) instead costs more.
🔧 eBay scraper input configuration
The input form starts with the eBay URLs and keywords, then the listing limit and the cache name. The proxy settings are last.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
eBay URLs (startUrls) | array | — | an iPhone 13 search | An eBay search results page with its filters, or an item page. |
Search keywords (queries) | array | — | — | Keywords to search on ebay.com, one search each. |
Max listings per search or URL (maxItems) | integer | — | 5 | Maximum listings saved for each start URL or keyword. eBay serves about 10,000 results per search. |
Cache project name (cacheProjectName) | string | — | — | Reuse the same name on every run to get only new and changed listings. Each record gets changeType: new or updated. |
Proxy configuration (proxyConfiguration) | object | — | used by default | Turn on Apify Proxy to choose your own proxy instead; eBay needs residential proxies. |
Supported URL types:
- A search:
https://www.ebay.com/sch/i.html?_nkw=iphone+13(filters in the address are used) - An item:
https://www.ebay.com/itm/227257764251
Sold and completed listing searches need an eBay login and are not supported.
🖼️ eBay scraper input screenshot

Numbered labels in the screenshot:
- eBay URLs — eBay search result pages (with their filters) or item pages to scrape.
- Search keywords — keywords searched on ebay.com, one search each.
- Max listings per search or URL — how many listings to save for each URL or keyword.
- Cache project name — reuse the same name on scheduled runs to get only new and changed listings.
📦 eBay scraper output data
Every result is one flat record with the keys type, id, url, title, subtitle, condition, priceText, priceMin, priceMax, currency, originalPrice, buyingFormat, acceptsBestOffer, bidCount, shippingText, shippingCost, location, returnsText, soldCount, quantityAvailable, watchers, sellerName, sellerUrl, sellerFeedbackPercent, sellerFeedbackCount, badges, imageUrl, images, categories, categoryId, brand, model, mpn, upc, ean, modelNumber, color, availability, listedAt, lastUpdatedAt, auctionEndsAt, saleEndsIn, discountPercent, discountAmount, volumePricing, variations, soldToday, returnsAccepted, returnDays, freeReturns, returnMethod, handlingTime, deliveryEstimate, shippingService, warranty, paymentMethods, sellerNotes, itemSpecifics, changeType, source, scrapedAt. Every record has all keys; a value the page does not carry is null. Every record comes from its item page (type item); a listing whose item page could not be loaded keeps what the search result showed (type listing). The dataset has 2 views:
- Listings — a compact table of title, image, price, currency, condition, format, shipping, seller, sold count and the listing link.
- Item details — auction end time, sold today, watchers, return days, free returns, handling time, delivery estimate, shipping service, warranty and the listing link.
Output at a glance:
| Title | Price | Condition | Format | Shipping | Seller | Sold |
|---|---|---|---|---|---|---|
| Apple iPhone 13 Mini (Excellent Condition) - (Unlocked, | 349.99–419.99 USD | Pre-Owned | FIXED_PRICE | 9.99 | cocosprinkles | — |
| Unlocked Apple iPhone 12 - 64GB - Works But No Wi-Fi - | 161.49 USD | Pre-Owned | FIXED_PRICE | 11.99 | cocosprinkles | — |
| Apple iPhone 13 Mini (Great Condition) - (Unlocked, AT& | 329.99 USD | Pre-Owned | FIXED_PRICE | 9.99 | cocosprinkles | — |
| Apple iPhone 13 Pro Max - (Excellent Condition) Unlocke | 474.99–649.99 USD | Pre-Owned | FIXED_PRICE | 11.99 | cocosprinkles | — |
| Apple iPhone 13 A2482 128GB Unlocked Very Good Conditio | 239.07–513.47 USD | Very Good - Refurbished | FIXED_PRICE | free | verizon | 367 |
| Apple iPhone 13 A2482 128GB - Fully Unlocked- Black & B | 245 USD | Refurbished | FIXED_PRICE | free | — | 477 |
Sample output (raw JSON):
[{"type": "listing","id": "336482670833","url": "https://www.ebay.com/itm/336482670833","title": "Apple iPhone 13 Mini (Excellent Condition) - (Unlocked, AT&T, Verizon, T-Mobile)","subtitle": "Apple iPhone 13 · 256 GB · Factory Unlocked","condition": "Pre-Owned","priceText": "$349.99 to $419.99","priceMin": 349.99,"priceMax": 419.99,"currency": "USD","originalPrice": 499.99,"buyingFormat": "FIXED_PRICE","acceptsBestOffer": false,"bidCount": null,"shippingText": "+$9.99 delivery","shippingCost": 9.99,"location": "United States","returnsText": "Free returns","soldCount": null,"quantityAvailable": null,"watchers": null,"sellerName": "cocosprinkles","sellerUrl": null,"sellerFeedbackPercent": 99.8,"sellerFeedbackCount": 42200,"badges": [],"imageUrl": "https://i.ebayimg.com/images/g/ofgAAeSw2iRpjOIJ/s-l500.webp","images": null,"categories": null,"brand": null,"model": null,"mpn": null,"availability": null,"listedAt": null,"itemSpecifics": null,"changeType": null,"source": "https://www.ebay.com/sch/i.html?_nkw=iphone+13","scrapedAt": "2026-10-29T18:35:25.730Z"},{"type": "item","id": "127446929166","url": "https://www.ebay.com/itm/127446929166","title": "Apple iPhone 13 A2482 128GB - Fully Unlocked- Black & Blue - Good Condition","subtitle": null,"condition": "Refurbished","priceText": "US $245.00","priceMin": 245,"priceMax": 245,"currency": "USD","originalPrice": null,"buyingFormat": "FIXED_PRICE","acceptsBestOffer": false,"bidCount": null,"shippingText": "Free UPS Ground. See detailsfor shipping","shippingCost": 0,"location": "Lisle, Illinois, United States","returnsText": "30 days returns. Seller pays for return shipping. See details- for more information about returns","soldCount": 477,"quantityAvailable": 10,"watchers": 437,"sellerName": null,"sellerUrl": null,"sellerFeedbackPercent": 99.6,"sellerFeedbackCount": 4841,"badges": null,"imageUrl": "https://i.ebayimg.com/images/g/HnIAAOSwKz9nFp4Z/s-l1600.jpg","images": ["https://i.ebayimg.com/images/g/HnIAAOSwKz9nFp4Z/s-l1600.jpg","https://i.ebayimg.com/images/g/Vl8AAOSwaMJnFp4X/s-l1600.jpg"],"categories": ["Electronics","Cell Phones & Accessories","Cell Phones & Smartphones"],"brand": "Apple","model": "Apple iPhone 13","mpn": null,"availability": "InStock","listedAt": "2025-10-22T19:34:53Z","itemSpecifics": [{"name": "Condition","value": "Good - Refurbished"},{"name": "Seller Notes","value": "“This iPhone 13 is in good condition. Means Expect Average Scratches, Scuffs / Dings. Available in ..."},{"name": "Custom Bundle","value": "No"}],"changeType": null,"source": "https://www.ebay.com/itm/127446929166","scrapedAt": "2026-10-29T18:35:06.446Z"}]
🔁 Save money: scrape only new eBay listings with the cache
Scheduled runs usually meet the same listings again and again, and without a cache you pay for them every time. This actor has a built-in cache that skips previously scraped listings, so you pay only for new and changed ones across multiple runs.
- Set Cache project name to any name, for example
ebay-iphone-watch. - Keep the same name on every run, for example from an Apify Schedule.
- Each run returns only what is new:
changeType: "new"for new listings and"updated"for listings whose title or price changed.
Listings already saved with the same title and price are skipped and do not count towards Max listings, so each run goes deeper into the results instead of repeating the same ones. Different names keep separate caches, and a search result and an item page of the same listing are cached separately.
🐍 How to scrape eBay with Python, JavaScript or the API
Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("confidential_gnat/ebay-listings-scraper").call(run_input={"startUrls": [{"url": "https://www.ebay.com/sch/i.html?_nkw=iphone+13"}],"maxItems": 100,"cacheProjectName": "iphone-13",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('confidential_gnat/ebay-listings-scraper').call({startUrls: [{ url: 'https://www.ebay.com/sch/i.html?_nkw=iphone+13' }],maxItems: 100,cacheProjectName: 'iphone-13',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL — start a run and wait for the dataset:
curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~ebay-listings-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.ebay.com/sch/i.html?_nkw=iphone+13"}], "maxItems": 100, "cacheProjectName": "iphone-13"}'
💡 What you can use eBay listing data for
- Price monitoring and competitor tracking for products and categories.
- Resale and arbitrage research: find underpriced listings and fast sellers by sold count.
- Market research on prices, conditions and shipping for used and new goods.
- Building price comparison sites, alerts and deal feeds.
- Seller research with feedback score and number of items sold.
The data is typically used by resellers, e-commerce teams, price comparison sites, analysts and collectors.
⚠️ Limitations of the eBay scraper
- About 10,000 results per search — eBay serves no more per search; use filters such as price ranges or categories in the URL to cover more.
- No sold or completed listings — those searches need an eBay login.
- Slow by design — the actor paces its requests and retries blocked ones, so large runs take time.
❓ eBay scraper FAQ
Can I scrape eBay legally?
The actor only collects listing data that is already publicly visible on eBay, with no login, paywall or private content. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you are responsible for complying with eBay's Terms of Service and applicable laws, especially if you use seller data.
What data does the eBay scraper return?
Each listing has its title, price (or range), currency, condition, buying format, shipping, location, returns, sold count, quantity, watchers and the seller with feedback, plus all images, categories, brand, model, listing date and item specifics. If an item page cannot be loaded after several attempts, the record keeps what the search result showed.
How many listings can I scrape from one eBay search?
Max listings per search or URL limits the saved listings for each start URL or keyword. eBay serves about 10,000 results per search, so narrow big searches with filters.
Do I need a proxy to scrape ebay.com?
You do not have to set one: the actor uses a proxy by default, and it worked in testing. You can turn on Apify Proxy instead, but eBay needs residential proxies, which makes runs more expensive.
Can I run this eBay scraper on a schedule?
Yes. Create an Apify Schedule for the actor and set a Cache project name so every run returns only new and changed listings.
What output formats are supported?
JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.
Is this the cheapest eBay scraper actor?
Possibly yes. It uses plain HTTP requests instead of a browser, and its built-in cache skips listings you already scraped, so across multiple runs you pay only for new and changed listings. Set a Cache project name and keep it the same on every run to get this saving.
🔗 Relevant actors for marketplace and product data
| Scraper | Description |
|---|---|
| 🛒 Mercari Japan Scraper | Mercari Japan listings: price in JPY, on-sale or sold status and more. |
| 🛍️ Google Shopping Scraper | Google Shopping product listings for any search query. |
| 🌐 AliExpress Products Scraper | Products from AliExpress search results and product pages. |
| 📦 Alibaba.com Products Scraper | Wholesale products from Alibaba.com by product search. |
| 🏷️ Craigslist Listings Scraper | Craigslist classified listings in any city and category. |
🔗 Other actors you may find useful
| Scraper | Description |
|---|---|
| 🥾 AllTrails Scraper — Hiking, Biking & Running Trails | Hiking, biking and running trails by park, city or state. |
| 📌 Pinterest Pins, Boards & Profiles Scraper | Pins, videos, boards and profiles from Pinterest searches and URLs. |
| 💼 Dice Jobs Scraper | Tech job listings from Dice by keyword or URL. |
| 🔮 Kalshi Markets Scraper | Prediction market prices, implied probability and volume from Kalshi. |
| 🍷 Vivino Wine Scraper | Wine data from Vivino: name, winery, vintage and ratings. |
💬 Support & contact
If you encounter any issues or have questions, please open an issue.
You can also find more of our actors on the Actor Flow page.