# Ebay Scraper Ppe (`silentflow/ebay-scraper-ppe`) Actor

Extract eBay listings — prices, conditions, seller ratings, shipping costs, bids, and item specifics from any eBay marketplace. Pay only for results. Search by keyword with filters for condition, price range, and listing type. Get full details with specs, images, and product identifiers.

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

## Pricing

from $1.70 / 1,000 results

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 Scraper - Pay Per Event

by [SilentFlow](https://apify.com/silentflow)

**Pay only for the data you get!** Proxies included, no compute costs.

Extract eBay listings at scale, prices, conditions, seller ratings, shipping details, bids, item specifics, and product identifiers from any eBay marketplace worldwide.

### ✨ Why use this scraper?

- 💰 **Pay per result**: No compute costs, only pay for listings you actually receive
- 🌐 **Proxies included**: No need to configure or pay for proxies separately
- 🌍 **All eBay sites**: US, UK, Germany, France, Canada, Australia, Italy, Spain, one tool for every market
- 🔍 **Keyword search**: Just type your search terms, no need to construct URLs manually
- 🎯 **Powerful filters**: Filter by condition (new/used/refurbished), listing type (Buy It Now / Auction), and price range
- 📦 **Rich data**: Title, price, original price, seller with feedback score, shipping cost, location, bids, sold count, and more

### 🎯 Use cases

| Industry | Application |
|----------|-------------|
| **E-commerce** | Track competitor pricing and identify arbitrage opportunities |
| **Market Research** | Analyze supply, demand, and price trends for any product category |
| **Price Intelligence** | Monitor sold prices and "was price" discounts for dynamic pricing |
| **Inventory Sourcing** | Find bulk lots, wholesale items, and underpriced listings automatically |
| **Dropshipping** | Discover trending products with high sold counts and healthy margins |
| **Product Catalog** | Build product databases with brand, identifiers (UPC/EAN/MPN), and images |

### 📥 Input parameters

#### URL Scraping

| Parameter | Type | Description |
|-----------|------|-------------|
| `startUrls` | array | Direct eBay URLs to scrape (search pages or item detail pages) |

#### Search

| Parameter | Type | Description |
|-----------|------|-------------|
| `searches` | array | Keywords to search for on eBay. Each query runs as a separate search. |
| `site` | string | eBay marketplace: `ebay.com`, `ebay.co.uk`, `ebay.de`, `ebay.fr`, `ebay.ca`, `ebay.it`, `ebay.es`, `ebay.com.au` |

#### Sorting & Filtering

| Parameter | Type | Description |
|-----------|------|-------------|
| `sort` | string | `best_match` (default), `ending_soon`, `price_asc`, `price_desc`, `newest` |
| `condition` | string | `any` (default), `new`, `used`, `refurbished` |
| `listingType` | string | `any` (default), `buy_now`, `auction` |
| `minPrice` | number | Minimum price filter (0 = no minimum) |
| `maxPrice` | number | Maximum price filter (0 = no maximum) |
| `category` | string | eBay category ID (e.g., `9355` for Cell Phones, empty for all) |

#### Limits

| Parameter | Type | Description |
|-----------|------|-------------|
| `maxItems` | integer | Maximum total listings to save (default: 50) |

#### Options

| Parameter | Type | Description |
|-----------|------|-------------|
| `includeDetails` | boolean | Fetch each item's detail page for description, item specifics, all images, EAN/UPC/MPN (default: false) |

### 📊 Output data

#### Listing example (includeDetails: false)

```json
{
  "id": "156789012345",
  "url": "https://www.ebay.com/itm/156789012345",
  "title": "Apple iPhone 15 Pro Max 256GB - Natural Titanium - Unlocked",
  "subtitle": "FREE FEDEX 2 DAY - 60 DAY RETURNS - 1 YEAR WARRANTY",
  "price": "$949.99",
  "priceValue": 949.99,
  "currency": "USD",
  "originalPrice": "$1,199.99",
  "originalPriceValue": 1199.99,
  "condition": "Excellent - Refurbished",
  "listingType": "BuyItNow",
  "bestOffer": false,
  "topRatedPlus": true,
  "returnsAccepted": true,
  "bidsCount": 0,
  "imageUrl": "https://i.ebayimg.com/images/g/abc123/s-l1600.jpg",
  "seller": "apple_reseller_pro",
  "sellerFeedbackScore": 15234,
  "sellerFeedbackPct": 99.8,
  "itemLocation": "California, United States",
  "shippingCost": "Free shipping",
  "freeShipping": true,
  "excludesShipping": "",
  "soldCount": 47,
  "available": 0,
  "availableText": "",
  "watchersCount": 62,
  "whyToBuy": ["Free shipping and returns", "47 sold", "Ships from California, United States", "Top Rated Plus seller"],
  "scrapedAt": "2026-02-27T10:30:00Z",
  "dataType": "listing"
}
```

#### Full item example (includeDetails: true)

```json
{
  "id": "156789012345",
  "url": "https://www.ebay.com/itm/156789012345",
  "title": "Apple iPhone 15 Pro Max 256GB - Natural Titanium - Unlocked",
  "price": "$949.99",
  "priceValue": 949.99,
  "currency": "USD",
  "condition": "New",
  "brand": "Apple",
  "upc": "195949035500",
  "mpn": "MQDY3LL/A",
  "category": "Cell Phones & Smartphones",
  "description": "Factory unlocked Apple iPhone 15 Pro Max...",
  "specifications": {
    "Brand": "Apple",
    "Model": "iPhone 15 Pro Max",
    "Storage Capacity": "256 GB",
    "Color": "Natural Titanium",
    "Network": "Unlocked"
  },
  "images": [
    "https://i.ebayimg.com/images/g/abc123/s-l1600.jpg",
    "https://i.ebayimg.com/images/g/def456/s-l1600.jpg"
  ],
  "scrapedAt": "2026-02-27T10:30:00Z",
  "dataType": "listing"
}
```

### 🗂️ Data fields

| Category | Fields |
|----------|--------|
| **Identity** | `id`, `url`, `title`, `subtitle` |
| **Pricing** | `price`, `priceValue`, `currency`, `originalPrice`, `originalPriceValue` |
| **Listing** | `condition`, `listingType`, `bestOffer`, `topRatedPlus`, `returnsAccepted`, `bidsCount`, `endDate` |
| **Seller** | `seller`, `sellerUrl`, `sellerFeedbackScore`, `sellerFeedbackPct` |
| **Shipping** | `shippingCost`, `freeShipping`, `itemLocation`, `shipsTo`, `excludesShipping` |
| **Availability** | `soldCount`, `available`, `availableText`, `watchersCount` |
| **Highlights** | `whyToBuy`, key selling signals (free shipping, sold count, location, Top Rated Plus) |
| **Category** | `category`, `breadcrumbs` |
| **Identifiers** | `brand`, `ean`, `upc`, `mpn` |
| **Detail (opt.)** | `description`, `specifications`, `images` |
| **Meta** | `lastUpdated`, `scrapedAt`, `dataType` |

### 🚀 Examples

#### Search for new iPhones under $1000

```json
{
  "searches": ["iphone 15 pro max"],
  "site": "ebay.com",
  "condition": "new",
  "listingType": "buy_now",
  "maxPrice": 1000,
  "maxItems": 100
}
```

#### Monitor ending auctions for vintage watches

```json
{
  "searches": ["rolex submariner", "omega seamaster vintage"],
  "sort": "ending_soon",
  "listingType": "auction",
  "maxItems": 50
}
```

#### Scrape UK eBay with full item specs

```json
{
  "searches": ["macbook pro m3"],
  "site": "ebay.co.uk",
  "condition": "used",
  "sort": "price_asc",
  "maxItems": 100,
  "includeDetails": true
}
```

### 💻 Integrations

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run_input = {
    "searches": ["iphone 15 pro max"],
    "site": "ebay.com",
    "condition": "new",
    "maxItems": 100,
}

run = client.actor("silentflow/ebay-scraper-ppe").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["price"])
```

#### JavaScript

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('silentflow/ebay-scraper-ppe').call({
    searches: ['iphone 15 pro max'],
    site: 'ebay.com',
    condition: 'new',
    maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(item.title, item.price));
```

