# eBay Sold Price Intelligence — Market Value & Demand Analyzer (`crawloop/ebay-sold-price-intelligence`) Actor

Analyze real eBay sold prices, recommended listing price, demand level, sales activity, and condition-based price insights across 20+ marketplaces. CSV and Markdown report included.

- **URL**: https://apify.com/crawloop/ebay-sold-price-intelligence.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 analyzed sold 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?

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 Sold Price Intelligence — Market Value & Demand Analyzer

> **Disclaimer:** Unofficial tool — not affiliated with, sponsored by, or endorsed by eBay Inc or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

Get **eBay pricing intelligence** from real completed sales — not active asking prices. Enter a product keyword and receive **recommended listing price**, **median sold price**, **demand level**, **sales activity**, **confidence score**, condition breakdown, auction vs Buy It Now comparison, plus **CSV** and **Markdown report** exports.

Built for **eBay resellers**, **collectors**, **estate sale sellers**, **consignment shops**, **arbitrage sellers**, and **pricing analysts** who need **market value** and **sold price comps** across **20+ eBay marketplaces**.

> **Crawloop eBay suite** — livestream shows, live BIN/auction listings, sold comps, and pricing intelligence.

| Live shows | Active listings | Sold listings | Pricing intelligence |
| :--- | :--- | :--- | :--- |
| [eBay Live Shows Scraper](https://apify.com/crawloop/ebay-live-shows-scraper) | [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper) | [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) | **eBay Sold Price Intelligence** ◄── you are here |
| Livestream hosts, tags, viewers, in-show lots | Live BIN/auction asking prices | Completed sales, sold dates | Recommended price, demand, CSV/report |

Also see: [eBay Monitor](https://apify.com/crawloop/ebay-monitor) for newest-listed alerts.

### Who this Actor is for

- **eBay resellers** — set list prices from real sold comps before you publish
- **Collectors** — verify fair market value for cards, watches, sneakers, and vintage goods
- **Estate sale & consignment sellers** — batch-price inventory with one keyword list
- **Arbitrage & sourcing** — compare sold prices before buying inventory to flip
- **Small ecommerce sellers** — competitive pricing backed by completed transactions
- **Market researchers** — demand signals, price bands, and structured exports

### Key features

- **Real eBay sold prices** from completed listings (not live ask prices)
- **Recommended listing price** from median sold price with demand-aware adjustment
- **Median & average sold price** with min/max and **10th–90th percentile range**
- **Demand level** and **sales activity** from completed sales volume
- **Confidence score** based on sample size
- **Condition breakdown** — new, used, refurbished median/average
- **Auction vs Buy It Now** price comparison
- **CSV export** (`sold_items.csv`) and **Markdown report** (`REPORT.md`)
- **Batch keyword support** — multiple products in one run
- **20+ eBay marketplaces** — US, UK, DE, FR, IT, ES, CA, AU, PL, NL, SG, MY, PH, HK

### What makes it different

| | Sold Price Intelligence | Raw sold scrapers |
| :--- | :--- | :--- |
| Output | Summary + analytics + report | Raw rows only |
| Recommended price | Yes | No |
| Demand & activity | Yes | No |
| Confidence scoring | Yes | No |
| Marketplaces | **20+ sites** | Varies |

For raw sold rows only, use [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper). For live competition data, use [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper). For livestream rooms and in-show lots, use [eBay Live Shows Scraper](https://apify.com/crawloop/ebay-live-shows-scraper).

### Input examples

#### Single query

```json
{
  "query": "iPhone 13 Pro 128GB",
  "ebaySite": "ebay.de",
  "soldWithinDays": 90,
  "maxItems": 100
}
```

#### Batch queries

```json
{
  "queries": ["iPhone 13 Pro 128GB", "PlayStation 5", "Siemens 6ES7214"],
  "ebaySite": "ebay.de",
  "maxItemsPerQuery": 100
}
```

#### Full options

```json
{
  "query": "iPhone 13 Pro 128GB",
  "ebaySite": "ebay.de",
  "soldWithinDays": 90,
  "maxItems": 100,
  "condition": ["new", "used"],
  "listingType": ["auction", "buy_it_now"],
  "priceMin": 100,
  "priceMax": 800,
  "categoryId": "9355",
  "sortBy": "date_desc",
  "includeItems": true,
  "includeAnalytics": true,
  "outputFormat": "full"
}
```

Provide either `query` (single) or `queries` (batch) — not both.

### Output examples

#### Summary record

```json
{
  "type": "summary",
  "query": "iPhone 13 Pro 128GB",
  "marketplace": "ebay.de",
  "currency": "EUR",
  "summary": {
    "recommendedPrice": { "amount": 499, "display": "€499.00", "currency": "EUR" },
    "priceRange": {
      "low": { "amount": 425, "display": "€425.00", "currency": "EUR" },
      "high": { "amount": 575, "display": "€575.00", "currency": "EUR" }
    },
    "medianSoldPrice": { "amount": 495, "display": "€495.00", "currency": "EUR" },
    "salesActivity": "high",
    "demandLevel": "high",
    "confidence": "medium",
    "quickTake": "iPhone 13 Pro 128GB sells actively on ebay.de..."
  }
}
```

#### Key-value store files

| File | Contents |
| :--- | :--- |
| `OUTPUT.json` | Summaries + items in one JSON document |
| `REPORT.md` | Human-readable pricing report |
| `sold_items.csv` | Spreadsheet export |

### Understanding analytics

#### Recommended price

Median cleaned sold price (item + shipping when available), adjusted slightly for high or low demand. Transparent statistics — no machine learning.

#### Demand level

- **High** — 5+ completed sales per day in your window
- **Medium** — 1–5 sales/day
- **Low** — fewer than 1 sale/day

#### Sales activity

Finer market volume score (`very_high` → `very_low`). We do **not** show days-to-sell — that data is not reliably available from search results.

#### Confidence

- **High** — 100+ sold items
- **Medium** — 30–99
- **Low** — 10–29
- **Very low** — under 10 (directional only)

### Supported eBay marketplaces

**20+ regional sites:** `ebay.com` · `ebay.co.uk` · `ebay.de` · `ebay.fr` · `ebay.it` · `ebay.es` · `ebay.ca` · `ebay.com.au` · `ebay.at` · `ebay.ch` · `ebay.ie` · `ebay.pl` · `ebay.nl` · `ebay.be` · `ebay.com.sg` · `ebay.com.my` · `ebay.ph` · `ebay.com.hk`

### Use cases

| Use case | What you get |
| :--- | :--- |
| **Reseller list pricing** | Recommended price from real sold comps |
| **Arbitrage / sourcing** | Median, percentiles, and demand before you buy |
| **Estate & consignment** | Batch keyword pricing with CSV + Markdown report |
| **Collector valuation** | Fair market value bands by condition |
| **Market research** | Demand level, sales activity, confidence score |
| **AI / MCP workflows** | Run via Apify API, clients, or MCP and summarize pricing |

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/ebay-sold-price-intelligence').call({
  query: 'iPhone 13 Pro 128GB',
  ebaySite: 'ebay.com',
  soldWithinDays: 90,
  maxItems: 100,
  includeAnalytics: true,
  outputFormat: 'full',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((row) => row.type === 'summary'));
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token)
run = client.actor("crawloop/ebay-sold-price-intelligence").call(
    run_input={
        "queries": ["iPhone 13 Pro 128GB", "PlayStation 5"],
        "ebaySite": "ebay.de",
        "maxItemsPerQuery": 100,
        "includeAnalytics": True,
        "outputFormat": "full",
    }
)
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print([row for row in items if row.get("type") == "summary"])
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/crawloop~ebay-sold-price-intelligence/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "iPhone 13 Pro 128GB",
    "ebaySite": "ebay.com",
    "soldWithinDays": 90,
    "maxItems": 100,
    "includeAnalytics": true,
    "outputFormat": "full"
  }'
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp). Connect your Apify account, then call `crawloop/ebay-sold-price-intelligence`.

