Ebay Search Scraper
Pricing
from $2.99 / 1,000 results
Ebay Search Scraper
Turn any eBay search into a clean, structured dataset in minutes. Filter by condition, price range, and shipping destination. Get prices, seller ratings, return policies, bid counts, and more — up to 500 listings per run, no API key needed.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
CRW
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
eBay Scraper: Search & Sold Listings (No Ads)
Turn any eBay search into clean, structured data. Search directly by keyword or paste a custom eBay URL across 8 global marketplaces. Extract prices, seller reputation, auction bids, and confirmed sold comps — with zero ad distortion.
Why choose this Actor? (3 Killer Features)
1. Zero Ad Distortion (is_sponsored)
On eBay, the top 4–8 search results are often paid advertisements. If you are building automated pricing feeds, price trackers, or reseller comps, sponsored placements heavily distort your market benchmarks.
Every result in this Actor includes is_sponsored: true/false, allowing you to strip out promoted ads with a single filter.
2. Confirmed Sold Comps & Real Sold Dates (sold_date)
Asking prices show what sellers hope to get; sold prices reveal what buyers actually paid.
Switch Listing Mode to Sold & Completed Listings to extract verified transaction prices, final bids, and exact ISO sold dates (sold_date: "2026-07-13"). Perfect for eBay flippers, sneaker traders, and arbitrage analysis.
3. Clean Numeric Prices (price_value)
Raw price strings like "$1,249.99" or "GBP 45.00" require tedious regex parsing. This scraper delivers both the formatted string and a sanitized numeric float (price_value: 1249.99), ready for immediate math, database queries, and charting.
How to use
Method 1: Search by Keyword (Recommended — 3 Seconds)
No need to visit eBay. Just enter a keyword in the Apify Console:
{"keyword": "iphone 15 pro","marketplace": "US","listingMode": "sold","maxResults": 50}
Method 2: Paste Any Custom eBay URL (Advanced Filters)
Have category-specific filters, carrier locks, storage size, or specific seller constraints?
- Open ebay.com (or any regional site like
ebay.de,ebay.co.uk). - Apply your filters and sort order.
- Copy the URL and paste it into
startUrl.
{"startUrl": "https://www.ebay.com/sch/i.html?_nkw=iphone+15&Network=Unlocked&Storage%20Capacity=256GB&LH_BIN=1","maxResults": 100}
When startUrl is provided, all URL filters are preserved exactly as-is and take precedence.
Supported Marketplaces (8 Countries)
Automatic regional routing with local residential proxies:
- 🇺🇸 United States (
ebay.com— default) - 🇬🇧 United Kingdom (
ebay.co.uk) - 🇩🇪 Germany (
ebay.de) - 🇨🇦 Canada (
ebay.ca) - 🇦🇺 Australia (
ebay.com.au) - 🇫🇷 France (
ebay.fr) - 🇮🇹 Italy (
ebay.it) - 🇪🇸 Spain (
ebay.es)
Common Use Cases
- Resellers & eBay Flippers (Comps Analysis): Search sold listings sorted by recently ended to benchmark fair market value before purchasing inventory.
- Competitor Price Monitoring: Track Buy It Now prices across target categories, comparing prices against seller feedback ratings (
seller_feedback_percent). - Auction Deal Hunting: Sort active auctions by "Ending Soonest" to identify listings with low bid counts (
bid_count) and Best Offer options. - Cross-Border Arbitrage: Compare prices for the same product across US, UK, and European marketplaces in their native currencies.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keyword | String | "wireless earbuds" | Product keyword to search. (e.g. iphone 15, rtx 4080) |
listingMode | String | "all" | all (Active listings), sold (Real sold comps), buy_it_now, auction |
marketplace | String | "US" | US, UK, DE, CA, AU, FR, IT, ES |
sort | String | "best_match" | best_match, lowest_price, highest_price, newly_listed, ending_soonest |
maxResults | Integer | 20 | Maximum listings to collect (10–500) |
startUrl | String | — | (Optional) Custom eBay search URL. Overrides keyword and marketplace settings if provided |
maxSearchPages | Integer | 5 | Maximum pages to scrape (1–20, ~60 listings per page) |
shipToCountry | String | — | (Optional) ISO alpha-3 code (e.g. USA, GBR) for aspect filter activation on custom URLs |
shipToZipCode | String | — | (Optional) Postal code (e.g. 10001 or SW1A 1AA) for precise location filtering |
Output Fields
Every item in the dataset contains rich, structured attributes:
| Field | Type | Description |
|---|---|---|
listing_id | string | Unique eBay listing ID |
title | string | Full product listing title |
price | string|null | Display price as shown ("$628.95") |
price_value | number|null | Clean numeric price for calculation (628.95) |
original_price | string|null | Original price before discount (if available) |
condition | string|null | Item condition ("New", "Pre-Owned", "Refurbished") |
listing_type | string|null | Format ("Buy It Now", "Auction") |
is_sponsored | boolean | true if promoted/sponsored ad placement |
sold_date | string|null | ISO 8601 date when the item sold ("2026-07-13"). Sold mode only |
sold_count | string|null | Total quantity sold ("248+ sold") |
bid_count | number|null | Current bid count (auctions only) |
auction_end | string|null | Scheduled auction end time |
best_offer | boolean | Whether Best Offer is accepted |
seller_name | string|null | Seller username |
seller_feedback_percent | string|null | Positive feedback percentage ("99.8") |
seller_feedback_count | string|null | Total feedback score count ("4.2K") |
rating | string|null | Product rating ("4.5") |
rating_count | number|null | Number of customer product reviews |
shipping | string|null | Shipping cost or "Free shipping" |
free_returns | boolean | true if returns are accepted for free |
return_policy | string|null | Full return policy string |
location | string|null | Seller / item location string |
authenticity_guarantee | boolean | true if covered by eBay Authenticity Guarantee |
watchers | string|null | Number of interested watchers ("10 watchers") |
image_url | string|null | High-resolution primary image URL |
url | string | Direct link to the eBay item |
scraped_at | string | ISO timestamp of collection |
Sample Dataset Item
{"listing_id": "358719187633","title": "Apple iPhone 15 Plus 128GB Blue (Unlocked)","price": "$628.95","price_value": 628.95,"original_price": "$799.00","condition": "Pre-Owned","listing_type": "Buy It Now","best_offer": true,"bid_count": null,"auction_end": null,"shipping": "Free shipping","return_policy": "Free 30-day returns","free_returns": true,"location": "Located in United States","seller_name": "apple_reseller_99","seller_feedback_percent": "99.8","seller_feedback_count": "4.2K","rating": "4.5","rating_count": 312,"sold_count": "248+ sold","watchers": "15 watchers","authenticity_guarantee": false,"is_sponsored": false,"sold_date": null,"image_url": "https://i.ebayimg.com/images/g/abc123/s-l500.webp","url": "https://www.ebay.com/itm/358719187633","scraped_at": "2026-10-16T12:34:56.789Z"}
Integration
JavaScript / TypeScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({keyword: 'mechanical keyboard',listingMode: 'sold',marketplace: 'US',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('YOUR_ACTOR_ID').call(run_input={'keyword': 'mechanical keyboard','listingMode': 'sold','marketplace': 'US','maxResults': 50,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['title'], item['price_value'], item['is_sponsored'])