Mercari JP $0.8๐ฐ URL | Keyword | Review Scraper
Pricing
from $0.80 / 1,000 results
Mercari JP $0.8๐ฐ URL | Keyword | Review Scraper
Scrape items, sellers, and reviews from Mercari Japan (jp.mercari.com) at scale. Pull listing names, prices, conditions, all photos, shipping details, full seller descriptions, and rich seller profiles. Two input modes: keyword search with nine filters, or pass URLs directly.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
AbotAPI
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Mercari Japan Scraper
Scrape items, sellers, and reviews from Mercari Japan (jp.mercari.com) at scale. Pull listing names, prices, conditions, all photos, shipping details, full seller bios, and rich seller profiles (rating breakdown, sell count, star rating, follower counts, official-shop flag). Three input modes: keyword search with nine filters, paste marketplace URLs directly, or harvest every review left for one or more seller IDs. Output is structured JSON, ready for spreadsheets, dashboards, and pricing analysis.
Why This Scraper?
- 90+ fields per listing, all flat: id, name, price, condition, brand, category breakdown, all photo URLs, full shipping block (payer, method, fee, duration), plus a complete seller-profile block (introduction text, rating breakdown, sell count, star rating, follower / following counts, KYC and SMS-verified flags).
- Search-first input: type a keyword, pick filters; no need to hand-build URLs. Multi-keyword runs return representation from every keyword (proportional budget split).
- URL mode for power users: paste any jp.mercari.com URL: search pages, item pages, or
/user/profile/<id>and/user/reviews/<id>profile pages all work in one input list. - Reviews mode: pass one or more seller IDs and the actor surfaces every review left for those sellers as separate rows. Filter by subject (seller / buyer / both) and rating bucket (good / normal / bad).
- Detail enrichment toggle: turn on
fetchDetailsto pull full descriptions, all photos at original resolution, comments, hashtags, full category breakdown, and rich seller profile (bio, follower counts, polarized rating split). Turn off for fastest lean runs. - Filter at source, not after: status, item condition, shipping-payer, price range, brand, category, exclude-keyword, sort, and order all flow into the upstream search; you pay for items you wanted, not items you filtered out.
- Resilient session management: automatic retries with exponential back-off keep long runs stable.
Data You Get
Sample shape: values are illustrative placeholders, not from a live listing.
Item rows (search / url modes)
| Field | Example |
|---|---|
id | m00000000000 |
kind | item |
url | https://jp.mercari.com/item/m00000000000 |
itemType | marketplace (or shop) |
name | Sample Listing Title |
price | 12000 |
currency | JPY |
status | on_sale |
itemCondition | like new |
itemConditionId | 2 |
itemConditionSubname | Sample condition description |
categoryId | 0 |
categoryName | Sample Category |
categoryParentName | Sample Parent Category |
categoryRootName | Sample Root Category |
categoryPath | Sample Root > Sample Parent > Sample Category |
itemBrandId | 0 |
itemBrandName | Sample Brand |
shippingPayer | seller |
shippingPayerName | Sample shipping payer label |
shippingMethodName | Sample shipping method |
shippingFromArea | Sample prefecture |
shippingDurationMinDays | 1 |
shippingDurationMaxDays | 2 |
shippingClassTotalFee | 0 |
thumbnail | https://static.mercdn.net/thumb/item/webp/m00000000000_1.jpg |
photos | ["https://static.mercdn.net/item/detail/orig/photos/m00000000000_1.jpg"] |
description | Full seller description text appears here when fetchDetails=true. |
numLikes | 0 |
numComments | 0 |
comments | [{"userId":"0","userName":"Sample user","message":"Sample comment","createdAt":"2026-01-01T00:00:00+00:00"}] |
hashtags | ["sample-tag"] |
metaTitle | Sample SEO title |
metaSubtitle | Sample SEO subtitle |
isAnonymousShipping | true |
isOfferable | true |
isCancelable | true |
sellerId | 000000000 |
sellerName | Sample seller name |
sellerIntroduction | Sample seller bio text appears here when fetchDetails=true. |
sellerScore | 0 |
sellerNumSellItems | 0 |
sellerNumRatings | 0 |
sellerStarRating | 5 |
sellerRatingsGood | 0 |
sellerRatingsNormal | 0 |
sellerRatingsBad | 0 |
sellerPolarizedRatingsGood | 0 |
sellerPolarizedRatingsBad | 0 |
sellerFollowerCount | 0 |
sellerFollowingCount | 0 |
sellerCreatedAt | 2020-01-01T00:00:00+00:00 |
sellerSmsVerified | true |
sellerIsOfficial | false |
sellerQuickShipper | false |
sellerPhotoUrl | https://static.mercdn.net/members/resized/webp/000000000.jpg |
sellerRaw | full upstream seller block (verbatim โ captures any field Mercari adds) |
sellerProfileRaw | full upstream /users/get_profile block (verbatim) |
isLiked | false |
isNoPrice | false |
createdAt | 2026-01-01T00:00:00+00:00 |
updatedAt | 2026-01-01T00:00:00+00:00 |
Detail-only fields (description, comments, hashtags, full category breakdown, full shipping detail, complete seller profile including sellerIntroduction and follower counts) are populated only when fetchDetails=true. They appear as null placeholders otherwise so the row schema is identical across modes.
Review rows (reviews mode)
| Field | Example |
|---|---|
id | 000000000:0000000000 (sellerId:pagerId, stable across runs) |
kind | review |
url | https://jp.mercari.com/user/reviews/000000000 |
subject | seller (or buyer) |
fame | good (or normal / bad) |
message | Sample review text. May be empty when the rater left a rating without a comment. |
createdAt | 2026-01-01T00:00:00+00:00 |
pagerId | 0000000000 |
raterId | 000000000 |
raterName | Sample rater name |
raterPhotoUrl | https://static.mercdn.net/members/resized/webp/000000000.jpg |
sellerId | 000000000 |
sellerProfileUrl | https://jp.mercari.com/user/profile/000000000 |
sellerName | Sample seller name |
sellerIntroduction | Sample seller bio text |
sellerScore | 0 |
sellerNumRatings | 0 |
sellerStarRating | 5 |
sellerRatingsGood | 0 |
sellerRatingsNormal | 0 |
sellerRatingsBad | 0 |
sellerFollowerCount | 0 |
sellerFollowingCount | 0 |
sellerIsOfficial | false |
sellerPhotoUrl | https://static.mercdn.net/members/resized/webp/000000000.jpg |
How to Use
Search by keyword + filters
{"mode": "search","queries": ["nintendo switch"],"status": "on_sale","sortBy": "created-desc","maxPages": 5,"maxListings": 100,"fetchDetails": false,"proxy": { "useApifyProxy": true }}
Multi-keyword run with price range
{"mode": "search","queries": ["iphone 15", "iphone 14", "iphone 13"],"status": "on_sale","minPrice": 30000,"maxPrice": 80000,"sortBy": "price-asc","maxPages": 10,"maxListings": 300,"proxy": { "useApifyProxy": true }}
URL mode, multi-URL
{"mode": "url","urls": ["https://jp.mercari.com/search?keyword=lego&category_id=1115","https://jp.mercari.com/search?keyword=pokemon&sort=created_time&order=desc"],"maxPages": 3,"maxListings": 200,"proxy": { "useApifyProxy": true }}
Direct item-page URLs (skip search, go straight to detail)
{"mode": "url","urls": ["https://jp.mercari.com/item/m00000000001","https://jp.mercari.com/item/m00000000002"],"fetchDetails": true,"proxy": { "useApifyProxy": true }}
When the URL is an item-page URL the actor goes straight to the detail endpoint, so every direct-item URL gets the full enriched record regardless of fetchDetails.
Reviews mode: harvest every review for one or more sellers
{"mode": "reviews","sellerIds": ["140382083", "204551080"],"reviewSubject": "seller","reviewFame": ["good", "normal", "bad"],"maxPages": 5,"maxListings": 500,"proxy": { "useApifyProxy": true }}
Each review becomes its own row. The seller's profile (name, bio, score, ratings breakdown, follower counts) is attached to every row, so a single CSV export already has the seller context next to each review.
URL mode shortcut for review pages
{"mode": "url","urls": ["https://jp.mercari.com/user/reviews/140382083","https://jp.mercari.com/user/profile/204551080"],"maxPages": 3,"proxy": { "useApifyProxy": true }}
Both /user/reviews/<id> and /user/profile/<id> URLs are recognised: the actor surfaces every review for those sellers alongside any other URLs in the list.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (keyword + filters), url (paste marketplace URLs), or reviews (seller IDs). |
queries | string[] | [] | Search keywords (Search mode). Japanese and English both work. |
urls | string[] | [] | URLs (URL mode): jp.mercari.com/search?..., /item/..., /shops/product/..., /user/profile/..., /user/reviews/... |
sellerIds | string[] | [] | Numeric seller IDs (Reviews mode). Find one at the end of any /user/profile/ or /user/reviews/ URL. |
reviewSubject | string | seller | seller, buyer, or both (Reviews mode). Whether to fetch reviews left for the user as seller, as buyer, or both. |
reviewFame | string[] | all 3 | Rating buckets to include (Reviews mode): any of good, normal, bad. |
status | string | on_sale | Item status filter (Search mode): any, on_sale, sold_out, trading. |
itemCondition | string[] | [] | Numeric condition IDs: 1=new, 2=like new, 3=light wear, 4=some wear, 5=heavy wear, 6=poor. |
shippingPayer | string | any | any, seller (free shipping), buyer. |
categoryIds | string[] | [] | Numeric category IDs (find via Mercari URL params: category_id=...). |
brandIds | string[] | [] | Numeric brand IDs (brand_id=...). |
sortBy | string | score-desc | score-desc, created-desc, created-asc, price-asc, price-desc, num-likes-desc. |
minPrice | integer | none | Min price in JPY. |
maxPrice | integer | none | Max price in JPY. |
excludeKeyword | string | empty | Items matching this term are filtered upstream. |
maxPages | integer | 2 | Max pages per keyword / URL / seller. ~20 listings per page in Search/URL mode; up to 100 reviews per page in Reviews mode. |
maxListings | integer | 0 | Cap across all keywords/URLs/sellers combined. 0 = unlimited (capped by maxPages). |
fetchDetails | boolean | false | If true (Search/URL mode only), visit each item's detail page for full data. Adds one request per listing. |
proxy | object | Apify default | Proxy settings. |
Output Example
Sample records: values are illustrative placeholders.
Item record (search / url modes)
{"id": "m00000000000","kind": "item","url": "https://jp.mercari.com/item/m00000000000","itemType": "marketplace","name": "Sample Listing Title","price": 12000,"currency": "JPY","status": "on_sale","itemCondition": "like new","itemConditionSubname": "Sample condition description","categoryId": "0","categoryName": "Sample Category","categoryPath": "Sample Root > Sample Parent > Sample Category","itemBrandId": "0","itemBrandName": "Sample Brand","shippingPayer": "seller","shippingPayerName": "Sample shipping payer label","shippingMethodName": "Sample shipping method","shippingFromArea": "Sample prefecture","shippingDurationMinDays": 1,"shippingDurationMaxDays": 2,"thumbnail": "https://static.mercdn.net/thumb/item/webp/m00000000000_1.jpg","photos": ["https://static.mercdn.net/item/detail/orig/photos/m00000000000_1.jpg","https://static.mercdn.net/item/detail/orig/photos/m00000000000_2.jpg"],"description": "Full seller description text appears here when fetchDetails=true.","numLikes": 0,"numComments": 0,"hashtags": ["sample-tag"],"isAnonymousShipping": true,"isOfferable": true,"isCancelable": true,"sellerId": "000000000","sellerName": "Sample seller name","sellerIntroduction": "Sample seller bio text appears here when fetchDetails=true.","sellerScore": 0,"sellerNumRatings": 0,"sellerStarRating": 5,"sellerFollowerCount": 0,"sellerFollowingCount": 0,"sellerCreatedAt": "2020-01-01T00:00:00+00:00","sellerSmsVerified": true,"sellerIsOfficial": false,"createdAt": "2026-01-01T00:00:00+00:00","updatedAt": "2026-01-01T00:00:00+00:00"}
Review record (reviews mode)
{"id": "000000000:0000000000","kind": "review","url": "https://jp.mercari.com/user/reviews/000000000","subject": "seller","fame": "good","message": "Sample review message text.","createdAt": "2026-01-01T00:00:00+00:00","pagerId": "0000000000","raterId": "000000000","raterName": "Sample rater name","raterPhotoUrl": "https://static.mercdn.net/members/resized/webp/000000000.jpg","sellerId": "000000000","sellerProfileUrl": "https://jp.mercari.com/user/profile/000000000","sellerName": "Sample seller name","sellerIntroduction": "Sample seller bio text","sellerScore": 0,"sellerNumRatings": 0,"sellerStarRating": 5,"sellerRatingsGood": 0,"sellerRatingsNormal": 0,"sellerRatingsBad": 0,"sellerFollowerCount": 0,"sellerFollowingCount": 0,"sellerIsOfficial": false,"sellerPhotoUrl": "https://static.mercdn.net/members/resized/webp/000000000.jpg"}
Plan Requirement
This actor runs cleanly on the Apify Free plan. The default Apify Proxy group is sufficient; no residential or specialty proxies are required.
If you do choose residential, a Japan country pin (apifyProxyCountry: JP) gives you the same view a buyer in Japan sees: prices, shipping options, and inventory match exactly. Without a country pin you may occasionally see slightly different sponsored placements.
Tips
- For large catalogue dumps (10K+ items per keyword), run multiple keywords in one job: the per-search budget split makes sure all keywords get representation, and a single actor run is faster and simpler than several.
- Leave
fetchDetails: falsefor the fastest extraction. Turn on only if you need full descriptions, comment threads, hashtags, full category breakdowns, or rich seller profiles (introduction, follower counts, polarized rating split). excludeKeywordis applied upstream, so excluded items never count against yourmaxListingsbudget.- In Reviews mode, each page returns up to 100 reviews. Walking 5 pages covers 500 reviews per seller; raise
maxPagesfor sellers with thousands of ratings. - The
idof a review row is<sellerId>:<pagerId>, stable across runs, so re-running the same input produces the same dataset row IDs and incremental sync stays simple.