# Mercari Sold Comps - Real Sold Prices, Not Asking Prices (`webdata_labs/mercari-sold-comps-scraper`) Actor

\[💵 $2.00 / 1K] Know what items actually sold for on Mercari, not what sellers are asking. Search any keyword or brand and get the median sold price, a suggested max buy price, and every sold comp - so you never overpay sourcing inventory. CSV/JSON.

- **URL**: https://apify.com/webdata\_labs/mercari-sold-comps-scraper.md
- **Developed by:** [WebData Labs](https://apify.com/webdata_labs) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 comp rows

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

## Mercari Sold Comps Scraper - Real Sold Prices, Not Asking Prices

**Know what items actually *sold* for on Mercari before you buy or list.**

This Actor searches Mercari **sold listings** for any keyword or brand, pulls each sold comp (sold price, original price, discount, brand, size, condition, URL), and rolls them into reseller pricing intelligence: **median / average / min / max sold price** and a **suggested max buy price** - exported as CSV or JSON. Sold comps tell you the truth; active asking prices do not.

### ✅ What you get / ❌ what this isn't

| ✅ This Actor gives you | ❌ This Actor is not |
|---|---|
| Confirmed **sold** comps with real sold prices | Not a list of optimistic active asking prices |
| Median / average / min / max sold price per query | Not raw listings you still have to do math on |
| A **suggested max buy price** for your target margin | Not after-fee net proceeds |
| Brand, size, condition, discount, and URL per comp | Not private account or buyer data |

### 🔎 Why use this Actor

- Get **real sold prices**, not optimistic active listings.
- See median, average, min, and max sold price for any query in one summary row.
- Get a **suggested max buy price** so you protect your margin at the source.
- Every comp includes brand, size, condition, and discount off original.
- Export CSV-ready data for sourcing spreadsheets, Whatnot prep, or accounting.
- No login required.

### 👥 Who it's for

Resellers and flippers who need to know resale value before they spend. Common jobs:

- Decide what to pay at a thrift store, estate sale, or wholesale lot.
- Price your own Mercari listings against what comparable items actually sold for.
- Compare resale value across brands and sizes before sourcing.
- Build a sourcing cheat sheet of median resale values by keyword.

### ⚙️ How to check Mercari sold prices

1. Open the Actor on Apify.
2. Enter a `query` (keyword or brand), for example `lululemon align leggings`.
3. Set `maxResults` (50-200 gives stable stats).
4. Set `targetMarginPercent` to get a suggested max buy price.
5. Optionally pass `queries` to run several searches in one go.
6. Click **Start**.
7. Download the dataset as CSV, JSON, or Excel, or pull it from the Apify API.

### 📥 Input

```json
{
  "query": "lululemon align leggings",
  "maxResults": 100,
  "targetMarginPercent": 50
}
```

| Field | Meaning |
|---|---|
| `query` | Keyword or brand to search Mercari sold listings |
| `queries` | Optional list to run several searches in one go |
| `maxResults` | Sold comps per query (50-200 gives stable stats) |
| `targetMarginPercent` | Margin headroom used for `suggestedMaxBuyPrice` |

### 📤 Output

**Pricing summary** (default view) - one row per query:

| query | soldCompsFound | medianSoldPrice | averageSoldPrice | minSoldPrice | maxSoldPrice | suggestedMaxBuyPrice |
|---|---|---|---|---|---|---|
| lululemon align leggings | 40 | 29.38 | 35.36 | 10.00 | 96.00 | 14.69 |

**Sold comps** - individual sold listings with `name`, `soldPrice`, `originalPrice`, `discountPercent`, `brand`, `size`, `condition`, and `url`.

#### Quick preview

| Input | Output |
|---|---|
| `lululemon align leggings`, maxResults `100` | median **$29**, range **$10-$96**, 100 sold comps with size and condition |
| `nike dunk low`, targetMarginPercent `50` | median sold + **suggested max buy price** at 50% margin |

### 💵 How much does it cost?

You pay per result row plus Apify platform usage. A 100-comp query is cheap and fast. Cost scales with `maxResults` and the number of `queries` you batch into one run.

### 🚀 Ready-made setups

Eight saved tasks ship with this Actor - open one, hit Start, or copy it and swap in your own keywords:

| Task | What it does |
|---|---|
| [Check Lululemon sold prices on Mercari](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/lululemon-mercari-sold-comps-price-check) | 100 Align legging sold comps with size, condition and a max buy price. |
| [Research Nike sneaker resale prices](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/nike-sneakers-mercari-resale-price-research) | Real Dunk Low sold prices, not asking prices. |
| [Compare several searches at once](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/compare-multiple-mercari-sold-comps) | One pricing summary row per keyword, medians side by side. |
| [Check Carhartt workwear resale value](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/carhartt-workwear-mercari-resale-value) | Jackets, double-knee pants and beanies in one run. |
| [Find what vintage Levi's denim sells for](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/vintage-levis-denim-mercari-sold-prices) | 501s, 550s and denim jackets with a sourcing max buy price. |
| [Check Pokemon card sold prices](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/pokemon-cards-mercari-sold-prices) | Booster boxes, Charizard cards and card lots. |
| [Price a thrift haul before you buy it](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/thrift-haul-sourcing-price-check) | Five common thrift finds priced in one run. |
| [Price your listing against real sold comps](https://apify.com/webdata_labs/mercari-sold-comps-scraper/examples/mercari-sold-comps-before-you-list) | 200 recent sold comps before you set your price. |

### 🔁 Run it on the Apify platform

Schedule recurring price checks, call it from the Apify API, export to CSV/JSON/Excel, or wire it into Make, Zapier, or webhooks to keep a sourcing sheet current.

### ⚠️ Limits and caveats

- Reads only public Mercari sold-listing data.
- A few queries with very few sales may return a small comp count; the summary is honest about `soldCompsFound`.
- `suggestedMaxBuyPrice` ignores marketplace fees, shipping, and condition. Treat it as a starting point, not advice.

### 🧩 Related Actors

- **Poshmark Sold Comps Scraper** - compare resale values across platforms.
- **Lead List Deduplicator & Normalizer** - clean any lists you build.

### ❓ FAQ

**Does it return real sold prices?** Yes - it reads Mercari's public sold listings, not active asking prices.

**Can I research several brands at once?** Yes - pass a `queries` list to run multiple searches in one run.

**Does it scrape private data?** No. It reads only public sold-listing data and does not log in.

### 🛠️ Support

If a run fails or a field is missing, open an Actor issue with the run URL, the input you used, and the field or behavior you expected.

### ⭐ Rate this Actor

If this Actor saved you time, please take 30 seconds to leave a review on the **Reviews** tab of [Mercari Sold Comps - Real Sold Prices, Not Asking Prices](https://apify.com/webdata_labs/mercari-sold-comps-scraper) - reviews are the main trust signal other users see, and they directly decide which features get built next. If something is broken or a field is missing, please [open an issue](https://apify.com/webdata_labs/mercari-sold-comps-scraper/issues) first - we typically respond within a day and would love the chance to fix it before you rate.

# Actor input Schema

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

Keyword or brand to search Mercari sold listings, e.g. 'lululemon align leggings' or 'nike dunk low'.

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

Run several searches in one go. Each query produces its own pricing summary plus sold comps.

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

How many sold listings to pull per query. 50-200 gives stable pricing stats. Capped for reliability.

## `targetMarginPercent` (type: `integer`):

Share of the median sold price you want to keep as margin. Used only to compute 'suggestedMaxBuyPrice' (a naive rule of thumb that ignores fees and shipping).

## `delayMs` (type: `integer`):

Time to let the search page settle before reading data. Increase only if runs return no comps.

## Actor input object example

```json
{
  "query": "lululemon align leggings",
  "queries": [],
  "maxResults": 100,
  "targetMarginPercent": 50,
  "delayMs": 2500
}
```

# Actor output Schema

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

No description

## `comps` (type: `string`):

No description

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

No description

# 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": "lululemon align leggings",
    "queries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdata_labs/mercari-sold-comps-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 = {
    "query": "lululemon align leggings",
    "queries": [],
}

# Run the Actor and wait for it to finish
run = client.actor("webdata_labs/mercari-sold-comps-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 '{
  "query": "lululemon align leggings",
  "queries": []
}' |
apify call webdata_labs/mercari-sold-comps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/AR0TuD90QdyKz97Xw/builds/CiBNDemXcr4ZY8kU8/openapi.json