### 📈 Performance & limits

| Metric | Value |
|--------|-------|
| Items per page | ~60 listings |
| Speed (listing only) | ~200-400 items/min |
| Speed (with details) | ~30-60 items/min |
| Max pages per search | 100 (eBay limit) |
| Supported sites | 8 eBay marketplaces |

### 💡 Tips for best results

1. **Start without detail pages**: Set `includeDetails: false` for fast bulk scraping. Enable it only when you need description, specs, or identifiers.
2. **Use price filters**: Narrow results to your target range with `minPrice` / `maxPrice` to avoid irrelevant listings.
3. **Search multiple sites**: Run searches on `ebay.co.uk` and `ebay.de` to compare international prices.
4. **Auction monitoring**: Set `sort: ending_soon` + `listingType: auction` to monitor items about to end.
5. **Category IDs**: Use a specific category ID (e.g., `9355` for Cell Phones) to reduce irrelevant results.

### ❓ FAQ

**Q: How does pay-per-event pricing work?**
A: You pay only for listings you receive, not for compute time. Proxies are included at no extra charge.

**Q: Can I scrape multiple eBay sites in one run?**
A: Each run targets one site. To scrape multiple sites, create separate runs with different `site` values, or provide start URLs from different eBay domains.

**Q: How many results can I get per search?**
A: eBay typically returns up to 60 items per page, with a maximum of 100 pages per search. Use `maxItems` to control how many listings you collect.

