Mercari Scraper: Japan & US Listings, Sold Prices
Pricing
from $0.75 / 1,000 listings
Mercari Scraper: Japan & US Listings, Sold Prices
Scrape Mercari Japan and Mercari US in one run, no login: listings on sale, sold or in trade by keyword, category, search link, seller or brand. Price in yen or dollars, condition, brand, size, photos; details, translation and sold price summaries on request. Change monitor. JSON, CSV, Excel.
Pricing
from $0.75 / 1,000 listings
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Mercari Scraper: Japan & US Listings, Sold Prices
Scrape Mercari listings from Mercari Japan (jp.mercari.com) and Mercari US (mercari.com) in one run, in one row shape: title, price in yen or dollars, status (on sale, sold, in trade), condition, brand, size, category, photos and the search each listing came from. Search by keyword, category id, pasted search link, seller or shop, brand, or listing link; filter by status, price, condition, brand, size, colour and shipping payer; get sold comparables from both markets side by side, with a price summary per search, Mercari US sales within the last days and Mercari Japan's own English translation. On request each listing's details are added: description, likes, shipping, the US sale time and the seller's public rating. Give the run a monitor name and schedule it: each run then delivers only the listings that are new, or also the ones whose price or status changed.
No Mercari account, no cookies, no API key, no browser. The Actor reads only what Mercari shows every visitor, checks on every page that Mercari applied the search exactly as you sent it, and labels Mercari Japan's conditions, categories and shipping in Mercari's own English while titles stay as the seller wrote them.
This Actor is not affiliated with Mercari, Inc. or Mercari Japan.
Who uses it
- Resellers pricing their stock: sold listings of a model on Mercari US and Mercari Japan in one run, prices as numbers, condition and brand on every row, and one price summary row per search (median, quartiles, share sold, days to sell, a suggested buy price at your margin).
- Import buyers watching Japan: a monitor on a Japanese keyword (
ポケモンカード) under a price that delivers each new listing once, with an English translation, the price in dollars and whether it can be bought from your country, to a spreadsheet, Slack or e-mail through Apify's integrations. - Sourcing and deal hunting: a monitor on a brand, size and price band, with free shipping or deals only, with price drops and sales on request.
- Price research and data teams: one schema for both markets through the Apify API, with the category trees in English.
Quick start
- Pick a Market: Mercari Japan, Mercari US or both.
- Type what you want in Keywords (
pokemon card,ポケモンカード,lululemon), or paste Search links copied from jp.mercari.com or www.mercari.com, or give Sellers and shops, Brands or Listing links (sellers and brands: one market per run). - Optionally set a Status (
soldfor sold comparables), a price range, conditions, sizes, a colour, the shipping payer, or a sold within days window (US). - Turn on Include details for descriptions, likes, shipping and the seller's rating, Price summary per search for the figures of each search, and the Japan add-ons (translation, second currency, country check) if you need them. Turn on Include personal data only if you also need personal sellers' ids, names and profile links; with it, Seller profiles and Seller reviews add a row per seller and its reviews. Titles, descriptions and comments always come exactly as the sellers wrote them.
- Run it, then download the dataset as Excel, CSV or JSON, or read it through the Apify API.
What you get
One row per listing (type: "listing"), the same fields for both markets (a field one market does not have is null).
Measured fill rates from the platform test runs of this code: Mercari Japan from 1,364 distinct listings (2026-10-12 and
13; details from 73 personal listings and 14 Mercari Shops products), Mercari US from 2,699 distinct listings (2026-10-13;
details from 329 listings).
| Field | What it holds | Japan | US |
|---|---|---|---|
type, market, listingId, url, title, price, currency, status, imageUrl, photoUrls, createdAt, updatedAt | the listing as Mercari shows it: price as a number in JPY or USD, status on_sale, sold or trading | 100% | 100% |
categoryId, category, categoryPath, condition, conditionId | Mercari's own English labels and category path (Japan from Mercari's list of 8,784 categories, US from its 3,233, both carried by the Actor) | 1,344 of 1,364 (similar listings carry none) | 100% |
brand, brandId | the brand Mercari shows | 800 of 1,364 (59%) | 2,585 of 2,699 (96%) |
size | the size Mercari shows | 375 of 1,364 (27%) | 1,426 of 2,699 (53%) |
listingType | personal, or shop for a Mercari Shops product | 100% (177 shop rows) | always personal |
shippingPayer, shippingIncluded | seller (included in the price) or buyer | 1,181 of 1,364 (personal listings; shops with details) | with details, 310 of 329 |
originalPrice, discountPercent | the price before a reduction, and the discount | discount on 58 rows | 2,699 of 2,699; discount on 217 rows |
promoted, searchScore, color, countrySource | a paid listing Mercari US moved up the order; its relevance score (best match); the colour a seller set | null | promoted 145 of 2,699; colour 11 of 2,699 |
saleFormat, auctionEndsAt, auctionBids, auctionHighestBid, auctionStartPrice | fixed or auction, and an auction's figures | 100%; 77 auction rows | null |
sold, soldAtApprox, daysToSellApprox | on sold and in trade rows; Mercari Japan publishes no sale time, so a sold listing's last update stands for it | every sold and in trade row | sold on every row |
soldAt, daysToSell | the moment of the sale Mercari US keeps, and the days from listing to sale (details) | null | 10 of 10 sold or in trade rows with details |
searchKind, searchKey, searchMarket, searchKeyword, searchCategoryId, searchSellerId, searchShopId, similarTo, searchStatuses, searchSort, page, position, inputLabel, keywordUsed, keywordMapped, titleMatchesKeyword | the search, link or seller that found the listing, and your own label for it | search rows | search rows |
detailsIncluded | true when the details were read and added (billed as Listing detail) | 100% | 100% |
description | the full description (details; on the US also from the search with Include descriptions) | 73 of 73 personal, 14 of 14 shops | 329 of 329 with details |
likes, shippingFrom, shippingFee | likes, the prefecture or state it ships from, the fee (details) | 73 of 73 personal | 310 of 329 |
comments, hashtags, attributes, colors, shippingMethod, shippingDays, anonymousShipping, acceptsOffers, cancelable, authenticationFee, freeAuthentication, authenticationKind, stockVariants | Mercari Japan's comment count, the seller's hashtags, Mercari's attributes and colours, shipping method and days, options, authentication, and a shop's stock by variant (details) | 73 of 73 personal (attributes 201, hashtags 28, colours 22 of 265 personal listings); variants 14 of 14 shops | null |
shippingClass, estimatedDelivery, buyerProtectionFee, totalPrice, inCartCount, authenticated | Mercari US's weight class, delivery estimate, Buyer Protection fee and total, people with it in their cart, Mercari Authenticate (details) | null | 329 of 329; delivery estimate 12 of 329 |
sellerIsShop, sellerRating, sellerRatingCount, sellerListingCount | whether the seller is a Mercari Shops shop; the seller's rating, its count and number of listings, or a shop's score and review count (details) | 73 of 73 personal; shops 14 of 14 (no listing count) | 329 of 329 |
sellerRatingGood, sellerRatingNormal, sellerRatingBad | the rating's good, normal and bad counts (details) | 73 of 73 personal | null |
sellerSalesCount | the seller's number of sales (details) | null (Mercari Japan publishes none) | 329 of 329 |
sellerId, sellerName, sellerUrl | a shop's id, name and link (details, always); a personal seller's public id and profile link (on search rows too, since Mercari's search names the seller) and display name (details), only with Include personal data, else null | shops 14 of 14; personal sellers with the switch on | with the switch on |
commentList | with Include comments: each comment's text, time and whether the seller wrote it; with Include personal data also the commenter's userId and userName | with details | null |
translatedTitle, translatedDescription, translationLanguage | Mercari Japan's own machine translation (Translate to) | 5 of 5 in the test run | null |
priceConverted, convertedCurrency, exchangeRatePerYen | the price at Mercari Japan's exchange rate (Second currency) | 5 of 5 | null |
shipsToCountry, shipsToCountryAllowed | whether Mercari Japan lets a buyer in that country buy the listing (Check buyable from country) | 5 of 5 | null |
monitorState, changedFields, previousPrice, previousStatus, priceChange, priceDirection, firstSeenAt, lastSeenAt, monitorNew | a monitor's view of the listing: new, changed, unchanged, reappeared or removed, and what changed | monitor runs | monitor runs |
scrapedAt | when the row was made | 100% | 100% |
A Japanese title often writes an English keyword in katakana: search with Japanese keywords when you use Only titles with every keyword word, or turn on Retry keywords in Japanese for franchise names written in Chinese or English.
A real Mercari Japan row with details, a translation, a second currency and a country check (shortened, from a run on 2026-10-12):
{"type": "listing","market": "japan","listingId": "m65127070685","url": "https://jp.mercari.com/item/m65127070685","title": "Pokemon TCG Jirachi-GX Collection 未開封","price": 70000,"currency": "JPY","priceConverted": 464.1,"convertedCurrency": "USD","status": "on_sale","listingType": "personal","condition": "No noticeable scratches or marks","categoryPath": "Games, Toys & Merchandise > Trading Cards > Pokémon Trading Card Game","createdAt": "2026-08-05T22:32:28.000Z","shippingPayer": "seller","shippingMethod": "RakuRaku Mercari Shipping","saleFormat": "fixed","searchKeyword": "ポケモンカード","detailsIncluded": true,"likes": 6,"comments": 0,"hashtags": ["ポケモンカード", "ポケカ", "ジラーチ", "PokemonCard", "Pokeka", "Jirachi"],"attributes": [{ "name": "Series", "value": "Pocket Monsters Card Game" }, { "name": "Rarity", "value": "PROMO" }],"shippingDays": "4 - 7 days","anonymousShipping": true,"sellerRating": 5,"sellerRatingCount": 290,"sellerRatingGood": 288,"sellerRatingBad": 2,"sellerListingCount": 36,"translatedTitle": "Pokemon TCG Jirachi-GX Collection Unopened","translationLanguage": "en","shipsToCountry": "US","shipsToCountryAllowed": true}
A real Mercari US row with details (shortened, from a run on 2026-10-13):
{"type": "listing","market": "us","listingId": "m41971762729","url": "https://www.mercari.com/us/item/m41971762729/","title": "Nintendo Switch Mario Kart Deluxe 8 / Super Smash Bros Ultimate / PGA Tour 2K21","price": 50,"originalPrice": 55,"currency": "USD","status": "trading","sold": true,"condition": "Good","brand": "Nintendo","categoryPath": "Electronics > Video games & consoles > Games","createdAt": "2026-10-13T02:25:13.000Z","soldAt": "2026-10-13T02:36:04.000Z","daysToSell": 0,"detailsIncluded": true,"likes": 1,"shippingPayer": "buyer","shippingFee": 7.97,"shippingFrom": "South Carolina","shippingClass": "2 lb","buyerProtectionFee": 2.08,"totalPrice": 65.84,"sellerRating": 5,"sellerRatingCount": 69,"sellerSalesCount": 33,"sellerListingCount": 48,"searchKeyword": "nintendo switch"}
With Price summary per search each search adds one row (type: "priceSummary"), from the listings it delivered, in that
market's currency. A real one for 60 sold and in trade nintendo switch listings on Mercari US with a target margin of 40
percent (2026-10-13):
{"type": "priceSummary","searchLabel": "Mercari US \"nintendo switch\"","currency": "USD","listingsWithPrice": 60,"lowestPrice": 13,"percentile25": 29.7,"medianPrice": 40,"percentile75": 61.24,"highestPrice": 400,"averagePrice": 64.31,"soldShare": 1,"medianSoldPrice": 40,"targetMarginPercent": 40,"suggestedMaxBuyPrice": 24,"quartileRatio": 2.06,"wideSpread": false}
It also carries the 10th and 90th percentiles, ten listings spread across the price range (sampleListings), the figures of
each status apart when the search delivered more than one (byStatus), the median days to sell (Mercari Japan:
approximate, medianDaysToSellApprox; Mercari US: from the listings whose details were read, medianDaysToSell), and with
Only listings under the sold median the sold sample it read first (soldSample). wideSpread is true when the upper
quartile is 3 or more times the lower one (a search that mixes different products). The suggested buy price is the median
price of the sold and in trade listings less your target margin, a rule of thumb that leaves out fees and shipping.
Free rows, never charged:
- One coverage row per search (
type: "search"): the count Mercari reports (totalReported), pages read, listings seen and delivered, listings already delivered in the run or known to the monitor, listings left out by filters, promoted rows left out, the Mercari US creation time windows read (creationWindows),complete,stoppedBy,capReached, a note (for example the Japanese term of a keyword that found nothing) and, for a monitor,newListingsMayLieBeyond. - Status rows (
type: "status"): input that cannot be used (a brand name that names no single brand comes with the candidates), a seller name Mercari does not know, a listing link that no longer exists or a listing deleted between the search and its detail read (not_found), a detail that could not be read, a search Mercari did not apply as sent (search_not_applied, with what was sent and what Mercari applied), a market that could not be reached (source_unavailable), and why a run stopped (limit_reached). - A run summary (
type: "summary") at the end: every counter, the events charged and the requests per market.
If you load the rows into your own database, the pair market plus listingId is the key of a listing row: use it as an
idempotency key, so a listing delivered again by a later run (a monitor's changed listing) updates its row instead of adding
one.
Seller profile and review rows (with Include personal data)
With Include personal data on, two more row kinds can be turned on, each billed per row. They cover every private seller of the listings the run delivers (from searches, sellers, listing links), in the order the run first delivered them; a Mercari Shops shop is a business and gets none (its id and name are on its listings).
- Seller profiles (
includeSellerProfiles,type: "seller", Seller profile): one row per seller withsellerId,sellerName,sellerUrl,followers,following,introduction(as the seller wrote it),badges,ratingAverage,ratingCount,listingCount,joinedAtandphotoUrl. Mercari Japan addsratingGood,ratingNormal,ratingBad,phoneVerified,badgeDetails(Mercari's badge names and what they mean, such as "Highly Rated" or "Seller Level 8"),officialAccountandbusinessAccount; Mercari US addsusername,salesCount,emailVerified,facebookVerified,identityVerified,proSeller,fastShipper,fastResponder,reliableShipper,cancellationRateandinternationalSeller(itsbadgesname the true ones). - Seller reviews (
includeSellerReviews,type: "review", Seller review): the seller's reviews newest first, up to Reviews per seller (maxReviewsPerSeller, 20 when left out), each withrating(as Mercari words it: good, normal or bad; Mercari US also writes cancel for a sale that was cancelled),message,reviewedAs(the role the seller had in that sale:sellerorbuyer),createdAt, the reviewer'sreviewerId,reviewerNameandreviewerUrl, itspositionand areviewKey. Mercari US adds the feedbacktagsthe reviewer chose andbyMercari(a review Mercari posted itself when a sale closed without one); Mercari Japan dates a review by its day.
They describe private people, so the run refuses them, free, without Include personal data; they do not run with a Monitor name (a monitor remembers listings, not sellers). Similar listings (Similar listings of) name no seller, so with them the seller rows need Include details (refused free otherwise). The view tabs "Seller profiles" and "Seller reviews" show them. Reviews delivered before a platform restart of the run count toward Reviews per seller and are not billed again.
How much does it cost to scrape Mercari?
Pay per event, with Apify's Store discounts by plan:
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Listing (one listing row) | $0.99 / 1,000 | $0.95 / 1,000 | $0.85 / 1,000 | $0.75 / 1,000 |
| Listing detail (the details of a delivered listing, only when details are read) | $1.40 / 1,000 | $1.30 / 1,000 | $1.10 / 1,000 | $1.00 / 1,000 |
| Translation (a delivered Mercari Japan listing translated by Mercari, only with Translate to) | $0.50 / 1,000 | $0.50 / 1,000 | $0.45 / 1,000 | $0.40 / 1,000 |
| Country check (a delivered Mercari Japan listing checked for your country, only with Check buyable from country) | $0.20 / 1,000 | $0.20 / 1,000 | $0.18 / 1,000 | $0.16 / 1,000 |
| Price summary (one summary row per search, only with Price summary) | $2.00 / 1,000 | $2.00 / 1,000 | $1.80 / 1,000 | $1.60 / 1,000 |
| Listing check (a change monitor's re-read of a remembered listing, only with Check listings) | $0.60 / 1,000 | $0.60 / 1,000 | $0.54 / 1,000 | $0.48 / 1,000 |
| Seller profile (one seller profile row, only with Seller profiles) | $1.97 / 1,000 | $1.80 / 1,000 | $1.64 / 1,000 | $1.41 / 1,000 |
| Seller review (one review row, only with Seller reviews) | $1.97 / 1,000 | $1.80 / 1,000 | $1.64 / 1,000 | $1.41 / 1,000 |
| Results page (only in monitor runs: one results page read) | $0.60 / 1,000 | $0.60 / 1,000 | $0.60 / 1,000 | $0.60 / 1,000 |
| Actor start (once per run, flat, no plan discount) | $0.006 | $0.006 | $0.006 | $0.006 |
Platinum and Diamond plans pay the Gold price. The Store pricing card shows these same prices per 1,000 events: "$0.75 / 1,000" on the Listing row means one listing costs 0.075 cents at Gold (0.099 cents on the Free plan), and "$1.60 / 1,000" on the Price summary row means one summary costs 0.16 cents at Gold.
Examples: 100 listings on the Free plan cost $0.006 + 100 x $0.00099 = $0.105. 1,000 listings with their details on the Gold plan cost $0.006 + 1,000 x ($0.00075 + $0.001) = $1.756. 200 sold listings with a price summary on the Free plan cost $0.006 + 200 x $0.00099 + $0.002 = $0.206. An hourly monitor of one keyword on both markets (2 searches) that reads 1 page each and finds 10 new listings costs, on the Free plan, $0.006 + 2 x $0.0006 + 10 x $0.00099 = $0.0171 per run. 50 listings from 40 sellers with their profiles and up to 5 reviews each (200 reviews) cost, on the Free plan, $0.006 + 50 x $0.00099 + 40 x $0.00197 + 200 x $0.00197 = $0.5283.
Free: listings left out by your filters, listings already delivered in the run (or in the dataset you resume from), listing links that no longer exist, searches Mercari did not apply as sent, sellers Mercari does not know (and seller profiles or reviews Mercari no longer shows), brand names that name no single brand, invalid input, coverage rows, status rows and the summary. Descriptions from a Mercari US search (Include descriptions), comments and the second currency cost nothing extra. An add-on is charged only for a delivered row that carries it, when Mercari answered. A listing link is always read with its details, so each one delivered is billed as Listing plus Listing detail. A monitor's Results page is charged only after the page was read and Mercari applied the search as sent. A monitor bills a listing when it is new to the monitor; with Changes too also when its price or status changed, with Unchanged ones too also when it is delivered again unchanged, and with Check listings the searches no longer show each answered re-read is a Listing check and each listing it finds sold, changed or removed is delivered and billed as a Listing (plus a Listing detail with details for a changed one). These re-checks are bounded by Maximum listing checks, not by Maximum listings.
Input
Every keyword is searched in every market you pick, in every category id you give for that market and for every seller you give (at most 100 searches a run). A pasted search link is a search of its own with the filters on it; the search filters below apply to keyword, category, seller, brand, similar and every listing searches, and the filters applied by this Actor apply to every search. A setting that exists on one market only is refused when the run does not read that market, and sellers, brands, sizes and colours (each market's own) are read one market per run: the run then reads nothing and a free row says why.
What to search
- Market:
japan(jp.mercari.com, prices in yen),us(mercari.com, prices in dollars) orboth. Left empty:japan. - Keywords: words as you would type them on Mercari, Japanese or English. Up to 100.
- Search every listing: every listing of each market the run reads, without a keyword, with your filters.
- Mercari Japan category ids: the number after
category_id=in a jp.mercari.com search link (7002is Nintendo Switch); Mercari US category ids: the number in a category link (www.mercari.com/us/category/796/is video games); each checked against the market's own category list, which the Actor carries; an unknown id is a free row. - Split by department (US): each search read once in each of Mercari US's 17 departments (Women, Men, Electronics, Toys & Collectibles and the rest), each with its own reach of listings.
- Search links: links copied from jp.mercari.com (
https://jp.mercari.com/search?keyword=...) or www.mercari.com (a search, a/us/category/page or a/us/brand/page), read with every filter on them as the site reads them (keyword, excluded word, category, brand, size, seller, price, condition, shipping payer, status, order, colour; on Japan also prefecture, shipping method, Mercari Shops or personal and the attribute filters; on US also sold time and deals). A link with a filter Mercari does not apply for a visitor (coupons; on US also authenticity and shipping fees) is refused with the reason. Give a link as{"url": "...", "label": "my search"}and its rows carry your label. - Sellers and shops: seller profile links (
https://jp.mercari.com/user/profile/123456789,https://www.mercari.com/u/123456789/or/u/<username>/), seller ids, or Mercari Shops shop links (https://jp.mercari.com/shops/profile/...): their listings, filtered by the settings below. A US username is looked up at Mercari once; an unknown one is a free row. One market per run. - Listing links:
https://jp.mercari.com/item/m...,https://jp.mercari.com/shops/product/...orhttps://www.mercari.com/us/item/m.../(a barem...id when the run reads one market), each read with its details and delivered as given. Up to 5,000. - Similar listings of (Japan): listings whose similar listings, as Mercari shows them on the listing page, are delivered (30 a page). Their rows carry the title, price, status and type; filters on anything else need Include details.
- Brands: names as the market lists them (Japan
NIKE,ナイキ; USNike,lululemon athletica) or brand ids. On Mercari Japan a name is looked up at Mercari once per run (up to 20 names); on Mercari US it is matched against Mercari US's own brand list (28,853 brands, which the Actor carries). A name is used only when exactly one brand carries it, otherwise a free row lists the candidates. With no keyword, the brands alone are searched. One market per run. - Retry keywords in Japanese (Japan): a keyword that finds nothing and is a franchise name written in Chinese or English
(for example
宝可梦orone piece) is searched once as the Japanese term sellers use (ポケモン,ワンピース); 30 franchises.
Search filters (applied by Mercari and checked on every page)
- Status:
on_sale,sold,trading, one or more (defaulton_sale). In trade is a listing a buyer paid for whose trade is not finished; Mercari US marks it sold after the buyer's rating, a few days later. - Order: newest first (the default, and the only order a monitor reads), best match, price low to high, price high to low; most liked first on Mercari Japan only; oldest first and recently sold (sold and in trade listings, by the moment of the sale) on Mercari US only. An order one of the run's markets does not serve is refused.
- Price in whole yen (Japan) or dollars with cents (US); Condition (
new,like_new,good,fair,pooron both markets; on Mercari Japanfaircovers its two middle grades); Size ids (each market's own list); Colour (Mercari Japan's 12 or Mercari US's 14; on the US only listings whose seller set a colour); Shipping paid by (selleris shipping included or free shipping,buyer). - Mercari Japan only: Personal listings only; and, in a run of Mercari Japan alone (refused in a run of both markets,
where the US searches would stay unfiltered): Shipping method (
anonymous,japan_post,no_option), Ships from prefecture (ids 1 to 47 or names such asTokyo), Mercari Shops listings only. - Mercari US only, in a run of Mercari US alone (refused in a run of both markets): Deals only (below the original price), Sold within days (by the moment of the sale, with sold or in trade statuses).
- Posted within days: only listings created within that many days before the run started. On Mercari US it is sent to Mercari and the newest first walk ends at the first page older than that; on Mercari Japan, whose newest first order follows the last update, older rows are left out for free and the walk goes on to the page limit.
Filters applied by this Actor (a listing they leave out is free)
- Exclude words: listings whose title holds one of these words (a word of the title that starts with it, as for the
title match, so
legoalso leaves out "LEGOスターウォーズ" and "Legoland"; any letter case, full width letters read as plain ones), for examplejunkorジャンク. - Only titles with every keyword word (Mercari also returns related listings).
- Include promoted listings (US): on by default; off leaves out the paid promoted listings Mercari US moves up its order.
Details and add-ons
- Include descriptions (US): each row's full description, read from the search itself (no detail read, no extra charge).
- Include details (Listing detail): the detail fields of the table above, on both markets. Every filter is checked again on the detail.
- Include comments (Japan, with details, no extra charge), Translate to (Japan,
enorzh-TW, Translation), Second currency (Japan: USD, EUR, GBP, AUD, CNY, TWD, HKD, KRW, no extra charge), Check buyable from country (Japan, a two letter code, Country check). Mercari translates and checks its own listings only: a Mercari Shops product gets neither and is not charged for them. - Seller profiles (Seller profile) and Seller reviews (Seller review) with Reviews per seller, with Include personal data on: the rows of the section "Seller profile and review rows" above.
- Price summary per search (Price summary), with Target margin for a suggested buy price (a percent), and Only listings under the sold median (Japan: reads up to 3 pages of the search's sold listings first, then delivers listings on sale under their median, with a Price summary; in a run of Mercari Japan alone).
Personal data. The fields that name or reach a private seller are delivered only when the run turns on Include
personal data (includePersonalData): a personal seller's public id and profile link (on every row whose search or
detail names the seller), display name (rows with details), a seller id Mercari US looked up from a username you gave
(searchSellerId and the search label), the commenters' ids and names, and the seller profile and review rows. With it
off (the default) those fields are null and those rows are not made. Titles, descriptions, hashtags, comments and Mercari
Japan's translations are delivered exactly as Mercari serves them, switch on or off: whatever a seller wrote into them,
phone numbers and e-mail addresses included, comes as written. A Mercari Shops shop's id, name and link are business data
and always delivered. Mercari shows visitors who are not signed in no seller phone or e-mail field, so the rows have none.
The seller ids you give in Sellers and shops are your own input and come back as you gave them (searchSellerId,
searchKey). You are responsible for a lawful use, GDPR included.
Limits and advanced
- Maximum listings (default 100: the listings the searches and links deliver; with several searches each gets an equal share first, then the rest goes to the searches that have more; a monitor's re-checks have their own bound, Maximum listing checks), Maximum listings per search, Maximum pages per search (default 10; about 120 listings a page on Japan, 100 on the US, up to 100 pages).
- Seconds between requests: a slower pace (1 to 5 seconds between two requests to each market, one at a time); empty is the normal pace of about 0.7 seconds.
- Resume from dataset: the id of an earlier run's dataset; its listings are not delivered or charged again (a dataset of up to 200,000 rows; a larger one refuses the run, and only the start fee is charged).
- Use residential proxy (Japan): read Mercari Japan through Apify residential exits in Japan instead of the datacenter group (no extra charge). Mercari US is always read through Apify residential exits.
When a price range is set, a listing without a price is left out. Sold comparables from both markets with a price summary each, 40 rows:
{"market": "both","keywords": ["nintendo switch"],"statuses": ["sold"],"priceSummary": true,"maxItems": 40}
New Japanese trading cards under 3,000 yen, without junk lots, translated to English with the price in dollars:
{"market": "japan","keywords": ["ポケモンカード"],"maxPriceJpy": 3000,"conditions": ["new", "like_new"],"excludeKeywords": ["ジャンク"],"translateTo": "en","currency": "USD","maxItems": 100}
Nike listings sold on Mercari US in the last 7 days, most recent sale first:
{"market": "us","brands": ["Nike"],"statuses": ["sold", "trading"],"soldWithinDays": 7,"sort": "recently_sold","maxItems": 200}
The monitor: new listings, and changes
Give the run a Monitor name (for example pokemon-cards-jp) and schedule it. Every run reads the newest Maximum pages
per search pages of each search (its window) and delivers the listings this monitor has not delivered before; listings it
delivered are free. Each results page a monitor reads is charged as a Results page, so keep the window small for a frequent
monitor: 1 or 2 pages an hour is enough for most searches. When the last page of the window still held listings new to the
monitor, the coverage row says newListingsMayLieBeyond: true: raise the pages or run more often.
With Changes too, a listing the monitor delivered before whose price or status changed (a price cut, sold, in trade)
is delivered again with monitorState: "changed", the changed fields, the previous price and status, the price change and
its direction, and when the monitor first and last saw it. Unchanged ones too delivers the known listings as well
(unchanged). Check listings the searches no longer show re-reads up to Maximum listing checks remembered listings
on sale (or in trade on the US) that no page of the run showed, longest unseen first, and delivers the ones that sold,
changed their price (changed) or were removed (removed).
A monitor name belongs to one set of settings (markets, searches, filters, the details switch and the change mode; not the caps, the add-ons or the personal data switch): a run with other settings under that name reads nothing and says why in a free row, so use a new name for other searches. Schedule runs on one name so they do not overlap: a run that finds the name in use reads nothing. A monitor remembers up to 100,000 delivered listings; after that it holds new ones back with a free status row: start a new name. A monitor name is per listing: this Actor keeps its own memories.
{"market": "japan","keywords": ["ポケモンカード"],"maxPriceJpy": 3000,"postedWithinDays": 3,"maxPagesPerSearch": 2,"monitorName": "pokemon-cards-jp","monitorChanges": true}
Caps and facts
- One Mercari Japan search serves about 10,000 listings, one Mercari US search 1,000 (10 pages of 100). In the newest
and oldest orders this Actor goes on past the US 1,000: it searches again for the listings created before (after) the
last one it read, a creation time window Mercari confirms on every page, so up to 100 pages reach up to 10,000 listings of
one US search (
creationWindows). In the other US orders Mercari can end a walk before 1,000 (800 of a reported 10,000 in best match on 2026-10-17). Whenever a walk ends at the cap, or Mercari US ends it well short of the count it reports, the coverage row sayscapReached: truewith both numbers: narrow the search with a price band, a category or a condition, or use Split by department (US). - Mercari Japan's newest first order follows the last update, not the creation time: an edited listing comes back to the top, where a change monitor sees it, and Posted within days leaves older rows out for free. There is no oldest first order on Mercari Japan and no most liked order on Mercari US.
- A Mercari Japan sold search is mostly Mercari Shops products; Personal listings only keeps sales between people.
Mercari Japan lists the listings on sale first in every order except most liked, so for sold comparables search
soldon its own. - Best match on sold listings (US): Mercari US orders a search of sold or in trade listings only by the moment of the
sale when best match is asked, so a Mercari US run asks for recently sold in that case (rows carry , a pasted link's coverage row notes it); in a run of both markets that combination is refused with the reason.searchSort: "recently_sold"
- Mercari US places promoted listings among the others; every US row says
promoted, and Include promoted listings off leaves them out for free. - Every page is checked: Mercari answers each search with the search it applied, and a page whose keyword, status, order, price, category, brand, size, seller, condition, colour, shipping payer, prefecture, method, attribute, listing type, deals or time window differs from what was sent delivers nothing and ends that search with a free row. Similar listings are Mercari's own choice and carry no such answer.
- A detail is newer than its search row: with details on, every filter is checked again on the detail, and a brand, size or colour the detail no longer carries leaves the listing out for free.
- Refusals: Mercari US runs through Apify residential addresses (Cloudflare refuses datacenter addresses) and Mercari
Japan through Apify datacenter addresses. When Mercari refuses an address the run moves to a fresh one, at most 6 times a
run for the US and 3 for Japan; after that the market stops with a free row (
source_unavailable) and the other market goes on. A translation, country check, exchange rate or brand lookup that Mercari does not answer only leaves that one value out. - Work that delivers nothing is bounded, per market: the requests that deliver no billed row are counted at what they cost the run (their time, and on residential exits their traffic), and each market a run reads may spend a share of USD 0.0007 of them (all of it for one market, half each for both) plus USD 0.00009 per listing, 0.00003 per listing detail and 0.00003 per Results page billed in it; then that market stops with a free row that says so, and the other market goes on. A filter that almost no listing passes, or a long list of links that no longer exist, ends there; narrow the search or split the list.
- The Actor runs at 256 MB, fixed. A run writes at most 30 status rows of one kind about single listings, links or searches; the summary counts every one.
- The category, size, colour and brand lists are the markets' own, read on 2026-10-12 (Japan) and 2026-10-13 (US); a category or size added later is refused as unknown until the lists are refreshed.
FAQ
Is it legal to scrape Mercari?
This Actor reads only public data, without logging in. The fields that name or reach a private seller (a personal seller's id, name and profile link, commenters' ids and names, seller profiles and reviews) come only when you turn on Include personal data; titles, descriptions and comments come exactly as the sellers wrote them. Whether your use is lawful depends on where you are, Mercari's terms and what you do with the data, personal data included; that responsibility is yours.
Can I get a Mercari seller's profile and reviews?
Yes, for the sellers of the listings a run delivers: turn on Include personal data, then Seller profiles (followers, introduction, badges, rating, number of listings, the date they joined; on Mercari US also sales and verifications) and Seller reviews (newest first, up to Reviews per seller, with each reviewer's id and name). To read one seller, give their profile link in Sellers and shops with Maximum listings set low: the seller's listings come first, then the profile and the reviews.
Does Mercari have an official API?
Mercari offers no public API for searching its listings. This Actor reads the same listing data Mercari's own web pages load, with no key or account from Mercari, and gives you the rows through the Apify API (examples below).
How do I get Mercari sold prices?
Set Status to sold (add trading for sales not yet completed): each row is a sold listing with its price, condition,
brand and category, from one market or both. Price summary per search adds the median, quartiles, share sold and days to
sell of each search. On Mercari Japan switch on Personal listings only for sales between people; on Mercari US Sold
within days keeps the last days only and, with details on, each row carries the moment of the sale (soldAt).
Why did my Mercari Japan alerts stop after a month?
Mercari Japan's saved search notifications are valid for 30 days after you set them up. A monitor of this Actor has no such limit: schedule a run with a Monitor name and every run delivers the listings it has not delivered before (and with Changes too the price cuts and sales), until the monitor holds 100,000 listings.
How do people see listings on Mercari instantly after they're posted?
Schedule a monitor: give the run a Monitor name, run it every hour or more often with 1 or 2 pages per search, and connect the run to Slack, e-mail or a webhook with Apify's integrations. On Mercari Japan the newest first order also holds edited older listings, so add Posted within days to keep only recent ones.
Why does this Actor run with limited permissions?
It needs no access to your other Apify data. It only writes to its own run's dataset and key-value store and, when you use a monitor, to one named key-value store it creates itself for that monitor; with Resume from dataset it reads the one dataset you name.
What this Actor does not do
- No login, buying, offers, likes, messages or anything behind a Mercari account.
- No seller profile or review rows for a Mercari Shops shop (a business; its name, score and review count are on its listings with details), none without Include personal data, and none in a monitor run: run them without a monitor name.
- No seller's followers list or the listings they liked: the profile row carries the counts.
- No sales count per seller on Mercari Japan: it publishes none; the seller's number of listings is
sellerListingCount. - No sale time on Mercari Japan and no sold within days window there: Mercari Japan publishes no sale time to visitors who
are not signed in;
soldAtApproxis a sold listing's last update. - No oldest first order on Mercari Japan and no most liked order on Mercari US: the markets do not serve them.
- No coupon filter (Mercari applies it only for a signed in buyer), and on Mercari US no authenticity or shipping fee filter.
- No HTML description or pre promotion shipping fee on Mercari US: it serves the description as plain text, and its pre promotion fee was 0 on every listing measured.
- No translation, second currency or country check for Mercari US listings: they are Mercari Japan's own services.
- No brands, sizes, colours or sellers of both markets in one run: each market has its own; run one market at a time. The same holds for the filters of one market only (Japan's shipping method, prefecture, shops only and sold median; the US deals and sold within days): a run of both markets with one of them is refused, so no market's searches go unfiltered.
- No proxy setting for Mercari US: it answers only residential exits, which every run uses at no extra charge.
- No setting for the number of parallel requests: the Actor reads at about 1.5 requests a second, politely.
- No views or the buyer of a sale: Mercari does not show them to a visitor.
- No seller phone or e-mail field: Mercari shows visitors who are not signed in none, so there is nothing to deliver; numbers and addresses sellers write into their listings are in the texts as written.
- No connectors of its own (Notion, Airtable, MCP): the dataset is the output, read through the Apify API or Apify's integrations (Make, Zapier, n8n, Google Sheets, Slack, webhooks), which use your own accounts there.
- No ready made tasks are published with this listing: start from the input form's example or the API examples below.
- No photo download: photo addresses are in every row.
API
curl -X POST "https://api.apify.com/v2/acts/automation_craft~mercari-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"market": "both", "keywords": ["nintendo switch"], "statuses": ["sold"], "priceSummary": true, "maxItems": 20}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation_craft/mercari-scraper').call({ market: 'both', keywords: ['nintendo switch'], statuses: ['sold'], maxItems: 20 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((x) => x.type === 'listing'));
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation_craft/mercari-scraper").call(run_input={"market": "japan", "keywords": ["ポケモンカード"], "translateTo": "en", "currency": "USD", "maxItems": 20})rows = [x for x in client.dataset(run["defaultDatasetId"]).iterate_items() if x["type"] == "listing"]
A prompt for your AI assistant
Paste this into ChatGPT, Claude or another assistant to have it write the input for you:
Write the JSON input for the Apify Actor automation_craft/mercari-scraper. Its settings: market (japan, us, both), keywords(list), japanCategoryIds, usCategoryIds, searchUrls (jp.mercari.com or www.mercari.com links), sellerUrls (profile links orids, one market per run), listingUrls, brands (names or ids, one market per run), statuses (on_sale, sold, trading), sort(newest, best_match, price_low, price_high, most_liked on Japan, oldest and recently_sold on the US), minPriceJpy,maxPriceJpy, minPriceUsd, maxPriceUsd, conditions (new, like_new, good, fair, poor), sizeIds, colors, shippingPayer (seller,buyer), soldWithinDays (US), postedWithinDays, excludeKeywords, includeDescriptions (US), includeDetails, translateTo (en,zh-TW, Japan), currency (Japan), shipsToCountry (Japan), priceSummary, targetMarginPercent, maxItems, monitorName,monitorChanges, includePersonalData, includeSellerProfiles and includeSellerReviews (both need includePersonalData),maxReviewsPerSeller. I want: <describe what you want>.
Changelog
- 0.2 (2026-10-20): faster recovery when a Mercari US address goes silent (15 s instead of up to 50 s before a fresh address). Inputs, rows, events and prices unchanged.
- 0.2 (2026-10-19): titles, descriptions, hashtags, comments and translations come exactly as Mercari serves them, switch on or off (no masks); with Include personal data on, seller profile rows, seller review rows (two new events) and the commenters' ids and names; the Mercari US Buyer Protection fee is read again; a seller id Mercari US looked up from a username shows only with the switch on.
- 0.2 (2026-10-17): the features of the one market listings in this one: pasted search links, sellers and shops, brands, sizes, shipping payer, Japan's shipping method, prefecture and Mercari Shops filters, US deals and sold within days, every listing, similar listings, descriptions from the US search, translation, second currency and country check (Japan), price summaries with a suggested buy price, a change monitor with re-checks, resume from a dataset, a slower pace, more orders, the US walk past 1,000 listings.
- 0.1 (2026-10-12): first version, Mercari Japan and Mercari US in one row shape, details, new listing monitor;
includePersonalData(2026-10-14).