Ebay Search Scraper avatar

Ebay Search Scraper

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Ebay Search Scraper

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

CRW

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

18 days ago

Last modified

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

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?

  1. Open ebay.com (or any regional site like ebay.de, ebay.co.uk).
  2. Apply your filters and sort order.
  3. 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

ParameterTypeDefaultDescription
keywordString"wireless earbuds"Product keyword to search. (e.g. iphone 15, rtx 4080)
listingModeString"all"all (Active listings), sold (Real sold comps), buy_it_now, auction
marketplaceString"US"US, UK, DE, CA, AU, FR, IT, ES
sortString"best_match"best_match, lowest_price, highest_price, newly_listed, ending_soonest
maxResultsInteger20Maximum listings to collect (10–500)
startUrlString—(Optional) Custom eBay search URL. Overrides keyword and marketplace settings if provided
maxSearchPagesInteger5Maximum pages to scrape (1–20, ~60 listings per page)
shipToCountryString—(Optional) ISO alpha-3 code (e.g. USA, GBR) for aspect filter activation on custom URLs
shipToZipCodeString—(Optional) Postal code (e.g. 10001 or SW1A 1AA) for precise location filtering

Output Fields

Every item in the dataset contains rich, structured attributes:

FieldTypeDescription
listing_idstringUnique eBay listing ID
titlestringFull product listing title
pricestring|nullDisplay price as shown ("$628.95")
price_valuenumber|nullClean numeric price for calculation (628.95)
original_pricestring|nullOriginal price before discount (if available)
conditionstring|nullItem condition ("New", "Pre-Owned", "Refurbished")
listing_typestring|nullFormat ("Buy It Now", "Auction")
is_sponsoredbooleantrue if promoted/sponsored ad placement
sold_datestring|nullISO 8601 date when the item sold ("2026-07-13"). Sold mode only
sold_countstring|nullTotal quantity sold ("248+ sold")
bid_countnumber|nullCurrent bid count (auctions only)
auction_endstring|nullScheduled auction end time
best_offerbooleanWhether Best Offer is accepted
seller_namestring|nullSeller username
seller_feedback_percentstring|nullPositive feedback percentage ("99.8")
seller_feedback_countstring|nullTotal feedback score count ("4.2K")
ratingstring|nullProduct rating ("4.5")
rating_countnumber|nullNumber of customer product reviews
shippingstring|nullShipping cost or "Free shipping"
free_returnsbooleantrue if returns are accepted for free
return_policystring|nullFull return policy string
locationstring|nullSeller / item location string
authenticity_guaranteebooleantrue if covered by eBay Authenticity Guarantee
watchersstring|nullNumber of interested watchers ("10 watchers")
image_urlstring|nullHigh-resolution primary image URL
urlstringDirect link to the eBay item
scraped_atstringISO 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 ApifyClient
client = 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'])