# Mercari Japan Scraper: Listings, Sold Comps, Sellers (`sourabhbgp/mercari-japan-scraper`) Actor

Scrape Mercari Japan (jp.mercari.com) by keyword, search URL, item URL, or seller: live and sold listings, item details, seller profiles, buyer reviews, and price statistics with median and days to sell. Real shipping fees, English translation, Mercari Shops. From $0.99 per 1,000 results.

- **URL**: https://apify.com/sourabhbgp/mercari-japan-scraper.md
- **Developed by:** [Sourabh Kumar](https://apify.com/sourabhbgp) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 6 total users, 1 monthly users, 99.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 results

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/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

### Mercari Japan scraper: listings, sold prices, item details & sellers

Pull live and sold listings, full item details, seller profiles, and price statistics from Mercari Japan (jp.mercari.com) in one actor. Search by keyword, or paste a Mercari search URL and keep every filter on it. No login, proxy, or browser setup.

**From $1.49 per 1,000 results. Same price in every mode. No meaningful per-run fee.**

**Covers Mercari Japan, jp.mercari.com.** Prices in JPY, native Japanese text, with optional English translation.

### What makes this the best Mercari Japan scraper

- 💴 **Sold prices, not just active listings:** flip one switch to pull sold comps for pricing research and resale.
- 📊 **Price statistics in one row:** median, quartiles, and how long items take to sell, without you doing the maths.
- 🚚 **The real shipping cost:** the actual fee and carrier for a listing, so you can work out landed cost.
- ⭐ **Seller reputation as a seller:** a rating breakdown that separates their selling record from their buying record.
- 💬 **Buyer reviews and followers:** the actual review text, plus who follows the seller.
- ❤️ **Likes and full comment threads:** item detail returns like counts, comment counts, and the buyer comments.
- 🏷️ **Readable values, not raw codes:** condition, category path, size and shipping all come back as names.
- 🌐 **English translation and a second currency:** read Japanese listings in English and price them in your own currency.
- ⚡ **HTTP-only and fast:** no headless browser, no proxy juggling, no flaky page loads.
- 🛍️ **Mercari Shops included:** shop products come back in the same record shape as marketplace listings.
- 🧾 **You only pay for rows you keep:** billing is per delivered record, so capped runs never charge for nothing.

### What data can you extract?

<table>
  <tr><td>🆔 Item ID & URL</td><td>📝 Title & description</td><td>💴 Price (JPY)</td><td>🏷️ Brand</td></tr>
  <tr><td>📦 Condition</td><td>📐 Size</td><td>🗂️ Category path</td><td>🚚 Shipping fee & carrier</td></tr>
  <tr><td>✅ On sale / sold</td><td>❤️ Like count</td><td>💬 Comment threads</td><td>🖼️ Photos</td></tr>
  <tr><td>⭐ Seller rating</td><td>👥 Followers</td><td>🛍️ Items sold</td><td>🎖️ Seller badges</td></tr>
  <tr><td>📈 Median sold price</td><td>⏱️ Days to sell</td><td>🔁 Similar listings</td><td>🌏 Ships to your country</td></tr>
</table>

### Four scraping modes

#### 🔍 Search mode

Type a keyword (for example, `nike`) or paste a Mercari Japan search URL. Get one row per listing with title, price in JPY, brand, size, condition, category, shipping, photos, and the seller ID.

Paste a search URL and every filter on it is applied: category, brand, price range, condition, size, sort, order, status, and exclude keyword. A seller profile URL scopes the search to that seller instead.

Set **status** to `sold_out` for sold comps, or `all` for live and sold together.

Turn on **Only listings under the sold median** and the actor first samples recent sold prices for the same search, then keeps only live listings priced below that median. Filtered-out listings are not charged.

#### 📦 Item detail mode

Paste item URLs or IDs, from either the main marketplace or Mercari Shops. Get the full record per item:

- Full Japanese description, plus an English translation of the title and description on request
- Like count, comment count, and the buyer comment threads with author and timestamp
- Condition, size, brand, and the complete category path
- Shipping method, origin prefecture, delivery estimate in days, who pays, and **the actual shipping fee and carrier**
- Whether the seller accepts offers, ships anonymously, or allows cancellation
- The seller's star rating, rating count, items sold, and official store flag
- Every photo at full resolution, hashtags, promotions, and auction details when present
- Optionally the listings Mercari shows as similar, and whether the item ships to a country you name

#### 🧑‍💼 Seller mode

Paste seller profile URLs or numeric seller IDs. Get the profile row plus, optionally, their catalog, reviews, and followers.

**Profile row** with star rating, ratings breakdown, follower and following counts, items sold, current sales, join date, introduction, official store flag, and trust badges.

**Seller-only reputation.** Mercari's profile mixes a person's selling and buying ratings into one number, so a good seller with one bad purchase looks worse than they are. Turn on reviews and the profile row also carries a breakdown covering their selling record alone.

**Listing rows** when **Include listings** is on: active, sold, or both.

**Review rows** when **Include buyer reviews** is on: one row per review with the rating, the review text, and who left it.

**Follower rows** when **Include followers** is on: one row per follower with their ID, name, and when they followed.

#### 📈 Price statistics mode

Give it a keyword or a search URL and get **one summary row**, not a list of listings. The actor samples recent sold listings and returns:

- Median sold price, plus the 25th and 75th percentiles
- Lowest, highest and average sold price
- Median days to sell
- How much of the sample had already sold
- The sample size behind every number

Billed as **one result** per keyword, however many listings were sampled.

### Top use cases

- 💴 **Resale and arbitrage:** pull sold comps and medians to price inventory and spot underpriced stock.
- 📊 **Brand and category research:** track price, condition, and supply for a brand across thousands of listings.
- 🧲 **Seller scouting:** find high-rating, high-volume sellers and read what their buyers actually said.
- 📈 **Demand signals:** use likes, comments, and days to sell to gauge interest in an item or category.
- 👟 **Sneaker and streetwear tracking:** monitor hype brands by size, condition, and sold price.
- 🌏 **Cross-border sourcing:** find Japan-only stock, read it in English, price it in your currency, and check it ships to you.

### How much does the Mercari Japan Scraper cost?

You pay per result, at the same rate in all four modes. The rate drops as your Apify plan grows:

| Your Apify plan | Price per 1,000 results | Results the plan's own credit covers |
|---|---|---|
| Free | $5.00 | about 1,000 |
| Starter, $29/month | **$2.99** | about 9,700 |
| Scale, $199/month | **$1.99** | about 100,000 |
| Business, $999/month | **$1.49** | about 670,000 |
| Enterprise | **from $0.99** | depends on your contract |

The Apify Free plan includes $5 in monthly credits, which is about 1,000 results at the free rate. There is no per-seat fee, no minimum spend, and no subscription lock-in for the scraper itself.

A price statistics row counts as **one result** no matter how many listings it sampled, so a 200 listing sample costs the same as a single listing.

### How to scrape Mercari Japan: step by step

1. [Create a free Apify account](https://console.apify.com/sign-up). Takes 30 seconds, no card needed.
2. Open [Mercari Japan Scraper](https://console.apify.com/actors/OWKSRCO6uZOeT0bFr?addFromActorId=OWKSRCO6uZOeT0bFr) in the Apify Console.
3. Pick a mode and paste a keyword, or item/seller URLs.
4. Click **Start**. Most runs finish in under a minute.
5. Export as JSON, CSV, or Excel, or fetch via API.

### Input examples

**Search mode**

```json
{
  "mode": "search",
  "keyword": "nike",
  "status": "on_sale",
  "sort": "created",
  "priceMin": 2000,
  "priceMax": 20000,
  "maxItems": 100
}
```

**Search mode, sold comps with readable values and a US price**

```json
{
  "mode": "search",
  "keyword": "nike air max",
  "status": "sold_out",
  "enrichedOutput": true,
  "priceCurrencyCountry": "US",
  "maxItems": 200
}
```

**Item detail mode**

```json
{
  "mode": "item",
  "itemUrls": ["https://jp.mercari.com/item/m39120191169"],
  "includeTranslation": true,
  "includeSimilar": true,
  "availabilityCountry": "US"
}
```

**Seller mode with reviews and followers**

```json
{
  "mode": "seller",
  "sellerUrls": ["474702850"],
  "includeListings": true,
  "listingStatus": "both",
  "maxItemsPerSeller": 50,
  "includeReviews": true,
  "includeFollowers": true
}
```

**Price statistics mode**

```json
{
  "mode": "stats",
  "keyword": "nike air max",
  "statsSampleSize": 200,
  "priceCurrencyCountry": "US"
}
```

### Input reference

| Field | Type | Default | Notes |
|---|---|---|---|
| `mode` | string | `search` | `search`, `item`, `seller`, or `stats`. |
| `keyword` | string | none | Search term. Combined with `startUrls` if you set both. |
| `startUrls` | array | none | Mercari Japan search URLs or seller profile URLs. Filters on the URL are applied. |
| `itemUrls` | array | none | Item URLs or IDs (item mode). Marketplace and Mercari Shops both work. |
| `sellerUrls` | array | none | Seller URLs or numeric IDs (seller mode). |
| `status` | string | `on_sale` | `on_sale`, `sold_out` (comps), or `all`. |
| `sort` | string | `score` | `score`, `created`, `price`, or `likes`. |
| `order` | string | `desc` | `desc` or `asc`. |
| `priceMin` / `priceMax` | integer | none | Price range in JPY. |
| `categoryId` / `brandId` | array | none | Numeric Mercari category and brand IDs. |
| `itemConditionId` / `shippingPayerId` / `sizeId` | array | none | Numeric Mercari filter IDs. |
| `enrichedOutput` | boolean | `false` | Add readable names, shipping fee and carrier, offer flags, ISO dates, and days to sell. |
| `priceCurrencyCountry` | string | none | Two letter country code, for example `US`. Adds a converted price. |
| `belowSoldMedian` | boolean | `false` | Search mode: keep only listings under the sold median. |
| `includeTranslation` | boolean | `false` | Add English title and description (item mode). |
| `includeSimilar` | boolean | `false` | Add similar listings (item mode). |
| `similarPerItem` | integer | `10` | Similar listings per item, 1 to 60. |
| `availabilityCountry` | string | none | Two letter country code. Adds whether the item ships there (item mode). |
| `includeListings` | boolean | `true` | Fetch the seller's items (seller mode). |
| `listingStatus` | string | `active` | `active`, `sold`, or `both` (seller mode). |
| `maxItemsPerSeller` | integer | `50` | Listings per seller **for each status**, so active and sold together can return twice this. Mercari caps each status at 120. |
| `includeReviews` | boolean | `false` | Add buyer review rows and the seller-only rating breakdown. |
| `maxReviewsPerSeller` | integer | `50` | Reviews per seller, 1 to 2000. |
| `includeFollowers` | boolean | `false` | Add follower rows (seller mode). |
| `maxFollowersPerSeller` | integer | `100` | Followers per seller, 1 to 2000. |
| `includeSellerVerification` | boolean | `false` | Add whether the seller completed identity verification. |
| `statsSampleSize` | integer | `200` | Sold listings to sample (stats mode), 20 to 1000. |
| `maxItems` | integer | `100` | Hard ceiling on records for the whole run, in every mode. In seller mode it covers profile, listings, reviews and followers together. |
| `maxConcurrency` | integer | `8` | Parallel requests, 1 to 15. Lower it if you hit rate limits. |
| `useResidentialProxy` | boolean | `false` | Use residential proxies. Not normally needed for Mercari Japan. |

### Output examples

Every row carries `recordType`: `item`, `seller`, `review`, `follower`, or `stats`. Prices are in JPY. Real rows captured from live runs.

**Search mode**, one row per listing:

```json
{
  "recordType": "item",
  "id": "m76944906016",
  "url": "https://jp.mercari.com/item/m76944906016",
  "name": "NIKE クルーネック スウェット ネイビー",
  "price": 2000,
  "currency": "JPY",
  "status": "ITEM_STATUS_ON_SALE",
  "isSold": false,
  "condition": { "id": "3" },
  "brand": { "id": "857", "name": "NIKE" },
  "sizes": [{ "id": "4", "name": "L" }],
  "categoryId": "310",
  "sellerId": "427701383",
  "thumbnails": ["https://static.mercdn.net/thumb/item/webp/m76944906016_1.jpg"],
  "created": 1787852849,
  "updated": 1787853799
}
```

**With `enrichedOutput` on**, the same row also carries readable values:

```json
{
  "conditionName": "Some scratches/marks",
  "categoryName": "Sweatshirts",
  "categoryBreadcrumb": ["Men's Fashion", "Tops", "Sweatshirts"],
  "shippingPayerName": "Included in price (by seller)",
  "itemType": "marketplace",
  "createdAt": "2026-08-27T17:47:29.000Z",
  "priceConverted": 13.18,
  "priceCurrency": "USD",
  "sellerProfileUrl": "https://jp.mercari.com/user/profile/427701383"
}
```

**Item detail mode**, the fields search does not carry:

```json
{
  "recordType": "item",
  "id": "m39120191169",
  "name": "NIKE スニーカー ホワイト ブラック ゴールド",
  "price": 3600,
  "condition": { "id": "2", "name": "Almost new" },
  "categoryBreadcrumb": ["Fashion", "Men's Fashion", "Shoes", "Sneakers"],
  "numLikes": 4,
  "numComments": 2,
  "comments": [{ "user": "...", "message": "...", "created": 1779990000 }],
  "description": "...",
  "shippingMethod": "TA-Q-BIN (60 size)",
  "shippingFee": 750,
  "shippingCarrier": "yamato",
  "shippingFromArea": "Tokyo",
  "shippingDurationMinDays": 2,
  "shippingDurationMaxDays": 3,
  "isOfferable": false,
  "isAnonymousShipping": true,
  "authenticationFee": 1900,
  "sellerStarRating": 5,
  "sellerNumRatings": 211,
  "translatedName": "NIKE Sneakers White Black Gold",
  "similarItems": [{ "id": "m45407543252", "name": "NIKE AIR FORCE 1", "price": 3300, "url": "https://jp.mercari.com/item/m45407543252" }],
  "availabilityCountry": "US",
  "availableInCountry": true
}
```

**Seller mode**, one profile row per seller:

```json
{
  "recordType": "seller",
  "sellerId": "474702850",
  "sellerName": "古着屋アリーヤ",
  "starRatingScore": 5,
  "numRatings": 12892,
  "ratings": { "good": 12770, "normal": 2, "bad": 120 },
  "numRatingsAsSeller": 12881,
  "ratingsAsSeller": { "good": 12760, "normal": 1, "bad": 120 },
  "followerCount": 6755,
  "numSellItems": 15379,
  "badges": [{ "id": "10004", "name": "Highly Rated" }],
  "sellerIdentityVerified": true,
  "isOfficial": false
}
```

**Seller mode**, review and follower rows:

```json
{
  "recordType": "review",
  "sellerId": "474702850",
  "reviewSubject": "seller",
  "reviewFame": "good",
  "reviewMessage": "この度はお取引ありがとうございました。",
  "reviewerId": "142194371",
  "reviewerName": "tokio23",
  "createdAt": "2026-07-31T00:00:00.000Z"
}
```

```json
{
  "recordType": "follower",
  "sellerId": "474702850",
  "followerId": "142194371",
  "followerName": "tokio23",
  "createdAt": "2026-08-28T00:00:00.000Z"
}
```

**Price statistics mode**, one row per keyword:

```json
{
  "recordType": "stats",
  "keyword": "nike air max",
  "currency": "JPY",
  "sampleSize": 180,
  "soldCount": 120,
  "activeCount": 60,
  "priceMedian": 8000,
  "priceP25": 5100,
  "priceP75": 12000,
  "priceMin": 2000,
  "priceMax": 27800,
  "priceMean": 9175.45,
  "medianDaysToSell": 12.1,
  "sellThroughRate": 66.7,
  "priceMedianConverted": 52.72,
  "priceCurrency": "USD"
}
```

### Limitations

- **Scope: Mercari Japan.** This actor covers jp.mercari.com.
- **Sold time is approximate.** Sold listings carry a last-updated timestamp as a sold-time proxy; Mercari does not publish an exact sale date, so `daysToSell` is an estimate.
- **Statistics describe the sample, not the whole market.** Mercari caps how many results any query reports, so `sellThroughRate` is measured across the listings sampled. `sampleSize` ships with every stats row.
- **Discounted items show two prices.** For an item running a promotion, search returns the discounted price and item detail returns the seller's list price, which is the one on the item page. The discount percentage is in the record either way.
- **Search caps at 15,000 results** per query, the limit Mercari itself returns.
- **Seller listings cap at 120 per status** (active or sold) in a single run. Your own **Max items** setting is a hard ceiling on top of that, covering every row the run produces.
- **Reviews have a rating band, not a star.** Each review is good, normal, or bad, and does not name the item it relates to. That is all Mercari publishes.
- **Likes, comments and the full description come from item-detail mode.** Search records do not carry them.
- **Sorting by newest ranks by last update.** Mercari's own "newest" sort behaves this way on its site too.

### Frequently asked questions

#### Which Mercari does this scraper cover?

Mercari Japan, at jp.mercari.com. Prices come back in JPY and titles and descriptions in Japanese, with an optional English translation of both in item-detail mode. Mercari Shops products are covered too, in the same record shape.

#### Do I need to log in or provide cookies?

No. There is no login, no API key, and no cookie to supply. Paste a keyword or a URL and run it.

#### How do I find a seller's ID?

Open the seller's profile on Mercari Japan. The URL ends in `/user/profile/<id>`, and that number is the seller ID. You can paste either the full URL or just the number.

#### Can I keep the filters from a Mercari search I already built?

Yes. Build the search on jp.mercari.com, copy the URL, and paste it into **startUrls**. Category, brand, price range, condition, size, sort, order, status, and exclude keyword all carry over.

#### Why are some values numeric codes?

Mercari's search feed returns IDs for condition, category and shipping. Turn on **Add resolved names and extra fields** and every one comes back as a name as well, with a full category path. The original fields stay exactly as they were, so existing exports keep working.

#### How much does the Mercari Japan Scraper cost?

Pay per result, from **$5.00 per 1,000** on the free plan down to **$1.49 per 1,000** on Business. The $29/month Starter plan pays **$2.99 per 1,000**, so that plan alone covers roughly 9,700 results a month. Enterprise rates go lower again. Full table in the pricing section above.

No subscription lock-in. Pause whenever.

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

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible pages, but how you use the output is on you.

Apify's full breakdown: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/).

#### Can I integrate it with other tools?

Push results into **Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive**, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.

Full list: [Apify integrations](https://docs.apify.com/platform/integrations).

#### Can I use it with the Apify API?

Yes. Every run is available via the Apify REST API:

```bash
curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~mercari-japan-scraper/runs?token=APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "keyword": "nike", "maxItems": 100}'
```

Docs: [Apify API reference](https://docs.apify.com/api/v2).

#### Can I use it through an MCP Server?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call the Mercari Japan Scraper. Setup: [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp).

### Your feedback

Bug, missing field, or odd behavior? Drop a note in the [Issues tab](https://console.apify.com/actors/OWKSRCO6uZOeT0bFr/issues). Reports go to a human and fixes usually ship the same week.

# Actor input Schema

## `mode` (type: `string`):

What to scrape.

## `keyword` (type: `string`):

Keyword to search for. Combined with any Search URLs you supply, so clear this if you want the URLs alone.

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

Mercari JP search URLs or seller profile URLs. Every filter on a pasted search URL is applied: keyword, exclude keyword, category, brand, price range, condition, shipping payer, size, status, sort and order. A Search keyword, if set, is combined with them.

## `itemUrls` (type: `array`):

Mercari JP item URLs or IDs (item mode).

## `sellerUrls` (type: `array`):

Mercari JP seller profile URLs or numeric IDs (seller mode).

## `status` (type: `string`):

Filter by status. Use sold\_out for sold comps.

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

Sort order for search results. Newest ranks by the time a listing was last bumped or relisted, which is the `updated` field, not `created`.

## `order` (type: `string`):

Ascending or descending. Mercari ignores this for the Newest sort, which always returns most recently bumped first.

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

Minimum price filter in Japanese yen.

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

Maximum price filter in Japanese yen.

## `categoryId` (type: `array`):

Filter search by Mercari category IDs.

## `brandId` (type: `array`):

Filter search by Mercari brand IDs.

## `itemConditionId` (type: `array`):

Filter by item condition IDs, 1 (new) to 6 (poor).

## `shippingPayerId` (type: `array`):

Filter by who pays shipping: 1 is paid on delivery by the buyer, 2 is included in the price by the seller. Most listings are 2.

## `sizeId` (type: `array`):

Filter search by Mercari size IDs, for example 9 for 26cm shoes.

## `includeListings` (type: `boolean`):

Seller mode: also fetch the seller's items.

## `listingStatus` (type: `string`):

Which seller listings to fetch.

## `maxItemsPerSeller` (type: `integer`):

Listings per seller for each status. Mercari returns at most 120 per status in one run, so active and sold together can reach twice this number. The overall Max items cap applies on top.

## `includeTranslation` (type: `boolean`):

Item mode: add EN title/description.

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

Maximum records for the whole run, across every mode. In seller mode this covers the profile, listings, reviews and followers together, so it is a hard ceiling on what you are charged.

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

Parallel requests: item URLs, sellers, and search URLs run concurrently up to this limit.

## `useResidentialProxy` (type: `boolean`):

Escalate to JP residential on failure. Not normally needed.

## `enrichedOutput` (type: `boolean`):

Turn raw Mercari IDs into readable names (condition, category breadcrumb, shipping payer, size) and add shipping fee and carrier, offer flags, ISO dates, seller profile URL, and days to sell. Off by default so existing CSV columns stay in the same order.

## `priceCurrencyCountry` (type: `string`):

Two letter country code, for example US. Adds a converted price and the exchange rate used. Leave empty for JPY only.

## `includeSimilar` (type: `boolean`):

For each item, also return the listings Mercari shows as similar.

## `similarPerItem` (type: `integer`):

How many similar listings to return per item. 1 to 60.

## `availabilityCountry` (type: `string`):

Two letter country code, for example US. Adds whether Mercari will ship the item there.

## `includeSellerVerification` (type: `boolean`):

Adds whether the seller has completed Mercari identity verification.

## `belowSoldMedian` (type: `boolean`):

Samples recent sold prices for the same search, then keeps only live listings priced below that median. Useful for spotting underpriced stock.

## `statsSampleSize` (type: `integer`):

How many sold listings to sample when calculating the price statistics. 20 to 1000.

## `includeReviews` (type: `boolean`):

Adds one row per buyer review with the rating, the review text, and who left it. Also adds a seller only rating breakdown to the profile row, which the profile alone does not give.

## `maxReviewsPerSeller` (type: `integer`):

How many reviews to pull per seller. 1 to 2000.

## `includeFollowers` (type: `boolean`):

Adds one row per follower with their ID, name, and when they followed.

## `maxFollowersPerSeller` (type: `integer`):

How many followers to pull per seller. 1 to 2000.

## Actor input object example

```json
{
  "mode": "search",
  "keyword": "nike",
  "status": "on_sale",
  "sort": "score",
  "order": "desc",
  "includeListings": true,
  "listingStatus": "active",
  "maxItemsPerSeller": 50,
  "includeTranslation": false,
  "maxItems": 100,
  "maxConcurrency": 8,
  "useResidentialProxy": false,
  "enrichedOutput": true,
  "priceCurrencyCountry": "US",
  "includeSimilar": false,
  "similarPerItem": 10,
  "availabilityCountry": "US",
  "includeSellerVerification": false,
  "belowSoldMedian": false,
  "statsSampleSize": 200,
  "includeReviews": false,
  "maxReviewsPerSeller": 50,
  "includeFollowers": false,
  "maxFollowersPerSeller": 100
}
```

# Actor output Schema

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

View the scraped records in the dataset.

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

Median, quartiles and days to sell, one row per keyword.

## `people` (type: `string`):

Buyer review text and follower rows from seller mode.

# 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 = {
    "keyword": "nike",
    "enrichedOutput": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("sourabhbgp/mercari-japan-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 = {
    "keyword": "nike",
    "enrichedOutput": True,
}

# Run the Actor and wait for it to finish
run = client.actor("sourabhbgp/mercari-japan-scraper").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 '{
  "keyword": "nike",
  "enrichedOutput": true
}' |
apify call sourabhbgp/mercari-japan-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sourabhbgp/mercari-japan-scraper"
        }
    }
}

```

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/OWKSRCO6uZOeT0bFr/builds/VxtkpJRnIaRUSjS0A/openapi.json
