Mercari Japan Scraper - Sold Prices & Image Search
Pricing
from $1.39 / 1,000 item delivereds
Mercari Japan Scraper - Sold Prices & Image Search
Get Mercari Japan (メルカリ) listings and sold prices by keyword, search link or image. On-sale or sold items with price, condition, category, brand and shipping filters, auctions flagged, full item pages. Only-new listings mode for schedules. Your item limit is respected. No login. Errors are free.
Pricing
from $1.39 / 1,000 item delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 hours ago
Last modified
Categories
Share
Mercari Japan Scraper: listings, sold prices and full item pages
Scrape Mercari Japan (メルカリ) without an account, cookies or a browser: search by keyword, by a Mercari search link or by image (a product photo), keep on-sale or sold listings, filter by price, condition, category, brand and shipping, or read full item pages with the description, category path and shipping details. Prices come in JPY straight from Mercari.
Built for resale and sourcing research, sold-price comps, price tracking, proxy-shopping catalogs and market datasets for Japanese second-hand goods (games, trading cards, fashion, electronics).
Mercari scraper at a glance
- Price per 1,000 listings, Free plan: US$ 1.99
- Fee per run start: None
- Search by keyword or Mercari link: Yes
- Search by image: Yes, on sale or sold, same filters
- On sale and sold listings: Yes
- Price, condition, category, brand, shipping filters: Yes, plus exclude keyword
- Full item page (description, category path, shipping): Yes, same price
- Seller data: Never (see below)
- Error rows (bad link, deleted item, no results): Free, with an
errorCode - Spend control: a per-search limit and an optional cap for the whole run (
maxTotalItems)
What it fixes
- Your limit is respected. A
limit: 20pasted from another Mercari actor's input gives 20 listings and 20 charges, not this form's default of 120. - Price filters work, in the input (
minPrice/maxPrice, alsopriceMin/priceMax) and inside a pasted Mercari link (price_min,price_max). - Every keyword is its own search. Japanese or English, typed or inside a link (including
/en/searchlinks): you get that keyword's listings, never a fixed fallback set. - Search links in Japanese work (
jp.mercari.com/search?keyword=リーフィアex), and their status, category, brand, condition, shipping and sort are kept. - Item links return the full item, not empty fields:
jp.mercari.com/item/m...gives title, price, condition, category path and status, sold items included (tested 19 Oct 2026). - A plain one-word search returns real data, for example
watch: 30 of 30 rows with title and price. - Results land in the dataset as they are found, so a run with results never shows an empty output, and a search with nothing gives a free
NO_RESULTSrow instead of silence.
Switching from another Mercari Japan scraper? Your existing input works
Paste the input you already use. These names and values are read as they are:
| You may already send | Read as |
|---|---|
keyword, queries, searchTerms | search terms |
startUrls, urls (search, category or item links) | links; mode: "url" is the same as search |
limit, maxItemsPerTerm | maxItemsPerSearch |
maxResults, maxListings | maxTotalItems (cap for the whole run) |
priceMin, priceMax | minPrice, maxPrice |
status: on_sale, sold_out, trading, any | onSale, sold, in transaction only, all |
sort + order (score, created_time, price; asc/desc), SORT_PRICE-style values, sortBy: created-desc, price-asc, num-likes-desc... | sortBy |
itemCondition or itemConditionId as 1 to 6 | itemCondition |
categoryId, brandId | categoryIds, brandIds |
shippingPayer | shippingPaidBy |
fetchDetails | includeDetails |
incrementalMode | onlyNewListings |
{ "keyword": "nintendo switch", "priceMin": 20000, "priceMax": 30000, "sort": "price", "order": "asc", "limit": 50 }
{ "startUrls": ["https://jp.mercari.com/search?keyword=ポケモンカード&status=sold_out"], "limit": 20 }
What data the Mercari scraper returns
From a test run on 2026-09-28 (search "nintendo switch"):
{"type": "item","id": "m95905940143","url": "https://jp.mercari.com/item/m95905940143","title": "Nintendo Switch 本体","priceJpy": 17000,"status": "on_sale","conditionId": 3,"condition": "No noticeable scratches or stains","categoryId": 701,"brand": "Nintendo","brandJa": "任天堂","size": null,"shippingPaidBy": "seller","photos": ["https://static.mercdn.net/item/detail/webp/photos/m95905940143_1.jpg?1790505599"],"thumbnail": "https://static.mercdn.net/thumb/item/webp/m95905940143_1.jpg?1790505599","createdAt": "2026-09-27T10:39:59Z","updatedAt": "2026-09-28T07:08:34Z","isShopItem": false,"searchTerm": "nintendo switch","scrapedAt": "2026-09-28T11:26:13Z","errorCode": null,"error": null}
With Full item pages on (or in item mode) the same row also gets description,
category ("本体(Nintendo Switch)"), categoryPath (ゲーム・おもちゃ・グッズ > テレビゲーム >
Nintendo Switch > 本体(Nintendo Switch)), conditionJa, shippingMethod (ゆうゆうメルカリ便),
shipsWithinDays ([1, 2]), likes (84), commentCount, colors, hashtags and every photo in
full size.
Mercari scraper input
| Field | Type | What it does |
|---|---|---|
mode | search or item | search runs searches; item reads the full page of each item link. |
searchTerms (also keyword, keywords, queries) | list | Keywords in Japanese or English, one search each. |
startUrls | list | Mercari search or category links (their filters are kept), item links (jp.mercari.com/item/m...) or plain item ids. |
imageUrls, imageFile | list, upload | Search by image: photo links, Mercari item links or an uploaded photo. |
maxResultsPerImage | integer, default 30 | Listings per image. 0 = all (about 800). |
maxItemsPerSearch (also limit, maxItemsPerTerm, maxItems) | integer, default 120 | Listings per search. 0 = as many as Mercari shows (about 12,000). |
maxTotalItems (also maxResults, maxListings) | integer, optional | Cap for the whole run, across all searches and links. 0 or empty = no cap. |
onlyNewListings (also onlyNew) | boolean, default false | For schedules: only listings not returned by this search before. See below. |
status | onSale, sold, all | sold returns sold and in-transaction listings, for price research. |
sortBy | bestMatch, newest, priceLowToHigh, priceHighToLow, mostLiked | Mercari's own orders. |
minPrice, maxPrice | yen | Price range. |
itemCondition | list | new, likeNew, noNoticeableWear, someWear, visibleWear, poor. |
categoryIds, brandIds | list of numbers | Ids as they appear in Mercari links (category_id=701, brand_id=15487). |
excludeKeyword | text | Mercari drops listings that match it. |
shippingPaidBy | any, seller, buyer | Shipping included or paid on delivery. |
includeDetails | boolean, default false | Full item page for each search result, same price. |
includeShopItems | boolean, default true | Keep Mercari Shops listings that appear in the search. |
listingFormat | any, fixedPrice, auction | Keep every listing, only fixed-price ones, or only auctions. Skipped listings are not charged. |
proxyConfiguration | proxy | Apify datacenter proxy by default. |
Mercari search by image
Paste a photo link (or upload one, or give a Mercari item link) and get the Mercari Japan listings that
look like it, most similar first. With status: "sold" you get sold-price comps from a picture, no
Japanese keyword needed.
{"imageUrls": ["https://jp.mercari.com/item/m24778525322"],"status": "sold","maxResultsPerImage": 30}
This returns 30 sold listings that look like a sold Nintendo Switch OLED.
imageUrls: public JPG, PNG or WebP links, or Mercari item links/ids (their first photo is used and the item itself is left out).imageFile: one uploaded photo.maxResultsPerImage: default 30; Mercari shows up to about 800 per photo,0= all.- Filters: status, price, condition, category, brand, shipping, shop and format filters all apply.
The order is always by similarity (
sortByis for keywords). - Extra fields:
sourceImage(where the row came from),position(1 = most similar) andsuggestedCategories(Mercari's category guesses for the photo, with ids forcategoryIds).
Mercari new-listing alert: schedule it daily
Turn on onlyNewListings, save your searches as a Task and attach a Schedule (every hour, every
morning): each run delivers, and charges, only the listings this search has not returned before. Connect
Slack, e-mail or Google Sheets and new Mercari listings for the cards, consoles or brands you hunt land
where you read them, while a quiet hour costs nothing.
{ "searchTerms": ["pokemon card psa 10"], "maxPrice": 30000, "onlyNewListings": true }
- The memory lives in a Key-Value Store in your own account (
mercari-scraper-only-new), one record per search and filter set, so you can inspect it or delete it to start over. - The option forces Mercari's "newest" order, which puts both brand-new listings and listings the seller bumped back to the top first. A bumped listing you never received counts as new.
- The first run delivers up to
maxItemsPerSearchand marks the whole first page as seen; later runs stop at the first page with nothing new. Item links (not searches) are always delivered.
Video guides from Apify: how to schedule an Actor and how to connect it to other apps.
Mercari scraper pricing
US$ 1.99 per 1,000 listings on the Free plan, no start fee, with or without full item pages.
Rows with an errorCode are free, and a listing is never charged twice in a run (the same item
found by two searches is delivered once). Search by image uses the same price per listing.
Mercari scraper errors
errorCode | Meaning | Charged |
|---|---|---|
INVALID_URL | not a Mercari Japan item, search or category link, nor an item id | no |
UNSUPPORTED_URL | a Mercari Shops product page in item mode; shop listings come through search | no |
ITEM_NOT_FOUND | the item was deleted or the id is wrong | no |
NO_RESULTS | Mercari found nothing for this search and filters | no |
BLOCKED | Mercari did not answer after five attempts on new IPs; run again | no |
NOT_REACHED | the run timeout arrived before this search or item | no |
INVALID_INPUT | a filter value is not valid (for example a minimum price above the maximum) | no |
UNSUPPORTED_MODE | mode: "reviews": seller reviews are personal data and are not collected | no |
IMAGE_UNREADABLE | the image link is not a readable photo, or Mercari did not accept it | no |
ITEM_UNREADABLE, UNEXPECTED | a listing came in a shape we did not expect; the rest of the run goes on | no |
Good to know about Mercari Japan data
- Auctions are flagged. Mercari now runs auctions next to fixed-price listings. Every row has
isAuction; on an auction,priceJpyis the current bid, and the row also carriesauctionEndsAt,auctionBidCount,auctionStartPriceJpyandauctionHighestBidJpy. Full item pages addauctionType(normalorflash, a 3-hour auction) andauctionState. For price research, uselistingFormat: "fixedPrice"or skip rows withisAuction: true; for sourcing,listingFormat: "auction"withsortBy: "newest"shows the auctions that just opened. - Sold listings are the real price data.
status: "sold"withsortBy: "newest"gives the latest sale prices for a keyword;updatedAtis the last change Mercari recorded on the listing. - Mercari shows about 12,000 listings per search (101 pages of 120). Split a broad search by price range or category to go further.
- No seller data, by design. Mercari sellers are mostly private people, so the Actor never returns seller ids, names, avatars, ratings, profile links, the prefecture they ship from, or the comments under a listing. You get the item only. The description is the seller's own text, as published.
- Mercari Shops (business sellers) listings appear in search with
isShopItem: trueand a/shops/product/link; their full page is not read yet. - Condition labels come in English (
condition) with Mercari's Japanese label inconditionJaon full item pages.brandis the brand's Latin name when Mercari has one. - Sourcing on Yahoo! Auctions too? Yahoo Auctions Japan Scraper gives the final sold price of ended auctions (with bids) and the live listings, same output style, US$ 1.00 per 1,000. Run both with the same keyword to compare what an item sells for on each marketplace.
- New retail price too? Rakuten Japan Scraper returns Rakuten Ichiba store listings (new goods, price, shop, review score) for the same keyword, US$ 1.00 per 1,000.
- Something broke? Open an issue on the Actor page.
Use it from code and AI agents
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("scrapewise/mercari-scraper").call(run_input={"searchTerms": ["nintendo switch"], "status": "sold", "maxItemsPerSearch": 120})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["priceJpy"], item["condition"], item["title"], item["url"])
The same works from the HTTP API (run-sync-get-dataset-items), n8n, Make, Zapier and Google Sheets. For AI agents: https://mcp.apify.com/?actors=scrapewise/mercari-scraper.
Requests an agent can pass straight through:
- "Find new or like-new Nintendo Switch 2 consoles on Mercari Japan between 30,000 and 50,000 yen" ->
{"searchTerms": ["Nintendo Switch 2 本体"], "minPrice": 30000, "maxPrice": 50000, "itemCondition": ["new", "likeNew"], "maxItemsPerSearch": 60} - "What did PSA 10 Pokemon cards sell for recently in Japan?" ->
{"searchTerms": ["pokemon card psa 10"], "status": "sold", "sortBy": "newest", "listingFormat": "fixedPrice", "maxItemsPerSearch": 120} - "Show me sold listings that look like this item" ->
{"imageUrls": ["https://jp.mercari.com/item/m24778525322"], "status": "sold", "maxResultsPerImage": 30}
Mercari scraper FAQ
Do I need a Mercari account or a Japanese IP? No. Nothing to log in to, no cookies to paste, and the default datacenter proxy works from outside Japan.
Is there an official Mercari Japan API? Not for listing data. Mercari Japan does not publish an open API for searching listings or reading sold prices. This Actor reads the public search and item pages, with no account, and returns price, condition, category, brand, shipping and sold status per listing.
How fast is it? One request returns 120 listings; a test read 836 listings in 8 seconds. Full item pages take one request each, six at a time.
Can I paste a search link from my browser? Yes. Keyword, status, price range, category, brand, condition, shipping and sort in the link are all kept.
Can I use it from n8n, Make, Zapier or an AI agent? Yes, see "Use it from code and AI agents" above. Error rows are free, so an agent can explore cheaply.
Can I get alerted when a new listing appears? Yes: turn on onlyNewListings and schedule the
Task. Each run returns only listings the search has not returned before, and a run with nothing new
costs nothing.
What does a search by image cost? The same per listing as a keyword search (US$ 1.99 per 1,000 on Free): one photo with the default 30 listings is about US$ 0.06. A photo with no results is free.
How much can I try on the Free plan? Apify's monthly US$ 5 of free credit covers about 2,500 listings. The prefilled search (nintendo switch, 120 listings) finishes in about 20 seconds.
Trading card prices in the US too? Our TCGplayer Scraper returns market, lowest and median prices with price history, so the same Pokémon or One Piece card can be compared between Japan and the US.
What if a run is cut by its timeout? The Actor stops 45 seconds before the limit and ends successfully with what it delivered, telling you in the status message how to get the rest.
Related scrapers
- Yahoo Auctions Japan Scraper: sold prices of ended auctions and live listings.
- Rakuten Japan Scraper: Rakuten Ichiba products, prices and shops.
- Depop Scraper: Depop listings, prices, brands, sizes and shops.
- TCGplayer Scraper: trading card prices and price history.
- Facebook Marketplace Scraper: Marketplace listings, prices and new items.
Changelog
-
2026-10-19: examples for AI agents (Apify MCP server).
-
2026-10-18: search by image (
imageUrls,imageFile, Mercari item links) with the usual filters,maxResultsPerImage, andsourceImage,position,suggestedCategorieson image rows. -
2026-10-08: input from other Mercari actors works as it is (
limit,maxItemsPerTerm,maxResults,maxListings,sort+order,status: on_sale/sold_out/trading/any,sortBy: created-desc..., conditions1to6,shippingPayer,fetchDetails,incrementalMode,mode: url);limitfrom another actor is no longer overridden by this form's default of 120; newmaxTotalItemscap for the whole run. -
2026-10-05: auctions flagged on every row (
isAuction,auctionEndsAt,auctionBidCount,auctionStartPriceJpy,auctionHighestBidJpy;auctionTypeandauctionStateon full item pages). Before this, auction listings came as fixed-price rows with the current bid as the price. NewlistingFormatfilter. Same price, no extra request. -
0.1 (2026-09-28): first version. Keyword and link search, on-sale and sold listings, price, condition, category, brand, shipping and exclude filters, full item pages, free error rows.
-
2026-10-04:
onlyNewListingsfor scheduled searches: only listings not returned before, remembered per search in a Key-Value Store in your account; quiet runs cost nothing.