# Mercari Sold Comps Scraper: Sold Prices & Days to Sell (`getascraper/mercari-sold-comps-scraper`) Actor

Scrape Mercari Japan sold listings to get real sold prices, days-to-sell, and sell-through rate by keyword. Perfect for resellers and Japan arbitrage research. No subscriptions.

- **URL**: https://apify.com/getascraper/mercari-sold-comps-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.62 / 1,000 sold 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 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

## Mercari Sold Comps Scraper: Sold Prices, Sell-Through & Days to Sell

<table width="100%">
<tr>
<td colspan="4" style="padding:14px 18px;background:#FDECEA;border-top:3px solid #FF2019;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-radius:8px 8px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">Know what items really sell for on Mercari Japan and Mercari US, and how fast.</span> <span style="font-size:15px;color:#57534E">Enter keywords and get every recent Mercari sold comp: the actual sold price, condition, seller, and approximate days to sell. Each run also returns a per-keyword summary with median price and sell-through rate, so you can price and source with real market data.</span>
</td>
</tr>
<tr>
<td colspan="4" style="padding:10px 14px;background:#C41A0F;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">Mercari (メルカリ) suite</span>
<span style="color:#FADBD8;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Listings, sold comps, and sellers across Mercari Japan and US</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FDECEA;border-radius:0 0 0 8px">
<span style="white-space:nowrap"><img src="https://images.apifyusercontent.com/ObXkeVa5KUb-Wc5lL9kGTvTDSxQ0ckP4sADzYCnmG_U/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vak5EYkZhYmJWeE1oblFOYjQtYWN0b3ItZ212QlpnZ3ltd24zc3ZVdEgtb3VJSjVoRk1GbC1pY29uLndlYnA.webp" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/mercari-sold-comps-scraper" style="color:#C41A0F;text-decoration:none;font-weight:700;font-size:13px">Sold&nbsp;Comps</a></span><br>
<span style="color:#C41A0F;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF">
<span style="white-space:nowrap"><img src="https://images.apifyusercontent.com/ObXkeVa5KUb-Wc5lL9kGTvTDSxQ0ckP4sADzYCnmG_U/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vak5EYkZhYmJWeE1oblFOYjQtYWN0b3ItZ212QlpnZ3ltd24zc3ZVdEgtb3VJSjVoRk1GbC1pY29uLndlYnA.webp" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/mercari-japan-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Japan&nbsp;Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">Listings, price and condition</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF">
<span style="white-space:nowrap"><img src="https://images.apifyusercontent.com/ObXkeVa5KUb-Wc5lL9kGTvTDSxQ0ckP4sADzYCnmG_U/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vak5EYkZhYmJWeE1oblFOYjQtYWN0b3ItZ212QlpnZ3ltd24zc3ZVdEgtb3VJSjVoRk1GbC1pY29uLndlYnA.webp" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/mercari-us-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">US&nbsp;Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">Sold prices and sellers</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF;border-radius:0 0 8px 0">
<span style="white-space:nowrap"><img src="https://images.apifyusercontent.com/ObXkeVa5KUb-Wc5lL9kGTvTDSxQ0ckP4sADzYCnmG_U/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vak5EYkZhYmJWeE1oblFOYjQtYWN0b3ItZ212QlpnZ3ltd24zc3ZVdEgtb3VJSjVoRk1GbC1pY29uLndlYnA.webp" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/mercari-seller-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Seller&nbsp;Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">Shop listings and ratings</span>
</td>
</tr>
</table>

### What does Mercari Sold Comps Scraper do?