**Q: What if no results are found?**
A: The scraper will return an empty dataset. Try broadening your search terms or removing filters.

### 📬 Support

Need help? We're here for you:

- **Feature requests**: Let us know what you need
- **Custom solutions**: Contact us for enterprise integrations or high-volume needs

Check out our other scrapers: [SilentFlow on Apify](https://apify.com/silentflow)

# Actor input Schema

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

eBay URLs to scrape directly. Supports search results pages and individual item pages.

## `searches` (type: `array`):

Keywords to search for on eBay. Each query runs as a separate search.

## `site` (type: `string`):

Which eBay marketplace to search.

## `sort` (type: `string`):

How to order search results.

## `condition` (type: `string`):

Filter listings by item condition.

## `listingType` (type: `string`):

Filter by listing format.

## `minPrice` (type: `number`):

Minimum price filter (in the site's local currency). Leave at 0 for no minimum.

## `maxPrice` (type: `number`):

Maximum price filter (in the site's local currency). Leave at 0 for no maximum.

## `category` (type: `string`):

eBay category ID to search within (e.g., '9355' for Cell Phones). Leave empty for all categories.

## `maxItems` (type: `integer`):

Maximum total number of listings to save.

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

Visit each item's page for full data: description, item specifics (Brand, Color, Size...), all images, EAN/UPC/MPN. Slower but returns richer data.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.ebay.com/sch/i.html?_nkw=iphone+15+pro+max"
    }
  ],
  "searches": [
    "iphone 15 pro max",
    "macbook pro m3"
  ],
  "site": "ebay.com",
  "sort": "best_match",
  "condition": "any",
  "listingType": "any",
  "minPrice": 0,
  "maxPrice": 0,
  "category": "",
  "maxItems": 50,
  "includeDetails": false
}
```

# Actor output Schema

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

All scraped listings with full data.

## `resultsCSV` (type: `string`):

CSV format for spreadsheet analysis.

## `resultsExcel` (type: `string`):

Excel format export.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.ebay.com/sch/i.html?_nkw=iphone+15+pro+max"
        }
    ],
    "searches": [
        "iphone 15 pro max",
        "macbook pro m3"
    ],
    "site": "ebay.com",
    "sort": "best_match",
    "condition": "any",
    "listingType": "any",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/ebay-scraper-ppe").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 = {
    "startUrls": [{ "url": "https://www.ebay.com/sch/i.html?_nkw=iphone+15+pro+max" }],
    "searches": [
        "iphone 15 pro max",
        "macbook pro m3",
    ],
    "site": "ebay.com",
    "sort": "best_match",
    "condition": "any",
    "listingType": "any",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("silentflow/ebay-scraper-ppe").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 '{
  "startUrls": [
    {
      "url": "https://www.ebay.com/sch/i.html?_nkw=iphone+15+pro+max"
    }
  ],
  "searches": [
    "iphone 15 pro max",
    "macbook pro m3"
  ],
  "site": "ebay.com",
  "sort": "best_match",
  "condition": "any",
  "listingType": "any",
  "maxItems": 50
}' |
apify call silentflow/ebay-scraper-ppe --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/EdmY2dSHXAUjwjWSQ/builds/5DFtY02XFb4ER4YmX/openapi.json
