# eBay Scraper — Product Listings, Prices & Seller Data (`muhammadafzal/ebay-scraper`) Actor

Fast eBay scraper to extract product listings, prices, seller ratings, shipping details, and item conditions. Search by keyword or product category. Structured JSON output for market research, price monitoring, and e-commerce analytics.

- **URL**: https://apify.com/muhammadafzal/ebay-scraper.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** E-commerce, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 — Extract Product Listings, Prices & Seller Data

A powerful eBay scraper that extracts product listing metadata including titles, prices, conditions, seller ratings, shipping details, and buying formats. Search by keyword or product category. Ideal for market research, price monitoring, competitive analysis, and e-commerce data collection.

### Features

- **Lightning fast results** — 50 listings scraped in ~15 seconds
- **Rich product metadata** — titles, prices, conditions, seller ratings, feedback counts, shipping costs, item locations
- **Price tracking** — monitor listing prices with numeric values ready for analysis and charting
- **Seller intelligence** — extract seller names, ratings, feedback counts, and Top Rated status
- **Buying format detection** — distinguish between Auction and Buy It Now listings
- **Condition filtering** — narrow results by New, Used, Refurbished, or other conditions
- **Multi-query support** — search multiple product keywords in a single run
- **Advanced filtering** — filter by free shipping, Top Rated sellers only
- **Automatic pagination** — fetches up to 200 results per query with intelligent page handling
- **Structured JSON output** — clean, well-formatted data ready for analysis, databases, or AI pipelines

### Use Cases

- **Market research** — track pricing trends, popular products, and market saturation across categories
- **Competitive intelligence** — monitor competitor listings, pricing strategies, and seller performance
- **Price monitoring** — track price changes over time for specific products or categories
- **Product sourcing** — find profitable items for resale by comparing listing prices and conditions
- **Seller analysis** — evaluate seller reputation, feedback patterns, and inventory breadth
- **E-commerce analytics** — feed structured listing data into BI tools, dashboards, and data warehouses
- **AI & machine learning** — build product recommendation engines, price prediction models, and market analysis tools
- **Dropshipping intelligence** — identify trending products, optimal price points, and reliable suppliers

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchQueries` | string[] | `["iPhone 15 Pro"]` | Product keywords to search on eBay |
| `maxResults` | integer | `50` | Max listings per query (1–200) |
| `condition` | string | `"all"` | Filter by `"all"`, `"New"`, `"Used"`, or `"Refurbished"` |
| `buyingFormat` | string | `"all"` | Filter by `"all"`, `"Auction"`, or `"Buy It Now"` |
| `freeShipping` | boolean | `false` | Only show items with free shipping |
| `topRatedOnly` | boolean | `false` | Only show items from Top Rated sellers |
| `maxRequestRetries` | integer | `5` | Max retry attempts for failed requests (1–10) |

### Output

Each listing record includes 17 fields of structured metadata:

| Field | Type | Description |
|-------|------|-------------|
| `title` | string | Full eBay listing title |
| `price` | number｜null | Current item price as a number |
| `currency` | string | Currency code: USD, EUR, or GBP |
| `condition` | string｜null | Item condition: New, Used, Refurbished, Open Box, etc. |
| `buyingFormat` | string｜null | Listing type: Auction or Buy It Now |
| `itemUrl` | string | Direct eBay URL to the listing |
| `imageUrl` | string｜null | Primary listing image URL when available |
| `seller` | string｜null | eBay seller username |
| `sellerRating` | number｜null | Seller positive feedback percentage (0–100) |
| `sellerFeedback` | integer｜null | Total number of seller feedback ratings |
| `shippingCost` | number｜null | Shipping cost (0 = free shipping) |
| `itemLocation` | string｜null | Geographic location where the item ships from |
| `bids` | integer｜null | Number of bids placed (auction listings only) |
| `timeLeft` | string｜null | Time remaining on auction listings |
| `isTopRatedSeller` | boolean｜null | Whether the seller has Top Rated status |
| `scrapedAt` | string | ISO 8601 timestamp of when data was scraped |
| `searchQuery` | string | The original search query that produced this result |

### Example Usage

#### Basic Product Search

```json
{
    "searchQueries": ["iPhone 15 Pro", "MacBook Pro M3"],
    "maxResults": 50
}
````

#### Filtered Search by Condition and Format

```json
{
    "searchQueries": ["Sony PlayStation 5"],
    "maxResults": 50,
    "condition": "New",
    "buyingFormat": "BuyItNow",
    "freeShipping": true,
    "topRatedOnly": true
}
```

#### Quick Auction Test Run

```json
{
    "searchQueries": ["vintage rolex watch"],
    "maxResults": 20,
    "buyingFormat": "Auction"
}
```

### Pricing

This actor uses a **pay-per-result pricing model at $0.01 per listing scraped**.

| Results | Cost |
|---------|------|
| 20 listings | $0.20 |
| 50 listings | $0.50 |
| 100 listings | $1.00 |
| 200 listings | $2.00 |

Fast, reliable, and cost-effective eBay data extraction. No additional infrastructure or API keys required.

### Example Output

