Mercari Japan Scraper – Listings & Item Details avatar

Mercari Japan Scraper – Listings & Item Details

Pricing

from $2.00 / 1,000 listing results

Go to Apify Store
Mercari Japan Scraper – Listings & Item Details

Mercari Japan Scraper – Listings & Item Details

Scrape Mercari Japan listings, sold prices and item details. Search many keywords or paste Mercari URLs; filter by brand, category, condition and shipping; exclude keywords; pick individual sellers or Mercari Shops; enrich with descriptions, photos, seller ratings and shipping. Read-only, MCP-ready.

Pricing

from $2.00 / 1,000 listing results

Rating

0.0

(0)

Developer

Task Data

Task Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

Extract listings, sold prices, and full item details from Mercari Japan (メルカリ), Japan's largest consumer-to-consumer marketplace — titles, prices, condition grades, seller type (individual or Mercari Shops), seller ratings, shipping method and origin, photos, descriptions, and timestamps. Search by several keywords at once or by Mercari URLs, narrow results with Mercari's own brand, category, condition, and shipping filters, drop noise with exclude keywords, and switch on item-detail enrichment when you need the full picture. Built for international resellers, proxy-buying (代購) services, price researchers, and AI agents. No coding required.

What data can you extract?

Every row is one listing. Listing-level fields come from Mercari's search results; detail fields are filled when fetchItemDetails is on or when you pass an item URL.

FieldDescription
itemId, url, titleMercari item ID (m… for individual listings, alphanumeric for Shops), link, title (Japanese)
price, currencyListed price in JPY (null when the seller set no price)
statusselling, trading (sale in progress) or sold
sellerType, saleFormatindividual or shop (Mercari Shops storefront); fixed or auction
condition, conditionIdMercari condition grade 1 (新品、未使用) – 6 (全体的に状態が悪い)
categoryId, categoryPathCategory ID; full path such as ゲーム・おもちゃ・グッズ > トレーディングカード > ポケモンカードゲーム (detail)
brandId, brandNameBrand when the listing has one
sellerId, shopId, shopNameSeller (user) ID for individuals; shop ID and name for Shops
shippingPayer, shippingIncludedWho pays domestic shipping (seller = 送料込み) and the derived boolean
shippingMethodId, shippingMethod, shippingFromArea, shippingDurationShipping method, prefecture it ships from, stated dispatch time (detail)
sellerName, sellerRatingScore, sellerRatingsGood / Normal / Bad, sellerNumRatingsSeller display name and rating breakdown; shop name, score and review count for Shops (detail)
numLikes, numComments, descriptionEngagement and the full description (detail)
imageUrl, imageUrlsThumbnail and all photo URLs (original size after detail)
auctionMercari auction data when the listing is an auction, else null
createdAt, updatedAtISO 8601 timestamps
keyword, keywordUsed, keywordMapped, sourceUrlWhat you asked for, what was actually searched, whether a Japanese alias was applied, and the URL a row came from
marketplace, detailFetched, scrapedAtAlways mercari; whether the row was enriched; collection time

Rows are unique per itemId within a run — if two keywords return the same listing you get it once.

Why scrape Mercari Japan?

  • Sold-price research (comps) — set status to ["sold_out"] to get real transaction prices, not asking prices, for any keyword or brand.
  • Sourcing for resale and 代購 (proxy buying) — filter to individual sellers, exclude bulk lots (まとめ売り) and junk, and see immediately whether the price includes domestic shipping.
  • Brand and category sweeps — pass Mercari brandId / categoryId values (or simply a Mercari search URL with the filters you set on the website) instead of guessing product names.
  • Due diligence before buying — pull the seller's rating breakdown, shipping origin, dispatch time and full description with fetchItemDetails, or paste item URLs to check specific listings.
  • New-listing monitoringsortBy: "created" on a schedule surfaces fresh listings; see Scheduling & automation below.
  • AI agents / RAG — structured Japanese marketplace data for LLM workflows. This Actor is discoverable and callable through the Apify MCP server.

How to use it (no coding)

  1. Click Start (or Try for free).
  2. Enter one or more Search keywords — Japanese terms match best, e.g. ポケモンカード, ガンプラ, iPhone 15.
  3. Pick the Listing status you want (on sale, sold, trading) and set Max items per keyword.
  4. Open Advanced to paste Mercari URLs, add exclude keywords, restrict seller type, brand, category, condition or price, and tick Fetch item details if you need descriptions, photos and seller ratings.
  5. Click Start and download JSON, CSV or Excel — or read the results through the API (below). A per-keyword summary is saved to the key-value store as SEARCH_REPORT.

Input example

{
"keywords": ["ポケモンカード", "遊戯王"],
"status": ["sold_out"],
"excludeKeywords": ["まとめ売り", "ジャンク"],
"sellerType": "individual",
"itemConditionId": [1, 2],
"priceMin": 1000,
"sortBy": "created",
"maxItems": 200,
"fetchItemDetails": false
}