Example prompts:

- "Run eBay Sold Price Intelligence for iPhone 13 Pro 128GB on ebay.com and return recommendedPrice, medianSoldPrice, and demandLevel"
- "Analyze sold prices for PlayStation 5 on ebay.de over 90 days and summarize the price range and confidence"
- "Chain eBay Sold Listings Scraper then eBay Sold Price Intelligence for rtx 4080 and explain the recommended list price"
- "After eBay Live Shows Scraper finds a break host, run eBay Sold Price Intelligence on the same category keyword"

### Suite next step

Need raw sold rows for your own models? Use [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper). Want live ask prices and watchers before you list? Use [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper). Tracking **livestream rooms**? Use [eBay Live Shows Scraper](https://apify.com/crawloop/ebay-live-shows-scraper).

### Limitations

- Data from **eBay completed/sold search results**, not the official eBay API
- Results depend on search quality and available sales volume
- No days-to-sell or market velocity metrics
- No multi-currency conversion — prices use each marketplace's local currency
- Residential proxies recommended when eBay shows bot challenges
- Best Offer accepted amount is private on eBay — public sold search usually shows the **asking** price, not the accepted offer

### FAQ

**How is this different from the Sold Listings Scraper?**
This Actor adds pricing intelligence — recommended price, demand, confidence, and reports. [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) exports raw sold rows for custom pipelines.

**How is this different from the Active Listings Scraper?**
[eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper) returns live listings with current ask prices and competition signals. This Actor analyzes **completed sales** only.

**How is this different from eBay Live Shows Scraper?**
[eBay Live Shows Scraper](https://apify.com/crawloop/ebay-live-shows-scraper) scrapes livestream rooms and in-show lots. This Actor prices **search sold comps**, not Live hub shows.

**Does it use AI?**
No. Rule-based statistics and transparent percentiles only.

**Batch mode?**
Yes — use `queries` for multiple keywords; you get one summary per query plus `batch_summary`.

**Output formats?**
`full` (default), `summary_only`, or `items_only`.

**Why did a still-active listing show up as sold?**
Search cards without a parseable sold/ended date are skipped. If one still slips through, the item page is not a completed sale — file an issue with the item URL.

**Does it return the accepted Best Offer amount?**
No. eBay does not publish the accepted offer to other users. Rows with `listingType: best_offer` still include the public card price (`soldPrice`), which is often the original asking price. `listingType` marks those sales so you can exclude or weight them.

### Related Actors

| Actor | Use for |
| :--- | :--- |
| [eBay Live Shows Scraper](https://apify.com/crawloop/ebay-live-shows-scraper) | Livestream shows, hosts, in-show lots |
| [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper) | Live ask prices, watchers, competition |
| [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) | Raw completed sales / sold comps |
| **eBay Sold Price Intelligence** ◄── you are here | Recommended price, demand, CSV/report |
| [Poshmark Sold Listings Scraper](https://apify.com/crawloop/poshmark-sold-listings-scraper) | Poshmark sold comps |
| [Mercari Japan Scraper](https://apify.com/crawloop/mercari-japan-scraper) | Japan on-sale and sold prices |
| [Depop Monitor](https://apify.com/crawloop/depop-monitor) | New Depop listings |
| [Allegro Scraper](https://apify.com/crawloop/allegro-scraper) | Poland, Czechia, and Slovakia search prices |

# Actor input Schema

## `query` (type: `string`):

Single product search term, e.g. iPhone 13 Pro 128GB. Use either query or queries, not both.

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

Multiple search terms for batch pricing analysis. Provide either query or queries — not both (Store auto-tests use query only).

## `ebaySite` (type: `string`):

Regional eBay domain — supports 20+ marketplaces including ebay.com, ebay.co.uk, ebay.de, ebay.fr, and more.

## `soldWithinDays` (type: `integer`):

Analyze completed sales from the last N days (1–90).

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

Maximum sold listings to analyze for a single query.

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

Maximum sold listings to analyze per query in batch mode.

## `condition` (type: `array`):

Filter by item condition: new, used, refurbished. Leave empty for all conditions.

## `listingType` (type: `array`):

Filter by listing format: auction, buy_it_now, best_offer. Leave empty for all types.

## `priceMin` (type: `number`):

Minimum sold price filter in marketplace currency.

## `priceMax` (type: `number`):

Maximum sold price filter in marketplace currency.

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

eBay category filter (use 0 for all categories).

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

How to sort sold search results.

## `includeItems` (type: `boolean`):

Push individual sold listing records to the dataset and CSV export.

## `includeAnalytics` (type: `boolean`):

Include detailed analytics (percentiles, condition breakdown, listing type comparison) in summary records.

## `outputFormat` (type: `string`):

full = summaries + items + all KV files; summary_only = summaries + report; items_only = items + CSV.

## `excludeSellers` (type: `array`):

Seller usernames to exclude from analysis.

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

Apify Residential Proxies recommended for reliable eBay access.

## Actor input object example

```json
{
  "query": "iPhone 13 Pro 128GB",
  "ebaySite": "ebay.com",
  "soldWithinDays": 30,
  "maxItems": 5,
  "maxItemsPerQuery": 5,
  "categoryId": "0",
  "sortBy": "date_desc",
  "includeItems": true,
  "includeAnalytics": true,
  "outputFormat": "full",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

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

Default dataset items (summaries and sold listings).

# 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 = {
    "query": "iPhone 13 Pro 128GB",
    "soldWithinDays": 30,
    "maxItems": 5,
    "maxItemsPerQuery": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/ebay-sold-price-intelligence").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 = {
    "query": "iPhone 13 Pro 128GB",
    "soldWithinDays": 30,
    "maxItems": 5,
    "maxItemsPerQuery": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/ebay-sold-price-intelligence").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 '{
  "query": "iPhone 13 Pro 128GB",
  "soldWithinDays": 30,
  "maxItems": 5,
  "maxItemsPerQuery": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call crawloop/ebay-sold-price-intelligence --silent --output-dataset

```

## MCP server setup

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

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/akTK3C6CF4dCNQnCj/builds/5MkLZ95P7UiW1eTNc/openapi.json
