# eBay Listings Scraper (`clearrun/ebay-listings`) Actor

Live eBay search results with price, condition, shipping, bids, watchers, units sold and seller rating. Works on eBay US, UK, DE, FR, IT, ES, CA and AU. Built for price research, market monitoring and resale valuation.

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

## Pricing

$1.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.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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 Listings Scraper

Search eBay and get every listing as structured JSON: price, condition, shipping, bids, watchers, units sold, seller
rating and location. Works on eBay US, UK, Germany, France, Italy, Spain, Canada and Australia, with eBay's own
filters (condition, buying format, price range) and sort orders.

Since August 2026 eBay only shows sold and completed listings to signed-in users, so no scraper can deliver them
honestly. This Actor gives you the live market instead: asking prices across conditions, how many units a listing has
already sold, how many people are watching it and how many bids an auction has. Together those are the strongest
public signals of what an item is really worth.

### What you get

```json
{
  "query": "iphone 13 128gb",
  "site": "ebay.com",
  "itemId": "123456789012",
  "title": "Apple iPhone 13 128GB Blue Unlocked",
  "price": 289.99,
  "currency": "USD",
  "originalPrice": null,
  "condition": "Pre-Owned",
  "listingType": "buyItNow",
  "acceptsOffers": true,
  "bids": null,
  "watchers": 57,
  "quantitySold": 1234,
  "shipping": "Free shipping",
  "shippingCost": 0,
  "location": "United States",
  "seller": "techdeals",
  "sellerFeedbackCount": 12345,
  "sellerPositivePercent": 99.6,
  "sponsored": false,
  "url": "https://www.ebay.com/itm/123456789012"
}
```

A `STATS` record in the run's key-value store holds min, median, mean and max price per search term. `currency` is the currency eBay served the page in (the marketplace's own currency whenever a local proxy exit is available).

### Input

| Field | Default | Notes |
|---|---|---|
| `queries` | — | One search per line |
| `site` | `com` | `com`, `co.uk`, `de`, `fr`, `it`, `es`, `ca`, `com.au` |
| `maxResultsPerQuery` | `100` | Up to 5,000 |
| `sortBy` | `bestMatch` | `priceLowest`, `priceHighest`, `newlyListed`, `endingSoonest` |
| `condition` | `any` | `new`, `used`, `refurbished` |
| `buyingFormat` | `all` | `auction`, `bin`, `bestOffer` |
| `minPrice` / `maxPrice` | — | In the site's currency |
| `proxyConfiguration` | Apify residential | eBay blocks data-centre IPs; keep residential on |

### Pricing

Pay per listing delivered. Duplicates within a run are never charged; a search that returns nothing costs nothing.

#### Speed & cost

About 30–60 seconds for 100 results; a 100-result run costs roughly $0.15 in events plus about $0.05–0.20 of
platform usage.

### Typical uses

- Price research and resale valuation across conditions
- Monitoring competitors' listings, stock and watcher counts
- Finding under-priced items by sorting on price + shipping
- Feeding market data to AI agents and spreadsheets

### Use from an AI agent

Available through the Apify MCP server: "Find the cheapest used iPhone 13 128GB on eBay UK with free postage."

### Support

Open an issue on the Issues tab with the search term, site and run ID. Issues are answered within one working day.

# Actor input Schema

## `queries` (type: `array`):

One search per line, exactly as you would type it into eBay.

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

Which eBay marketplace to search.

## `maxResultsPerQuery` (type: `integer`):

Stop after this many listings for each search term.

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

Order of results, as on eBay.

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

Filter by item condition.

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

Auctions, Buy It Now, listings accepting offers, or all.

## `minPrice` (type: `integer`):

Lowest price to include (site currency).

## `maxPrice` (type: `integer`):

Highest price to include (site currency).

## `proxyConfiguration` (type: `object`):

eBay blocks data-centre traffic, so residential proxies are used by default.

## Actor input object example

```json
{
  "queries": [
    "iphone 13 128gb"
  ],
  "site": "com",
  "maxResultsPerQuery": 100,
  "sortBy": "bestMatch",
  "condition": "any",
  "buyingFormat": "all",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

One record per eBay listing

## `stats` (type: `string`):

Min, median, mean and max price per search term

# 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 = {
    "queries": [
        "iphone 13 128gb"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearrun/ebay-listings").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 = {
    "queries": ["iphone 13 128gb"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("clearrun/ebay-listings").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 '{
  "queries": [
    "iphone 13 128gb"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call clearrun/ebay-listings --silent --output-dataset

```

## MCP server setup

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

```

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/ACiyJKpMl25DkaS3e/builds/mYgySA8kiBCNW8ofq/openapi.json