Or by URL:

{
"startUrls": [
{ "url": "https://jp.mercari.com/search?keyword=ガンプラ&status=on_sale&item_condition_id=1,2&price_min=3000&sort=created_time&order=desc" },
{ "url": "https://jp.mercari.com/item/m92095892715" },
{ "url": "https://jp.mercari.com/shops/product/2JUuVF27YiZ7f4cohiJWfr" }
],
"maxItems": 100
}

All fields are optional. Running with no input performs a health-check search for ポケモンカード (on sale, 100 items).

Output example

A sold listing with details fetched:

{
"marketplace": "mercari",
"itemId": "m68528641575",
"title": "MGSD デスティニーガンダム",
"price": 7900,
"currency": "JPY",
"status": "sold",
"sellerType": "individual",
"saleFormat": "fixed",
"condition": "新品、未使用",
"conditionId": 1,
"categoryId": "1016",
"categoryPath": "ホビー・楽器・アート > 模型・プラモデル > ロボット",
"brandId": null,
"brandName": null,
"sellerId": "512340987",
"sellerName": "ぐり",
"sellerRatingScore": 5,
"sellerRatingsGood": 312,
"sellerRatingsNormal": 1,
"sellerRatingsBad": 0,
"sellerNumRatings": 313,
"shopId": null,
"shopName": null,
"shippingPayer": "seller",
"shippingIncluded": true,
"shippingMethodId": 14,
"shippingMethod": "らくらくメルカリ便",
"shippingFromArea": "長崎県",
"shippingDuration": "1~2日で発送",
"numLikes": 4,
"numComments": 0,
"description": "MGSD デスティニーガンダム 新品未開封です。…",
"imageUrl": "https://static.mercdn.net/thumb/item/webp/m68528641575_1.jpg",
"imageUrls": ["https://static.mercdn.net/item/detail/orig/photos/m68528641575_1.jpg"],
"url": "https://jp.mercari.com/item/m68528641575",
"auction": null,
"createdAt": "2026-09-07T10:12:44.000Z",
"updatedAt": "2026-09-08T02:41:09.000Z",
"keyword": "ガンプラ",
"keywordUsed": "ガンプラ",
"keywordMapped": false,
"sourceUrl": null,
"detailFetched": true,
"scrapedAt": "2026-09-09T06:12:03.418Z"
}

Without fetchItemDetails, the detail-only fields (description, sellerName, ratings, shippingMethod, shippingFromArea, shippingDuration, numLikes, numComments, categoryPath) are null and imageUrls holds the search-result photo URLs.

SEARCH_REPORT (key-value store)