This Actor searches [jp.mercari.com](https://jp.mercari.com) (Japan) or [mercari.com](https://www.mercari.com) (US) for sold listings matching your keywords and returns the data resellers need: final sold price, listing condition, seller ID, category, and approximate days to sell. Each keyword is scraped independently. Select the region in the input.

Optionally, it also scans active (unsold) listings to compute a sell-through rate: the share of comparable inventory that has already sold. That single number tells you how fast a category moves before you commit sourcing budget.

Every run produces two kinds of rows: one row per individual sold listing (for building your own price comps), and one summary row per keyword (median price, average days to sell, sell-through rate). Results download as JSON, CSV, Excel, or HTML, or stream straight into Google Sheets, BigQuery, or any tool via the Apify API.

<table width="100%"><tr>
<td style="padding:12px 18px;background:#FDECEA;border-left:4px solid #FF2019">
<span style="font-size:15px;color:#1C1917">⚡ <b>Built for reseller research.</b> No account or login required. One run returns every recent sold comp for your keyword plus a summary with median price, sell-through rate, and average days to sell. Schedule it to watch how a category's prices move over time.</span>
</td>
</tr></table>

### Why use Mercari Sold Comps Scraper?

Resellers sourcing items for Japan-to-US arbitrage, vintage buyers, and pricing analysts all need to know what things actually sold for, not what sellers are asking.

- **Japan arbitrage research**: "I can source this Nintendo Switch bundle for 18,000 JPY. What do sold comps say the market will bear, and how quickly do similar bundles sell?" Run this Actor, get the answer in minutes.
- **Sell-through rate as a buying signal**: A sell-through rate above 0.8 means demand is strong. Below 0.3 means the category is flooded. Filter your sourcing accordingly.
- **Days-to-sell as a liquidity gauge**: An average of 3 days to sell is liquid. An average of 45 days means capital is tied up. Price accordingly or avoid.
- **Batch keyword research**: Drop 10 to 20 keywords in one run and get a summary row for each. Rank categories by price stability and velocity before committing budget.
- **Scheduled price monitoring**: Run on a schedule to track how sold prices drift over time for specific product lines.

### How to use Mercari Sold Comps Scraper

1. Open the Actor and click Try for free.
2. In the Input tab, enter one or more keywords (for example `apple watch series 9`, `nintendo switch oled`).
3. Optionally set a price range in JPY and adjust the maximum sold listings per keyword.
4. Leave Compute sell-through rate enabled to get the sell-through column in your summary.
5. Click Start. Results appear in the Output tab as the run progresses.
6. Download the dataset in your preferred format, or connect through the API.

### Input

At least one of `keywords` or `startUrls` is required.

| Field | Type | Required | Description |
|---|---|---|---|
| `keywords` | array of strings | Yes* | Search terms to look up sold listings for. Each keyword is scraped independently and gets its own summary row. |
| `startUrls` | array of URLs | Yes* | Mercari Japan search URLs to scrape directly. Use to bypass keyword construction. |
| `priceMin` | integer | No | Minimum sold price in JPY. Filters out cheaper listings. |
| `priceMax` | integer | No | Maximum sold price in JPY. Caps results to your target range. |
| `maxSoldPerKeyword` | integer | No | Maximum sold listings to collect per keyword. Default is 200. |
| `computeSellThrough` | boolean | No | Also scan active listings to compute the sell-through rate. Default is true. |
| `region` | enum | No | Marketplace region. `JAPAN` scrapes jp.mercari.com; `US` scrapes mercari.com. Default is `JAPAN`. US runs require a US residential proxy (enforced automatically when Apify Proxy is enabled). |
| `proxyConfiguration` | object | No | Proxy settings. Apify Proxy is recommended. Datacenter is sufficient for Japan. US region needs Apify Proxy US residential, which the Actor forces automatically unless you supply custom proxy URLs. |

`*` Provide at least one of `keywords` or `startUrls`.

### Output

Each run produces two record types in the same dataset. Download as JSON, HTML, CSV, or Excel.

**Sold listing row** (`recordType: "sold"`):

```json
{
  "recordType": "sold",
  "keyword": "apple watch series 9",
  "listingId": "m66939329940",
  "title": "Apple Watch Series 9 45mm GPS ミッドナイト",
  "soldPriceJpy": 38000,
  "currency": "JPY",
  "conditionId": "2",
  "sellerId": "629110147",
  "categoryId": "3676",
  "url": "https://jp.mercari.com/item/m66939329940",
  "thumbnailUrl": "https://static.mercdn.net/thumb/item/webp/m66939329940_1.jpg",
  "listedAt": "2026-06-01T08:22:11Z",
  "soldAt": "2026-06-04T13:45:00Z",
  "daysToSell": 3,
  "scrapedAt": "2026-07-01T10:00:00.000Z"
}
````

**Summary row** (`recordType: "summary"`):

```json
{
  "recordType": "summary",
  "keyword": "apple watch series 9",
  "soldCount": 187,
  "activeCount": 43,
  "sellThroughRate": 0.813,
  "avgSoldPriceJpy": 37200,
  "medianSoldPriceJpy": 36500,
  "minSoldPriceJpy": 28000,
  "maxSoldPriceJpy": 52000,
  "avgDaysToSell": 4,
  "sampleSize": 187,
  "scrapedAt": "2026-07-01T10:00:00.000Z"
}
```

### Data table

| Field | Type | Description |
|---|---|---|
| `recordType` | string | `"sold"` for listing rows, `"summary"` for keyword analytics rows. |
| `keyword` | string | The search keyword that produced this row. |
| `listingId` | string | Mercari item ID (sold rows), e.g. `m66939329940`. |
| `title` | string | Listing title in the original language (sold rows). |
| `price` | number | Sold price in the row's currency: USD for US region, JPY for Japan region (sold rows). |
| `soldPriceJpy` | number | Final sold price in Japanese Yen (sold rows, Japan region only). Omitted for US rows. |
| `currency` | string | `JPY` for Japan region, `USD` for US region. |
| `conditionId` | string | Mercari condition code: 1 = new, 2 = like new, 3 = good, 4 = fair, 5 = poor, 6 = bad. |
| `sellerId` | string | Seller account identifier (sold rows). |
| `categoryId` | string | Mercari category identifier (sold rows). |
| `url` | string | Full listing URL on jp.mercari.com (sold rows). |
| `thumbnailUrl` | string | Primary thumbnail image URL (sold rows). |
| `listedAt` | string | ISO timestamp when the item was listed (sold rows). |
| `soldAt` | string | Approximate ISO sold timestamp (sold rows, see FAQ). |
| `daysToSell` | number | Approximate days from listing to sale. Null if timestamps are unavailable. |
| `soldCount` | number | Summary rows: total sold listings collected for this keyword. |
| `activeCount` | number | Summary rows: active listings counted. Null if sell-through was disabled. |
| `sellThroughRate` | number | Summary rows: soldCount / (soldCount + activeCount), to 3 decimals. Null if disabled. |
| `avgSoldPrice` | number | Summary rows: mean sold price in the run's currency (JPY or USD). |
| `medianSoldPrice` | number | Summary rows: median sold price in the run's currency. |
| `minSoldPrice` | number | Summary rows: lowest sold price in the run's currency. |
| `maxSoldPrice` | number | Summary rows: highest sold price in the run's currency. |
| `avgSoldPriceJpy` | number | Summary rows: mean sold price in JPY. Japan region only; omitted for US rows. |
| `medianSoldPriceJpy` | number | Summary rows: median sold price in JPY. Japan region only; omitted for US rows. |
| `minSoldPriceJpy` | number | Summary rows: lowest sold price in JPY. Japan region only; omitted for US rows. |
| `maxSoldPriceJpy` | number | Summary rows: highest sold price in JPY. Japan region only; omitted for US rows. |
| `avgDaysToSell` | number | Summary rows: mean days-to-sell across listings with valid timestamps. |
| `sampleSize` | number | Summary rows: number of sold listings used to compute the summary. |
| `scrapedAt` | string | ISO timestamp when the row was collected. |

### How much does it cost to scrape Mercari sold comps?

Pricing is pay per result. You are charged only for the rows the Actor returns, so an empty run costs nothing. There are no monthly subscriptions and no minimum spend. Enabling the sell-through rate adds one extra page scan per keyword to count active listings.

### Tips

- **Start small**: set `maxSoldPerKeyword` to 30 to 50 for a quick validation run before committing to 200 or more per keyword.
- **Use a Japan proxy**: enable Apify Proxy for production runs. Mercari Japan may limit access from some IP addresses.
- **Filter by price band**: use `priceMin` and `priceMax` to isolate comps within the range you actually buy and sell in.
- **Batch keywords**: add 10 to 20 keywords in a single run. Each gets its own summary row, so you can rank categories side by side in a spreadsheet.
- **Combine with the** [Mercari Seller Scraper](https://apify.com/getascraper/mercari-seller-scraper) to see who is selling the comps you found.

### FAQ

#### How is days-to-sell calculated?

Mercari does not publish an explicit sold-at timestamp. This Actor uses the last-updated time as a proxy: for sold items, it typically reflects when the status changed to sold. Days-to-sell is the gap between listing and that time. Treat it as directionally correct, not exact. When either timestamp is missing, the field is omitted rather than guessed.

#### Can I get the sell-through rate?

Yes. Leave Compute sell-through rate enabled (it is on by default). The Actor scans active listings for each keyword and reports `soldCount / (soldCount + activeCount)` in the summary row. A rate above 0.7 generally indicates strong demand.

#### Why are titles in Japanese?

Mercari Japan is a Japanese marketplace, so titles are returned as listed. You can translate them with any translation tool after downloading the dataset.

#### Do I need a Mercari account or login?

No. The Actor reads only publicly visible listing data. No login or cookies are required.

#### Is it legal to scrape Mercari data?

This Actor collects publicly visible listing data from jp.mercari.com for research and analysis. You are responsible for following Mercari's terms of service and any applicable data-protection laws in your jurisdiction.

#### Found a problem or need another field?

Open a ticket on the Issues tab of this Actor. Custom solutions and additional fields are available on request.

# Actor input Schema

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

List of search terms to look up sold listings for (e.g. 'apple watch series 9', 'nintendo switch oled'). Each keyword is scraped independently and gets its own summary row.

## `startUrls` (type: `array`):

Paste one or more Mercari Japan search URLs to scrape directly (e.g. a pre-filtered sold search page). Used when you want to bypass keyword construction.

## `priceMin` (type: `integer`):

Optional minimum sold price in Japanese Yen. Filters out listings below this amount.

## `priceMax` (type: `integer`):

Optional maximum sold price in Japanese Yen. Caps results to your target range.

## `maxSoldPerKeyword` (type: `integer`):

Maximum number of sold listings to collect per keyword. Higher values give more accurate analytics but cost more compute units.

## `computeSellThrough` (type: `boolean`):

When enabled, the scraper also scans active (on\_sale) listings to estimate the sell-through rate: soldCount / (soldCount + activeCount). Adds one extra page load per keyword.

## `region` (type: `string`):

Marketplace region. Choose JAPAN for jp.mercari.com or US for mercari.com. The US region requires a US residential proxy — the Actor enforces this automatically when Apify Proxy is enabled.

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

Proxy settings. For Japan, a datacenter proxy is sufficient. For the US region, Apify Proxy US residential is required — the Actor forces this automatically unless you supply custom proxyUrls.

## Actor input object example

```json
{
  "keywords": [
    "apple watch series 9"
  ],
  "maxSoldPerKeyword": 200,
  "computeSellThrough": true,
  "region": "JAPAN",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `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 = {
    "keywords": [
        "apple watch series 9"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/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 = {
    "keywords": ["apple watch series 9"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/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 '{
  "keywords": [
    "apple watch series 9"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/mercari-sold-comps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mercari Sold Comps Scraper: Sold Prices & Days to Sell",
        "description": "Scrape Mercari Japan sold listings to get real sold prices, days-to-sell, and sell-through rate by keyword. Perfect for resellers and Japan arbitrage research. No subscriptions.",
        "version": "1.0",
        "x-build-id": "dLnDdPkrfrqazOEg0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~mercari-sold-comps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-mercari-sold-comps-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/getascraper~mercari-sold-comps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-mercari-sold-comps-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/getascraper~mercari-sold-comps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-mercari-sold-comps-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": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "List of search terms to look up sold listings for (e.g. 'apple watch series 9', 'nintendo switch oled'). Each keyword is scraped independently and gets its own summary row.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Paste one or more Mercari Japan search URLs to scrape directly (e.g. a pre-filtered sold search page). Used when you want to bypass keyword construction.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "priceMin": {
                        "title": "Min Price (JPY)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional minimum sold price in Japanese Yen. Filters out listings below this amount."
                    },
                    "priceMax": {
                        "title": "Max Price (JPY)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional maximum sold price in Japanese Yen. Caps results to your target range."
                    },
                    "maxSoldPerKeyword": {
                        "title": "Max Sold Listings per Keyword",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of sold listings to collect per keyword. Higher values give more accurate analytics but cost more compute units.",
                        "default": 200
                    },
                    "computeSellThrough": {
                        "title": "Compute Sell-Through Rate",
                        "type": "boolean",
                        "description": "When enabled, the scraper also scans active (on_sale) listings to estimate the sell-through rate: soldCount / (soldCount + activeCount). Adds one extra page load per keyword.",
                        "default": true
                    },
                    "region": {
                        "title": "Region",
                        "enum": [
                            "JAPAN",
                            "US"
                        ],
                        "type": "string",
                        "description": "Marketplace region. Choose JAPAN for jp.mercari.com or US for mercari.com. The US region requires a US residential proxy — the Actor enforces this automatically when Apify Proxy is enabled.",
                        "default": "JAPAN"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. For Japan, a datacenter proxy is sufficient. For the US region, Apify Proxy US residential is required — the Actor forces this automatically unless you supply custom proxyUrls.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
