# eBay Product Scraper - Fast & Complete (`viralanalyzer/ebay-product-scraper`) Actor

Search eBay products by keyword. Extract prices, sellers, conditions, shipping, and image URLs. Bypasses anti-bot.

- **URL**: https://apify.com/viralanalyzer/ebay-product-scraper.md
- **Developed by:** [viralanalyzer](https://apify.com/viralanalyzer) (community)
- **Categories:** E-commerce, Marketing
- **Stats:** 6 total users, 1 monthly users, 93.3% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $26.25 / 1,000 product scrapeds

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🛒 eBay Product Scraper — Search Results, Prices, Sellers & Shipping

> 🔗 [View on Apify Store](https://apify.com/viralanalyzer/ebay-product-scraper) | 🇺🇸 English | [🇧🇷 Português](#português)

Search **eBay products by keyword** and extract full listing details including prices, sellers, shipping costs, item condition, and images. Supports all major eBay domains (US, UK, DE, FR, IT, ES, CA, AU). Powered by the official eBay Browse API — real data, no anti-bot, no proxy needed.

### ✨ Features

- 🔍 **Keyword search** — Search any product on eBay by keyword
- 💲 **Price extraction** — Price + currency detection (USD, GBP, EUR, CAD, AUD, BRL)
- 📦 **Shipping info** — Shipping costs and delivery details
- 🏷️ **Item condition** — New, Used, Refurbished, etc.
- 🌍 **8 eBay domains** — ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au
- 🔃 **Sort options** — Best match, price ascending/descending, newly listed, ending soon
- 🛡️ **Anti-placeholder guardrails** — Every result validated against placeholder patterns
- ⚡ **Official eBay Browse API** — real data, no anti-bot blocks, fast (seconds per query)

### 📥 Input

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchQueries` | string\[] | ✅ | — | Keywords to search (1-20 queries) |
| `maxItemsPerQuery` | integer | ❌ | `48` | Max products per query (1-200) |
| `domain` | string | ❌ | `"ebay.com"` | eBay country domain |
| `sortBy` | string | ❌ | `"best_match"` | Sort order: `best_match`, `price_asc`, `price_desc`, `newly_listed`, `ending_soon` |

#### Input Example

```json
{
  "searchQueries": [
    "iphone 15 pro",
    "vintage vinyl records",
    "mechanical keyboard"
  ],
  "maxItemsPerQuery": 48,
  "domain": "ebay.com",
  "sortBy": "best_match"
}
```

### 📤 Output

Every product includes these fields:

| Field | Type | Description |
|---|---|---|
| `itemId` | string | eBay listing ID |
| `title` | string | Product title |
| `price` | number | Price value |
| `currency` | string | Currency code (USD, GBP, EUR, CAD, AUD, BRL) |
| `condition` | string | Item condition (New, Used, Refurbished, etc.) |
| `imageUrl` | string | Product image URL |
| `itemUrl` | string | eBay listing URL |
| `shipping` | string | Shipping cost/details |
| `sellerName` | string | Seller username |
| `sellerFeedback` | number | Seller positive feedback percentage |
| `buyingOptions` | string | FIXED\_PRICE, AUCTION, BEST\_OFFER |
| `itemLocation` | string | Item location city/state/country |
| `searchQuery` | string | Original search query |
| `platform` | string | Always `"ebay"` |
| `scrapedAt` | string | ISO 8601 timestamp |

#### Output Example

```json
{
  "itemId": "256218974831",
  "title": "Apple iPhone 15 Pro 256GB Natural Titanium Unlocked Very Good Condition",
  "price": 749.99,
  "currency": "USD",
  "condition": "Pre-Owned",
  "imageUrl": "https://i.ebayimg.com/thumbs/images/g/rH8AAOSwWkRnK3Vz/s-l300.webp",
  "itemUrl": "https://www.ebay.com/itm/256218974831",
  "shipping": "Free shipping",
  "sellerName": "cellularprofessor",
  "sellerFeedback": 99.5,
  "buyingOptions": "FIXED_PRICE",
  "itemLocation": "New York, NY, United States",
  "searchQuery": "iphone 15 pro",
  "platform": "ebay",
  "scrapedAt": "2026-03-06T14:22:31.456Z"
}
```

### 📋 Use Cases

- **Price Monitoring** — Track product prices across eBay domains over time
- **Competitor Analysis** — Compare seller prices, shipping, and conditions
- **Market Research** — Discover trending products and price ranges by category
- **Dropshipping Research** — Find profitable products with pricing and seller data
- **E-commerce Intelligence** — Monitor listing volumes and price fluctuations

### ❓ FAQ

**Q: Which eBay domains are supported?**
A: The actor supports 8 domains: ebay.com (US), ebay.co.uk (UK), ebay.de (Germany), ebay.fr (France), ebay.it (Italy), ebay.es (Spain), ebay.ca (Canada), and ebay.com.au (Australia). Set the `domain` parameter to switch between them.

**Q: How many products can I scrape per run?**
A: Up to 200 products per search query, with a maximum of 20 queries per run. The actor paginates up to 4 pages per query (approximately 240 results per page). Results are automatically deduplicated across queries.

**Q: Do I need an eBay API key?**
A: No — the actor uses ViralAnalyzer's official eBay Browse API keyset. You only provide search keywords; real listing data is returned with no anti-bot blocks.

**Q: What sort options are available?**
A: Five options: `best_match` (default relevance ranking), `price_asc` (lowest price first), `price_desc` (highest price first), `newly_listed` (most recent listings), and `ending_soon` (auction listings ending soonest).

**Q: How does currency detection work?**
A: The actor automatically detects the currency from the price text on the page. It recognizes USD ($), GBP, EUR, CAD (C$), AUD (AU$), and BRL (R$). The currency depends on which eBay domain you search.

### 💰 Pricing

This actor uses **Pay Per Event (PPE)** pricing:

| Metric | Cost |
|--------|------|
| Per product scraped | $0.05 |

### 🔗 Related Actors

- [Google Trends Scraper](https://apify.com/viralanalyzer/google-trends-scraper) — Trend data for product research
- [CoinGecko Crypto Intelligence](https://apify.com/viralanalyzer/coingecko-crypto-intelligence) — Crypto market data
- [Steam Game Intelligence](https://apify.com/viralanalyzer/steam-game-intelligence) — Steam game market data
- [TikTok Viral Scanner](https://apify.com/viralanalyzer/tiktok-viral-scanner) — Viral product trends

### 📝 Changelog

#### v3.0 (Current)

- ✅ Migrated to the official eBay Browse API — real data, no anti-bot, no proxy needed
- ✅ New output fields: `sellerFeedback`, `buyingOptions`, `itemLocation`

#### v1.0

- ✅ Keyword search on 8 eBay domains
- ✅ Full product data extraction (title, price, condition, seller, shipping, image)
- ✅ Multi-currency support (USD, GBP, EUR, CAD, AUD, BRL)
- ✅ 5 sort options (best match, price asc/desc, newly listed, ending soon)
- ✅ Pagination up to 4 pages per query (240 items max)
- ✅ Anti-placeholder guardrails + deduplication
- ✅ Rate limit handling with exponential backoff
- ✅ PPE billing integration

***

<a name="português"></a>

## 🛒 eBay Product Scraper — Resultados de Busca, Preços, Vendedores e Frete

> [🇺🇸 English](#-ebay-product-scraper--search-results-prices-sellers--shipping) | 🇧🇷 Português

Busque **produtos no eBay por palavra-chave** e extraia detalhes completos dos anúncios incluindo preços, vendedores, custos de frete, condição do item e imagens. Suporta todos os principais domínios do eBay (US, UK, DE, FR, IT, ES, CA, AU). Alimentado pela API oficial eBay Browse — dados reais, sem anti-bot, sem proxy.

### ✨ Funcionalidades

- 🔍 **Busca por palavra-chave** — Busque qualquer produto no eBay por keyword
- 💲 **Extração de preços** — Preço + detecção de moeda (USD, GBP, EUR, CAD, AUD, BRL)
- 📦 **Informações de frete** — Custos de envio e detalhes de entrega
- 🏷️ **Condição do item** — Novo, Usado, Recondicionado, etc.
- 🌍 **8 domínios eBay** — ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au
- 🔃 **Opções de ordenação** — Mais relevante, preço crescente/decrescente, mais recente, finalizando em breve
- 🛡️ **Guardrails anti-placeholder** — Todo resultado validado contra padrões falsos
- ⚡ **API oficial eBay Browse** — dados reais, sem bloqueios anti-bot, rápido (segundos por query)

### 📥 Entrada

| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| `searchQueries` | string\[] | ✅ | — | Palavras-chave para busca (1-20 queries) |
| `maxItemsPerQuery` | inteiro | ❌ | `48` | Máximo de produtos por query (1-200) |
| `domain` | string | ❌ | `"ebay.com"` | Domínio do eBay por país |
| `sortBy` | string | ❌ | `"best_match"` | Ordenação: `best_match`, `price_asc`, `price_desc`, `newly_listed`, `ending_soon` |

#### Exemplo de Entrada

```json
{
  "searchQueries": [
    "iphone 15 pro",
    "vintage vinyl records",
    "mechanical keyboard"
  ],
  "maxItemsPerQuery": 48,
  "domain": "ebay.com",
  "sortBy": "best_match"
}
```

### 📤 Saída

Cada produto inclui estes campos:

| Campo | Tipo | Descrição |
|---|---|---|
| `itemId` | string | ID do anúncio no eBay |
| `title` | string | Título do produto |
| `price` | número | Valor do preço |
| `currency` | string | Código da moeda (USD, GBP, EUR, CAD, AUD, BRL) |
| `condition` | string | Condição do item (Novo, Usado, Recondicionado, etc.) |
| `imageUrl` | string | URL da imagem do produto |
| `itemUrl` | string | URL do anúncio no eBay |
| `shipping` | string | Custo/detalhes de frete |
| `sellerName` | string | Nome do vendedor |
| `sellerFeedback` | número | Percentual de feedback positivo do vendedor |
| `buyingOptions` | string | FIXED\_PRICE, AUCTION, BEST\_OFFER |
| `itemLocation` | string | Localização do item (cidade/estado/país) |
| `searchQuery` | string | Query de busca original |
| `platform` | string | Sempre `"ebay"` |
| `scrapedAt` | string | Timestamp ISO 8601 |

#### Exemplo de Saída

```json
{
  "itemId": "256218974831",
  "title": "Apple iPhone 15 Pro 256GB Natural Titanium Unlocked Very Good Condition",
  "price": 749.99,
  "currency": "USD",
  "condition": "Pre-Owned",
  "imageUrl": "https://i.ebayimg.com/thumbs/images/g/rH8AAOSwWkRnK3Vz/s-l300.webp",
  "itemUrl": "https://www.ebay.com/itm/256218974831",
  "shipping": "Free shipping",
  "sellerName": "cellularprofessor",
  "sellerFeedback": 99.5,
  "buyingOptions": "FIXED_PRICE",
  "itemLocation": "New York, NY, United States",
  "searchQuery": "iphone 15 pro",
  "platform": "ebay",
  "scrapedAt": "2026-03-06T14:22:31.456Z"
}
```

### 📋 Casos de Uso

- **Monitoramento de Preços** — Acompanhe preços de produtos em diferentes domínios do eBay
- **Análise de Concorrentes** — Compare preços, frete e condições entre vendedores
- **Pesquisa de Mercado** — Descubra produtos em alta e faixas de preço por categoria
- **Pesquisa de Dropshipping** — Encontre produtos lucrativos com dados de preço e vendedor
- **Inteligência E-commerce** — Monitore volumes de anúncios e flutuações de preço

### ❓ Perguntas Frequentes

**P: Quais domínios do eBay são suportados?**
R: O actor suporta 8 domínios: ebay.com (EUA), ebay.co.uk (Reino Unido), ebay.de (Alemanha), ebay.fr (França), ebay.it (Itália), ebay.es (Espanha), ebay.ca (Canadá) e ebay.com.au (Austrália). Defina o parâmetro `domain` para alternar entre eles.

**P: Quantos produtos posso extrair por execução?**
R: Até 200 produtos por query de busca, com no máximo 20 queries por execução. O actor pagina até 4 páginas por query (aproximadamente 240 resultados por página). Resultados são automaticamente deduplicados entre queries.

**P: Preciso de uma chave de API do eBay?**
R: Não — o actor usa o keyset oficial da API eBay Browse da ViralAnalyzer. Você só fornece palavras-chave de busca; dados reais dos anúncios são retornados sem bloqueios anti-bot.

**P: Quais opções de ordenação estão disponíveis?**
R: Cinco opções: `best_match` (relevância padrão), `price_asc` (menor preço primeiro), `price_desc` (maior preço primeiro), `newly_listed` (anúncios mais recentes) e `ending_soon` (leilões finalizando em breve).

**P: Como funciona a detecção de moeda?**
R: O actor detecta automaticamente a moeda a partir do texto de preço na página. Reconhece USD ($), GBP, EUR, CAD (C$), AUD (AU$) e BRL (R$). A moeda depende de qual domínio do eBay você pesquisar.

### 💰 Preços

Este actor usa precificação **Pay Per Event (PPE)**:

| Métrica | Custo |
|---------|-------|
| Por produto extraído | $0.05 |

### 🔗 Actors Relacionados

- [Google Trends Scraper](https://apify.com/viralanalyzer/google-trends-scraper) — Dados de tendências para pesquisa de produtos
- [CoinGecko Crypto Intelligence](https://apify.com/viralanalyzer/coingecko-crypto-intelligence) — Dados de mercado cripto
- [Steam Game Intelligence](https://apify.com/viralanalyzer/steam-game-intelligence) — Dados de mercado de jogos Steam
- [TikTok Viral Scanner](https://apify.com/viralanalyzer/tiktok-viral-scanner) — Tendências virais de produtos

### 📝 Changelog

#### v3.0 (Atual)

- ✅ Migrado para a API oficial eBay Browse — dados reais, sem anti-bot, sem proxy
- ✅ Novos campos de saída: `sellerFeedback`, `buyingOptions`, `itemLocation`

#### v1.0

- ✅ Busca por palavra-chave em 8 domínios do eBay
- ✅ Extração completa de dados (título, preço, condição, vendedor, frete, imagem)
- ✅ Suporte multi-moeda (USD, GBP, EUR, CAD, AUD, BRL)
- ✅ 5 opções de ordenação (relevância, preço asc/desc, mais recente, finalizando)
- ✅ Paginação de até 4 páginas por query (240 itens máx)
- ✅ Guardrails anti-placeholder + deduplicação
- ✅ Tratamento de rate limit com backoff exponencial
- ✅ Integração com cobrança PPE

# Actor input Schema

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

Keywords to search for on eBay (e.g., 'iphone 15 pro', 'vintage vinyl records').

## `maxItemsPerQuery` (type: `integer`):

Maximum number of products to extract per search query.

## `domain` (type: `string`):

eBay country domain to search.

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

Sort order for search results.

## Actor input object example

```json
{
  "searchQueries": [
    "iphone 15 pro"
  ],
  "maxItemsPerQuery": 5,
  "domain": "ebay.com",
  "sortBy": "best_match"
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing all scraped results. Each item follows the dataset schema.

# 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": [
        "iphone 15 pro"
    ],
    "maxItemsPerQuery": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("viralanalyzer/ebay-product-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": ["iphone 15 pro"],
    "maxItemsPerQuery": 5,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "iphone 15 pro"
  ],
  "maxItemsPerQuery": 5
}' |
apify call viralanalyzer/ebay-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=viralanalyzer/ebay-product-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/IM1uv8JaLuKVCkoFk/builds/gkvbMW0xjIcbR8MN2/openapi.json