Every run also writes a SEARCH_REPORT record with, per keyword or URL: numFound (Mercari's match count, capped at 15,000), listingsReturned, duplicatesSkipped, detailFailed, and a status of ok, partial, not_found, mapped_and_retried, detail_failed, skipped_limit, blocked_suspected, unexpected_response or request_failed, plus a plain-language hint telling you what to try next. Zero results are never silent.

Data guarantees

  • One row per listing, unique by itemId within a run. Use itemId as your idempotency key when merging runs.
  • Zero results cost nothing. There is no start fee; you pay only for listings actually returned (and for detail pages actually fetched).
  • Detail is billed only on success. If an item page cannot be fetched, the row keeps its listing-level fields and no item-detail event is charged; item URLs that cannot be fetched produce no row and are explained in SEARCH_REPORT.
  • Hard cost caps. maxItems limits each keyword/URL, maxTotalItems (default 1,000) limits the whole run.
  • Zero-result keywords are explained. A short verified alias table retries a handful of Chinese franchise names (e.g. 宝可梦ポケモン) in Japanese and marks the row with keywordMapped: true; everything else gets a hint.
  • Japanese labels throughout. Condition grades, shipping methods and prefectures are returned in Japanese, exactly as Mercari shows them.

Scheduling & automation

  • New-listing monitor: run on a schedule with sortBy: "created" and a modest maxItems. Mercari orders "newest" by updatedAt, not createdAt — sellers bump old listings back to the top — so keep the highest updatedAt you have processed and treat anything newer as new. Keying on createdAt will skip bumped listings.
  • Webhooks and integrations: connect a run-finished webhook to Slack, Discord, Zapier or Make, or push the dataset to Google Sheets, from the Actor's Integrations tab.
  • Public Tasks: the Examples tab contains ready-made tasks (brand sweep, sold comps, item-URL details) you can copy and schedule.

Performance

Search pages are fetched sequentially (120 listings per page); detail pages are fetched four at a time. Measured on the Apify platform (direct connection, 2026-09-09): 450 listings across three keywords in 12.6 seconds; 3 listings with full details in about 7 seconds including start-up. Mercari exposes at most 15,000 matches per search.

How much does it cost?

Pay-per-event, no start fee:

EventWhat it isPrice
Listing result (apify-default-dataset-item)Each listing row returned$0.004 (FREE plan) · $0.003 (BRONZE) · $0.002 (SILVER and above)
Item detail (item-detail)Each row successfully enriched from its item page$0.008

A run that returns 100 listings without details costs about $0.40 on the FREE plan; the same 100 listings with details cost about $1.20 (100 × $0.004 + 100 × $0.008). Item and Shops URLs always fetch details, so each is one listing result plus one item detail. Use maxItems and maxTotalItems to cap spend.

Integrations: API, MCP, and AI agents

This Actor is read-only: it reads publicly available listing data through the same API the Mercari website uses, performs no login, purchase, or write actions, and is safe for autonomous agents to call.

API (curl)

curl -X POST "https://api.apify.com/v2/acts/datalab-jp~mercari-japan-listings-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["ポケモンカード"], "status": ["sold_out"], "maxItems": 50}'

Synchronous runs time out after 300 seconds. For large scrapes, use the standard run endpoint and fetch the dataset afterwards.

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("datalab-jp/mercari-japan-listings-scraper").call(run_input={
"keywords": ["ポケモンカード"],
"status": ["sold_out"],
"maxItems": 50,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
report = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("SEARCH_REPORT")["value"]

JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('datalab-jp/mercari-japan-listings-scraper').call({
keywords: ['ポケモンカード'],
status: ['sold_out'],
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Use with AI agents (MCP)

This Actor is available through the Apify MCP server and eligible for agentic payments. Claude, ChatGPT-based agents and any MCP client can discover it with search-actors ("Mercari Japan listings"), read its inputs with fetch-actor-details, and run it with call-actor. Practical tips for agents: pass the user's Japanese product name in keywords, pass status: ["sold_out"] when asked "what does X sell for", pass item URLs in startUrls when the user already has a link, and read SEARCH_REPORT when a keyword returns nothing.

Trust & maintenance

  • The Actor is exercised by an automated weekly health check (real search, non-zero results) in addition to Apify's daily Store test.
  • Mercari changes its API from time to time. Breakages reported on the Issues tab are answered within two business days, and fixes ship as new builds without changing the input contract.
  • The Actor never returns a fabricated empty result: when Mercari answers with an error or an unexpected body, the run reports blocked_suspected or unexpected_response in SEARCH_REPORT instead of a silent zero.

Part of a family of Japanese second-hand and resale market scrapers with a consistent row shape, so results can be merged for cross-marketplace comps:

  • Mercari Japan Scraper – Listings & Sold Comps — the lighter, keyword-only predecessor of this Actor
  • Yahoo! Auctions Sold Scraper — sold-price history from Japan's largest auction site
  • Japan Flea Market Scraper — Rakuma & Yahoo! Flea Market listings
  • Suruga-ya Scraper — used hobby goods, figures, and collectibles
  • CardRush TCG Price Scraper — trading card prices across 9 card games
  • Melonbooks Scraper — doujin goods and otaku merchandise
  • Diskunion Scraper — vinyl, CDs, and City Pop with condition grades

FAQ

Which listing states can I combine? Any subset of on_sale, sold_out and trading. sold_out means completed sales; trading means bought but not yet finished. For every state, pass all three.

How do I find brandId or categoryId? Set the filter on jp.mercari.com and copy the brand_id / category_id value from the resulting URL — or simply paste that search URL into startUrls; the Actor reads the filters for you. Category IDs also appear in the categoryId column of any run.

Can I check one specific listing? Yes. Put its URL (https://jp.mercari.com/item/m… or https://jp.mercari.com/shops/product/…) in startUrls. You get that listing with full details, including its current status.

Why did my keyword return nothing? Mercari matches Japanese titles. English brand names (e.g. Supreme, iPhone) work; generic English or Chinese words often do not. Check SEARCH_REPORT for the hint; a few Chinese franchise names are retried in Japanese automatically.

Does shippingIncluded cover international shipping? No. It reflects Japanese domestic shipping only (seller pays = 送料込み). International forwarding, proxy fees and customs are outside this data.

Is scraping Mercari legal? This Actor collects only publicly available listing data through Mercari's own search and item APIs, without logging in or bypassing any access control, at low request rates. Data returned about sellers is limited to what Mercari displays publicly on the listing page (display name, rating counts, prefecture). You are responsible for using the data in accordance with applicable laws and Mercari's terms of service.

Can AI agents use this Actor? Yes — see Use with AI agents above. It is read-only and safe to call autonomously.

Do I need a proxy? No. The Actor connects directly by default — measured on 2026-09-09, 450 listings across three keywords came back in 12.6 seconds with zero errors, at about a quarter of the cost of a residential-proxy run. If Mercari ever blocks direct access, enable Apify Proxy in the input; with no group chosen the Actor falls back to Japan-based residential IPs.

Compliance & ethics

Read-only; public listing data only; no login, purchase, message or write action; request volume is limited (sequential search pages, four parallel detail fetches, retries with back-off). Seller information is limited to the public display name and rating counts shown on the listing. Use responsibly and in accordance with applicable laws and Mercari's terms.