```json
{
    "title": "Apple iPhone 15 Pro Max 256GB - Natural Titanium - Unlocked",
    "price": 999.99,
    "currency": "USD",
    "condition": "New",
    "buyingFormat": "Buy It Now",
    "itemUrl": "https://www.ebay.com/itm/123456789012",
    "imageUrl": "https://i.ebayimg.com/images/g/abc123/s-l500.jpg",
    "seller": "techworld2024",
    "sellerRating": 99.7,
    "sellerFeedback": 5423,
    "shippingCost": 0,
    "itemLocation": "Los Angeles, CA, United States",
    "bids": null,
    "timeLeft": null,
    "isTopRatedSeller": true,
    "scrapedAt": "2026-05-04T12:00:00.000Z",
    "searchQuery": "iPhone 15 Pro"
}
```

### Why Use This eBay Scraper?

- **No setup required** — works out of the box with zero configuration
- **No browser or proxy needed** — pure API-based extraction is faster and more reliable
- **Consistent structured data** — every record follows the same schema for easy processing
- **Built for scale** — handle hundreds of queries with automatic rate limiting and retries
- **AI-ready output** — clean JSON format perfect for feeding into LLMs, RAG pipelines, or data warehouses
- **Rich seller data** — track seller reputation, feedback counts, and Top Rated status for trust evaluation
- **Multi-market support** — extract prices in USD, EUR, and GBP from a single actor

# Actor input Schema

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

Enter one or more product keywords or item names to search on eBay (e.g., 'iPhone 15 Pro', 'vintage watch', 'Nike Air Max'). Each query returns up to maxResults listings.

## `maxResults` (type: `integer`):

Maximum number of listings to extract per search query. Default value is 50. Set lower for faster test runs, higher for comprehensive searches (up to 200 per query).

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

Filter results by item condition. Choose 'All' to see everything, or filter to New, Used, or Refurbished items only.

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

Filter by listing type. 'All' shows everything. 'Auction' shows only auction listings. 'Buy It Now' shows fixed-price listings.

## `freeShipping` (type: `boolean`):

When enabled, only includes items with free shipping.

## `topRatedOnly` (type: `boolean`):

When enabled, only includes items from Top Rated sellers on eBay.

## `maxRequestRetries` (type: `integer`):

Maximum number of retry attempts for failed API requests before giving up. Increase if you expect network instability.

## Actor input object example

```json
{
  "searchQueries": [
    "vintage lego set"
  ],
  "maxResults": 50,
  "condition": "all",
  "buyingFormat": "all",
  "freeShipping": false,
  "topRatedOnly": false,
  "maxRequestRetries": 5
}
```

# 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": [
        "vintage lego set"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/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": ["vintage lego set"] }

# Run the Actor and wait for it to finish
run = client.actor("muhammadafzal/ebay-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": [
    "vintage lego set"
  ]
}' |
apify call muhammadafzal/ebay-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "eBay Scraper — Product Listings, Prices & Seller Data",
        "description": "Fast eBay scraper to extract product listings, prices, seller ratings, shipping details, and item conditions. Search by keyword or product category. Structured JSON output for market research, price monitoring, and e-commerce analytics.",
        "version": "1.0",
        "x-build-id": "Qa8i6uJcB759gnq3l"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/muhammadafzal~ebay-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-muhammadafzal-ebay-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/muhammadafzal~ebay-scraper/runs": {
            "post": {
                "operationId": "runs-sync-muhammadafzal-ebay-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/muhammadafzal~ebay-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-muhammadafzal-ebay-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Enter one or more product keywords or item names to search on eBay (e.g., 'iPhone 15 Pro', 'vintage watch', 'Nike Air Max'). Each query returns up to maxResults listings.",
                        "default": [
                            "iPhone 15 Pro"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of listings to extract per search query. Default value is 50. Set lower for faster test runs, higher for comprehensive searches (up to 200 per query).",
                        "default": 50
                    },
                    "condition": {
                        "title": "Item Condition",
                        "enum": [
                            "all",
                            "New",
                            "Used",
                            "Refurbished"
                        ],
                        "type": "string",
                        "description": "Filter results by item condition. Choose 'All' to see everything, or filter to New, Used, or Refurbished items only.",
                        "default": "all"
                    },
                    "buyingFormat": {
                        "title": "Buying Format",
                        "enum": [
                            "all",
                            "Auction",
                            "BuyItNow"
                        ],
                        "type": "string",
                        "description": "Filter by listing type. 'All' shows everything. 'Auction' shows only auction listings. 'Buy It Now' shows fixed-price listings.",
                        "default": "all"
                    },
                    "freeShipping": {
                        "title": "Free Shipping Only",
                        "type": "boolean",
                        "description": "When enabled, only includes items with free shipping.",
                        "default": false
                    },
                    "topRatedOnly": {
                        "title": "Top Rated Sellers Only",
                        "type": "boolean",
                        "description": "When enabled, only includes items from Top Rated sellers on eBay.",
                        "default": false
                    },
                    "maxRequestRetries": {
                        "title": "Max Request Retries",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retry attempts for failed API requests before giving up. Increase if you expect network instability.",
                        "default": 5
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
