# eBay Scraper – Listings, Sold Prices & Sellers (15 Sites) (`liveclaude/ebay-scraper`) Actor

Scrape eBay listings from 15 sites with every filter or any eBay URL: item specifics, EAN, photos, seller profiles with buyer feedback and sale prices, EAN lookup, monitoring of new listings, price drops and final prices of ended auctions.

- **URL**: https://apify.com/liveclaude/ebay-scraper.md
- **Developed by:** [FlareWOW](https://apify.com/liveclaude) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![eBay Scraper by FlareWOW](https://api.apify.com/v2/key-value-stores/DuxuCA9McrnD2TZCZ/records/cover.png)

## eBay Scraper: 15 sites, sellers, EAN, sold-price tracking

**From $2.50 per 1,000 listings.** Scrape eBay search results, categories, stores and single listings from **15 eBay sites** with **every search filter**. Get full listing details (item specifics, EAN/UPC, all photos, watchers, quantity sold), **seller profiles with buyer feedback and real sale prices**, search by **EAN / UPC / ISBN**, and **monitor** new listings, price drops and the **final prices of auctions and listings that end**.

🌐 **Read in your language:** 🇩🇪 [Deutsch](#-deutsch) · 🇫🇷 [Français](#-français) · 🇮🇹 [Italiano](#-italiano) · 🇪🇸 [Español](#-español) · 🇵🇱 [Polski](#-polski) · 🇳🇱 [Nederlands](#-nederlands)

### ✨ What you get

| | |
|---|---|
| 🌍 15 eBay sites | ebay.com, .co.uk, .de, .fr, .it, .es, .at, .ch, .nl, .be, .ie, .pl, .ca, .com.au, .com.sg - one or all in a single run |
| 🎯 Every filter | any eBay search / category / store URL, or keyword + category, price range, condition, auction / Buy It Now, Best Offer, free shipping, item location, search in description, sort |
| ♾️ Past the result limit | big searches are split into price ranges automatically to reach every listing |
| 📄 Listing details | item specifics, brand, MPN, EAN/UPC/GTIN, all photos, watchers, quantity sold & available, seller rating, location, shipping, returns, start & end date, description |
| 👤 Seller tracking | profile (feedback score, % positive, items sold, followers, member since, 12-month ratings), all their listings, and **buyer feedback with item titles and sale prices** |
| 🔎 EAN / UPC / ISBN | find every listing of a product by its barcode, with a price summary |
| 🔔 Monitoring | only new listings, price drops, and **sold / ended listings with the final price, bids and end date** |
| 📊 Price summary | min / median / average / max per search and site, auctions vs Buy It Now, cross-site comparison in USD |
| 💰 Price | **from $2.50 / 1,000 listings**, no proxies or eBay account needed |

### 🚀 How to use it

1. **Paste an eBay link** - set filters on eBay in your browser, copy the URL and paste it into **eBay URLs**. Search pages, category pages (`/b/...`), stores (`/str/...`), seller pages (`/usr/...`) and single listings (`/itm/...`) all work.
2. **Or type keywords**, pick sites and set filters in the form.
3. **Track sellers** - add usernames to **Sellers** to get their profile, listings and recent feedback with sale prices.
4. **Look up products by barcode** - add EAN / UPC / ISBN codes to **EAN / UPC codes**.
5. Click **Start** and download as Excel, CSV or JSON, or connect via API, Make, Zapier, n8n or Google Sheets.

### 💸 Sold prices: how this Actor gets them

Since **July 2026 eBay shows sold and completed listings only to signed-in users**, so "sold" search URLs no longer work for any scraper without an eBay account. This Actor does not use accounts or cookies. Instead it gives you real sale prices in two ways:

- **Monitoring with "Detect sold listings"**: schedule a search (e.g. daily). When a tracked listing ends, the Actor opens its public page and records the **final price, number of bids, end date and whether it sold**.
- **Seller feedback**: every buyer feedback on eBay shows the item and the price paid - the Actor turns it into sale records and a sales summary per seller.

### 🔔 Monitoring

Turn on **Only new listings** and schedule the Actor. Each run returns only listings you have not seen yet, plus **price drops** and **sold / ended listings**. Every record has `listingStatusChange`: `new`, `price-drop`, `sold`, `ended-unsold` or `removed`. You only pay for what is new.

### 📦 Output example

![Results](https://api.apify.com/v2/key-value-stores/DuxuCA9McrnD2TZCZ/records/screen-results.png)

```json
{
  "id": "227559135686",
  "url": "https://www.ebay.co.uk/itm/227559135686",
  "title": "Sony PlayStation 5 Disc Edition With 2xDualSense Controllers & 3xGames",
  "listingStatusChange": "sold",
  "finalPrice": 456.61,
  "currency": "GBP",
  "finalPriceUsd": 604.86,
  "buyingFormat": "auction",
  "bids": 8,
  "sold": true,
  "endedAt": "2026-10-16T05:01:41.000Z",
  "condition": "Used",
  "marketplace": "ebay.co.uk"
}
```

Search records include price, currency, shipping cost, condition, auction / Buy It Now, bids, time left, Best Offer, watchers, quantity sold, item location, seller name and feedback (on sites that show it), product rating, image and EPID. Table views: **Listings**, **Listing details**, **Monitoring**, **Sellers**, **Feedback**, **Price summaries**.

### 💰 Pricing

Pay only for results. The price depends on your Apify plan:

| Event | Free | Starter | Scale | Business |
|---|---|---|---|---|
| Listing | $3.20 / 1k | $2.90 / 1k | $2.70 / 1k | **$2.50 / 1k** |
| ➕ Listing details (optional) | $5.00 / 1k | $4.50 / 1k | $4.20 / 1k | $4.00 / 1k |
| ➕ Description (optional) | $5.00 / 1k | $4.50 / 1k | $4.20 / 1k | $4.00 / 1k |
| Seller profile | $5.00 / 1k | $4.50 / 1k | $4.20 / 1k | $4.00 / 1k |
| Buyer feedback entry | $2.50 / 1k | $2.20 / 1k | $2.00 / 1k | $1.80 / 1k |
| Price summary / site comparison | $0.01 | $0.01 | $0.01 | $0.01 |

Listings removed by your filters, already seen listings in monitoring mode and failed pages are **free**. Set a maximum cost per run in the run options and the Actor stops exactly there.

### ❓ FAQ

**Do I need an eBay account or API key?** No.

**Why is the seller name empty on ebay.com search results?** eBay US does not show sellers in search results. Turn on **Listing details** or use a European site, where seller name and feedback are included.

**Can I scrape eBay "Sold items" URLs?** Not anymore - eBay requires sign-in for them since July 2026. Use monitoring with "Detect sold listings" or seller feedback (see above).

**Is it legal?** The Actor collects publicly available data. You are responsible for using it in line with eBay's terms and data protection law (GDPR).

***

### Input example

```json
{
  "searchQueries": [
    "nintendo switch oled"
  ],
  "sites": [
    "us"
  ],
  "maxItemsPerSearch": 100
}
```

Every field is described in the **Input** tab.

### Integrations & API

- **API**: start the Actor and fetch results via the [Apify API](https://docs.apify.com/api/v2) – clients for Python and JavaScript, or plain HTTP.
- **No-code**: connect results to **Make, Zapier, n8n, Google Sheets, Slack, Airbyte** or any webhook.
- **AI agents**: call `liveclaude/ebay-scraper` from Claude, ChatGPT or Cursor through the [Apify MCP server](https://mcp.apify.com).

### 🇩🇪 Deutsch

**eBay Scraper** liest Angebote von **15 eBay-Seiten** (ebay.de, .at, .ch, .com, .co.uk, .fr, .it …) **ab $2.50 pro 1.000 Angebote**.

- **Beliebigen eBay-Link einfügen** (Suche, Kategorie, Shop, Verkäufer, Angebot) oder Suchbegriffe mit allen Filtern: Kategorie, Preis, Zustand, Auktion / Sofort-Kaufen, Preisvorschlag, kostenloser Versand, Standort.
- **Angebotsdetails**: Artikelmerkmale, Marke, EAN, alle Fotos, Beobachter, verkaufte Menge, Beschreibung.
- **Verkäufer verfolgen**: Profil, alle Angebote und Bewertungen der Käufer **mit Verkaufspreisen**.
- **Suche nach EAN / UPC / ISBN** mit Preisübersicht.
- **Monitoring**: nur neue Angebote, Preissenkungen und **beendete Angebote mit Endpreis und Geboten**.

### 🇫🇷 Français

**eBay Scraper** récupère les annonces de **15 sites eBay** (ebay.fr, .be, .ch, .com, .co.uk, .de …) **dès $2.50 pour 1 000 annonces**.

- **Collez n'importe quel lien eBay** (recherche, catégorie, boutique, vendeur, annonce) ou des mots-clés avec tous les filtres : catégorie, prix, état, enchères / achat immédiat, offre directe, livraison gratuite, localisation.
- **Détails de l'annonce** : caractéristiques, marque, EAN, toutes les photos, observateurs, quantité vendue, description.
- **Suivi des vendeurs** : profil, toutes les annonces et évaluations des acheteurs **avec les prix de vente**.
- **Recherche par EAN / UPC / ISBN** avec résumé des prix.
- **Surveillance** : nouvelles annonces, baisses de prix et **annonces terminées avec prix final et enchères**.

### 🇮🇹 Italiano

**eBay Scraper** estrae le inserzioni da **15 siti eBay** (ebay.it, .com, .co.uk, .de, .fr, .es …) **da $2.50 ogni 1.000 inserzioni**.

- **Incolla qualsiasi link eBay** (ricerca, categoria, negozio, venditore, inserzione) o parole chiave con tutti i filtri: categoria, prezzo, condizione, asta / compralo subito, proposta d'acquisto, spedizione gratuita, posizione.
- **Dettagli dell'inserzione**: specifiche, marca, EAN, tutte le foto, osservatori, quantità venduta, descrizione.
- **Monitoraggio venditori**: profilo, tutte le inserzioni e feedback degli acquirenti **con i prezzi di vendita**.
- **Ricerca per EAN / UPC / ISBN** con riepilogo prezzi.
- **Monitoraggio**: nuove inserzioni, ribassi e **inserzioni concluse con prezzo finale e offerte**.

### 🇪🇸 Español

**eBay Scraper** extrae anuncios de **15 sitios de eBay** (ebay.es, .com, .co.uk, .de, .fr, .it …) **desde $2.50 por cada 1.000 anuncios**.

- **Pega cualquier enlace de eBay** (búsqueda, categoría, tienda, vendedor, anuncio) o palabras clave con todos los filtros: categoría, precio, estado, subasta / cómpralo ya, mejor oferta, envío gratis, ubicación.
- **Detalles del anuncio**: características, marca, EAN, todas las fotos, seguidores, cantidad vendida, descripción.
- **Seguimiento de vendedores**: perfil, todos sus anuncios y valoraciones de compradores **con precios de venta**.
- **Búsqueda por EAN / UPC / ISBN** con resumen de precios.
- **Monitorización**: anuncios nuevos, bajadas de precio y **anuncios finalizados con precio final y pujas**.

### 🇵🇱 Polski

**eBay Scraper** pobiera oferty z **15 serwisów eBay** (ebay.pl, .de, .com, .co.uk, .fr, .it …) **od $2.50 za 1000 ofert**.

- **Wklejasz dowolny link eBay** (wyszukiwanie, kategoria, sklep, sprzedawca, oferta) albo frazy z wszystkimi filtrami: kategoria, cena, stan, licytacja / Kup teraz, propozycja ceny, darmowa wysyłka, lokalizacja.
- **Szczegóły oferty**: parametry, marka, EAN, wszystkie zdjęcia, obserwujący, sprzedana ilość, opis.
- **Śledzenie sprzedawców**: profil, wszystkie oferty i komentarze kupujących **z cenami sprzedaży**.
- **Wyszukiwanie po EAN / UPC / ISBN** z podsumowaniem cen.
- **Monitoring**: nowe oferty, obniżki cen i **zakończone oferty z ceną końcową i liczbą ofert w licytacji**.

### 🇳🇱 Nederlands

**eBay Scraper** haalt advertenties op van **15 eBay-sites** (ebay.nl, .be, .de, .com, .co.uk …) **vanaf $2.50 per 1.000 advertenties**.

- **Plak elke eBay-link** of zoek op trefwoorden met alle filters: categorie, prijs, staat, veiling / direct kopen, bod, gratis verzending, locatie.
- **Advertentiedetails**, **verkopers volgen** (profiel, advertenties en beoordelingen **met verkoopprijzen**), **zoeken op EAN** en **monitoring** van nieuwe, goedkopere en **verkochte advertenties met eindprijs**.

***

💬 Questions or a missing feature? Open an issue in the **Issues** tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/liveclaude/ebay-scraper/changelog.md

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords, one per line. Each query runs on every selected eBay site. 🇵🇱 Frazy do wyszukania, jedna w linii.

## `startUrls` (type: `array`):

Paste any eBay link: a search with filters set on the website, a category (<code>/b/...</code>), a listing (<code>/itm/...</code>), a seller (<code>/usr/...</code>) or a store (<code>/str/...</code>). Every website filter works. 🇵🇱 Dowolny link z eBay: wyszukiwanie z filtrami, kategoria, aukcja, sprzedawca lub sklep.

## `eans` (type: `array`):

Find every listing of a product by its barcode (searches titles and descriptions). 🇵🇱 Szukaj ofert po kodzie EAN/UPC/ISBN.

## `sellers` (type: `array`):

eBay usernames (or profile/store URLs). Get the seller profile, all active listings and their buyer feedback with sale prices. 🇵🇱 Nazwy sprzedawców: profil, aktywne oferty i oceny kupujących z cenami sprzedaży.

## `sites` (type: `array`):

Which eBay marketplaces to search. 🇵🇱 Rynki eBay do przeszukania.

## `allSites` (type: `boolean`):

Search every supported eBay site at once. 🇵🇱 Wszystkie 15 rynków naraz.

## `maxItemsPerSearch` (type: `integer`):

Per query and site. <code>0</code> = everything (large searches are split into price ranges automatically). 🇵🇱 Limit na frazę i rynek, 0 = wszystko.

## `sortBy` (type: `string`):

🇵🇱 Sortowanie.

## `categoryId` (type: `string`):

eBay category ID, e.g. <code>9355</code> (cell phones). Easiest: open the category on eBay and paste the URL above. 🇵🇱 ID kategorii eBay.

## `priceMin` (type: `number`):

In the currency of each site. 🇵🇱 Cena minimalna (waluta danego rynku).

## `priceMax` (type: `number`):

🇵🇱 Cena maksymalna.

## `conditions` (type: `array`):

🇵🇱 Stan przedmiotu.

## `buyingFormat` (type: `string`):

🇵🇱 Licytacja, Kup teraz albo wszystko.

## `bestOfferOnly` (type: `boolean`):

🇵🇱 Tylko oferty z propozycją ceny.

## `freeShippingOnly` (type: `boolean`):

🇵🇱 Tylko darmowa wysyłka.

## `itemLocation` (type: `string`):

🇵🇱 Lokalizacja przedmiotu.

## `searchInDescription` (type: `boolean`):

🇵🇱 Szukaj też w opisach.

## `excludeKeywords` (type: `array`):

Skip listings whose title contains any of these words (e.g. <code>case</code>, <code>broken</code>). Skipped listings are free. 🇵🇱 Pomiń tytuły z tymi słowami (bezpłatnie).

## `titleMustInclude` (type: `array`):

🇵🇱 Tytuł musi zawierać jedno z tych słów.

## `sellerType` (type: `string`):

Where eBay shows it (e.g. ebay.de, ebay.co.uk). 🇵🇱 Prywatny / firma.

## `minSellerFeedback` (type: `integer`):

🇵🇱 Minimalna liczba ocen sprzedawcy.

## `includeDetails` (type: `boolean`):

Open every listing and add: item specifics (brand, model, EAN/UPC, MPN…), all photos, watchers, quantity sold/available, seller feedback, item location, shipping & returns, start/end date, category path. 🇵🇱 Szczegóły oferty: parametry, EAN, wszystkie zdjęcia, obserwujący, sprzedane sztuki, sprzedawca, lokalizacja, wysyłka.

## `includeDescription` (type: `boolean`):

Also download the full item description written by the seller (needs Listing details). 🇵🇱 Pełny opis sprzedawcy.

## `sellerListings` (type: `boolean`):

For sellers / store URLs, return all their active listings. 🇵🇱 Aktywne oferty sprzedawcy.

## `sellerProfile` (type: `boolean`):

Feedback score, % positive, items sold, followers, location, member since, 12-month positive/neutral/negative ratings. 🇵🇱 Profil sprzedawcy.

## `sellerFeedback` (type: `integer`):

Latest buyer feedback with the item, the price paid and the date - i.e. the seller's recent sales. <code>0</code> = off. 🇵🇱 Oceny kupujących z ceną zakupu = ostatnie sprzedaże sprzedawcy.

## `priceSummary` (type: `boolean`):

Adds one summary row per search: min / median / average / max price, auctions vs Buy It Now. 🇵🇱 Podsumowanie cen dla każdego wyszukiwania.

## `compareSites` (type: `boolean`):

For queries searched on 2+ sites: median price per site in USD and the cheapest site. 🇵🇱 Porównanie cen między rynkami.

## `onlyNewItems` (type: `boolean`):

Remember listings and on next runs return (and charge) only new ones - perfect for scheduled deal alerts. 🇵🇱 Monitoring: kolejne uruchomienia zwracają tylko nowe oferty.

## `trackPriceDrops` (type: `boolean`):

🇵🇱 Zwracaj też obniżki cen.

## `detectSoldItems` (type: `boolean`):

When a tracked listing ends, its public page is checked: final price, sold or not, bids, days on market. eBay hides sold searches from signed-out users since July 2026 - this is how you still get real selling prices for your searches. 🇵🇱 Gdy śledzona oferta się kończy: cena końcowa, czy sprzedana, liczba ofert, dni wystawienia.

## `emitOnFirstRun` (type: `boolean`):

Off = the first run only saves a baseline. 🇵🇱 Wyłączone = pierwsze uruchomienie tylko zapamiętuje stan.

## `monitorId` (type: `string`):

Optional name for this monitor's memory. 🇵🇱 Opcjonalna nazwa monitora.

## `bypassResultLimit` (type: `boolean`):

🇵🇱 Omijanie limitu 10 000 wyników.

## `maxConcurrency` (type: `integer`):

🇵🇱 Równoległe zapytania.

## Actor input object example

```json
{
  "searchQueries": [
    "nintendo switch oled"
  ],
  "sites": [
    "us"
  ],
  "allSites": false,
  "maxItemsPerSearch": 100,
  "sortBy": "best_match",
  "buyingFormat": "all",
  "bestOfferOnly": false,
  "freeShippingOnly": false,
  "itemLocation": "all",
  "searchInDescription": false,
  "sellerType": "all",
  "includeDetails": false,
  "includeDescription": false,
  "sellerListings": true,
  "sellerProfile": true,
  "sellerFeedback": 0,
  "priceSummary": true,
  "compareSites": false,
  "onlyNewItems": false,
  "trackPriceDrops": true,
  "detectSoldItems": true,
  "emitOnFirstRun": true,
  "bypassResultLimit": true,
  "maxConcurrency": 25
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "nintendo switch oled"
    ],
    "sites": [
        "us"
    ],
    "maxItemsPerSearch": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("liveclaude/ebay-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["nintendo switch oled"],
    "sites": ["us"],
    "maxItemsPerSearch": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("liveclaude/ebay-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "nintendo switch oled"
  ],
  "sites": [
    "us"
  ],
  "maxItemsPerSearch": 100
}' |
apify call liveclaude/ebay-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,liveclaude/ebay-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/eyheQtxv4aquC5cdx/builds/x6GuobwFuZjQZgCo0/openapi.json
