# eBay UK Scraper: Live Listings & Price Comps (GBP) (`seaf999ield/ebay-uk-listings-prices`) Actor

eBay UK scraper: live ebay.co.uk listings by keyword with £ price, postage, condition, auction or Buy It Now, plus median and p25/p75 price comps, by RawTrader | UK Industry & Bills: https://ukindustryandbills.substack.com · X: x.com/ImRawTrader

- **URL**: https://apify.com/seaf999ield/ebay-uk-listings-prices.md
- **Developed by:** [RustonRoad](https://apify.com/seaf999ield) (community)
- **Categories:** E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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?

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 UK Scraper: Live Listings & Price Comps (GBP)

**Scrape live ebay.co.uk listings for any keyword and get instant £ price comps (median, p25/p75, min/max).**

### Who it's for

- Resellers and flippers checking what an item is listed for before buying
- Shops pricing stock against live eBay UK competition
- Researchers tracking asking prices for a product category

### Sample output

| keyword | title | priceGBP | postageGBP | listingType |
|---|---|---|---|---|
| iphone 13 | Apple iPhone 13 Pro 128GB 5G Brand New Condition 100% Bat... | 339.99 | 0 | BUY_IT_NOW |
| iphone 13 | Apple iPhone 13 Mini 128GB 5G Unlocked Brand New Conditio... | 228.99 | – | BUY_IT_NOW |
| iphone 13 | Apple iPhone 13 - All Sizes - All Colours - Unlocked - Go... | 226.59 | 0 | BUY_IT_NOW |

*Real rows from a test run (shortened; the full output has more fields).*

### Price per 1,000 results

Main event: **`listing-row` at $0.002 each**, so **1,000 results = $2.00**. Other events: `price-summary` $0.01 each (only charged when that row type is output). See the Pricing tab for the current prices.

### Input example

```json
{
  "keywords": [
    "pokemon 151 booster box",
    "north face nuptse jacket"
  ]
}
```

**See what anything is listed for on ebay.co.uk right now, with instant price comps.** For each keyword you get every live listing with the **price in £, postage, total, condition, Buy It Now or auction, bids, time left and item location**. You also get a **price-summary row**: count, **median, p25/p75**, mean, min/max, median including postage, Buy It Now vs auction medians, and a condition breakdown. It is built for UK resellers, eBay and Vinted flippers, trading-card and LEGO sellers, and anyone pricing second-hand stock.

| Output | What you get |
|---|---|
| 🛒 **Listing rows** | Title, price £, postage £, total £, condition, format (Buy It Now / auction), Best Offer, bids, time left, approximate end time, sold-so-far count, location, image and link |
| 📊 **Price summary** | Per keyword: count, median, p25/p75, mean, min/max, median total with postage, Buy It Now median, auction median, free-postage share, condition mix |

### Who uses it

- **Resellers and flippers:** price stock against what is listed today, and spot underpriced Buy It Now listings.
- **Card, LEGO, sneaker and tech sellers:** fast comps for one SKU or many.
- **Auction snipers:** auctions ending soon, with bids and time left.
- **Retailers and brands:** watch grey-market and second-hand prices for your products in the UK.

### Input

| Field | Example | Notes |
|---|---|---|
| Keywords | `["lego 75192","iphone 13 128gb"]` | One search per line |
| Max results | `60` | Per keyword |
| Condition | `used` | any, new, open_box, refurbished, used, for_parts |
| Listing type | `auction` | all, buy_it_now, auction |
| Sort | `ending_soonest` | best_match, ending_soonest, newly_listed, price_low, price_high |
| Category ID | `19006` | eBay UK category number |
| Min / max price | `50` / `500` | GBP |
| UK items only | `true` | eBay's "UK only" location filter |

**Example: comps for three products**

```json
{ "keywords": ["motorcycle jacket", "iphone 13", "lego 75192"], "maxResults": 50, "summary": true }
```

### Output (listing)

```json
{
  "type": "listing", "keyword": "lego 75192",
  "title": "LEGO Star Wars 75192 Millennium Falcon UCS",
  "priceGBP": 306.0, "postageGBP": 7.0, "totalPriceGBP": 313.0,
  "condition": "Brand new", "listingType": "AUCTION", "bids": 33, "timeLeft": "5h 19m",
  "itemLocation": "United Kingdom", "url": "https://www.ebay.co.uk/itm/137852095733"
}
```

### Pricing (pay per event)

| Event | Price |
|---|---|
| `listing-row`: each listing output | $0.002 |
| `price-summary`: each keyword summary row | $0.01 |

### Notes

- **These are live (asking) prices, not sold prices.** Since mid-2026 eBay only shows sold/completed results to signed-in users. This actor uses public pages only and never logs in.
- Seller usernames are not collected. Seller feedback is filled in only when eBay shows it on the results page, which is often not the case.
- If eBay shows no "from <country>", the item is a domestic UK listing, so `itemLocation` is set to United Kingdom and flagged `itemLocationInferred`.
- It uses a headless browser on UK residential proxies, because eBay blocks plain HTTP and datacenter IPs. Requests are kept slow and few.
- You are responsible for how you use the data and for complying with eBay's User Agreement. Not affiliated with eBay.

### FAQ

**Can I run it on a schedule?** Yes. Use an Apify Schedule (for example daily).

**Can I use it via API or connect it to other tools?** Yes. Run it with the Apify API or clients, and send results to Google Sheets, Zapier, Make, webhooks or Slack using Apify integrations. Export JSON, CSV or Excel.

**What am I charged for?** Only the pay-per-event prices above, for rows actually output. Set a maximum cost per run in the run options to cap spend.

### Related UK data actors

- [Amazon UK Bestsellers Scraper: Movers & New Releases](https://apify.com/seaf999ield/amazon-uk-bestsellers)
- [UK BNPL Checker: Klarna, Clearpay & PayPal Pay in 3 Detector](https://apify.com/seaf999ield/uk-bnpl-merchant-detector)
- [UK Product Recalls Scraper: OPSS, FSA & MHRA Safety Alerts](https://apify.com/seaf999ield/uk-product-safety-recalls)

### About RawTrader | UK Industry & Bills

RawTrader | UK Industry & Bills is a UK newsletter and open data project tracking energy bills, fuel prices, public tenders, company closures and FCA short positions, using official data from Ofgem, DESNZ, ONS, Companies House, Find a Tender and the FCA.

- [RawTrader Data: every UK data tool in one place](https://imrawtrader.beehiiv.com/p/data)
- [UK Industry & Bills newsletter](https://imrawtrader.beehiiv.com)
- [Follow @ImRawTrader on X](https://x.com/ImRawTrader)

# Actor input Schema

## `keywords` (type: `array`):

One eBay UK search per line, as you would type it into ebay.co.uk, e.g. 'lego 75192' or 'iphone 13 128gb'.

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

Max listings per keyword (60 per page up to 60, then 120 or 240 per page).

## `summary` (type: `boolean`):

Adds one 'summary' row per keyword: count, median, mean, p25/p75, min/max, median incl. postage, Buy It Now vs auction medians, condition breakdown.

## `summaryOnly` (type: `boolean`):

With summary on, output only the summary rows (listings are still read to compute them but not saved or charged).

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

Numeric eBay UK category ID to narrow results, e.g. 183454 (CCG Individual Cards), 139971 (Video Game Consoles), 11450 (Clothes, Shoes & Accessories). Leave empty for all categories.

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

Filter by item condition.

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

eBay format filter.

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

eBay sort order.

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

Only listings at or above this price in GBP.

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

Only listings at or below this price in GBP.

## `ukSellersOnly` (type: `boolean`):

Only items located in the UK (eBay 'UK only' filter). Keeps prices in GBP and comps relevant for UK resellers.

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

UK residential Apify Proxy is recommended; eBay blocks datacenter IPs.

## `engine` (type: `string`):

eBay blocks plain HTTP (403), so a headless browser is the default. Auto tries HTTP first.

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

Parallel page requests. Kept low on purpose to be polite to eBay.

## `maxRetries` (type: `integer`):

Retries with a fresh session/proxy IP on blocks or errors.

## `debugSaveHtml` (type: `boolean`):

Saves the first results page per keyword to the key-value store (for troubleshooting).

## Actor input object example

```json
{
  "keywords": [
    "pokemon 151 booster box",
    "north face nuptse jacket"
  ],
  "maxResults": 60,
  "summary": true,
  "summaryOnly": false,
  "condition": "any",
  "listingType": "all",
  "sort": "best_match",
  "ukSellersOnly": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  },
  "engine": "browser",
  "maxConcurrency": 3,
  "maxRetries": 5,
  "debugSaveHtml": false
}
```

# Actor output Schema

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

Live listings.

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

Per-keyword summary rows.

## `runSummary` (type: `string`):

Pages, blocks, counts.

# 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 = {
    "keywords": [
        "pokemon 151 booster box",
        "north face nuptse jacket"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("seaf999ield/ebay-uk-listings-prices").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 = {
    "keywords": [
        "pokemon 151 booster box",
        "north face nuptse jacket",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("seaf999ield/ebay-uk-listings-prices").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 '{
  "keywords": [
    "pokemon 151 booster box",
    "north face nuptse jacket"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call seaf999ield/ebay-uk-listings-prices --silent --output-dataset

```

## MCP server setup

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

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/g61ox9vekUNSXM94z/builds/cLtwfwpcEzyMaebEp/openapi.json
