Mercari US Listings Scraper
Pricing
from $0.08 / 1,000 mercari listings
Mercari US Listings Scraper
Search Mercari US and extract public listings, prices, conditions, images, availability, shipping context, and seller details for resale research.
Pricing
from $0.08 / 1,000 mercari listings
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Collect public Mercari US marketplace listings as clean JSON, CSV, Excel, XML, or RSS data.
Search by keyword, paste a Mercari search URL, or extract one public item URL. The Actor returns listing IDs, canonical URLs, titles, USD prices, conditions, brands, categories, images, availability, likes, seller context, and timestamps when Mercari exposes them.
Use the data for resale research, sold-comps analysis, price monitoring, inventory discovery, brand tracking, and marketplace intelligence. No Mercari login or private API key is required.
What does Mercari US Listings Scraper do?
The Actor turns public Mercari US searches and item pages into structured listing records.
It can:
- 🔎 search one or many product keywords;
- 🔗 accept Mercari search and item URLs;
- 💵 normalize Mercari prices from cents to USD;
- 🏷️ collect brand, category, size, and condition metadata;
- 📦 distinguish active and sold listings;
- 🖼️ return listing images and thumbnails;
- 👤 add public seller context on detailed records;
- 🎯 filter results with minimum and maximum prices;
- 🧹 deduplicate promoted or repeated listings by item ID;
- 📤 export results or connect them to another automation.
Search extraction uses Mercari's structured application data rather than fragile visual selectors. This keeps fields consistent even when the page layout changes.
Who is this Mercari scraper for?
Resellers and flippers
Compare active asks and recently sold listings before buying inventory. Track specific models, collectibles, fashion labels, or product bundles.
Pricing analysts
Build repeatable samples for price distributions, condition adjustments, and listing velocity studies. Use canonical item IDs to join snapshots over time.
Brands and marketplace teams
Monitor how branded products appear on a major peer-to-peer marketplace. Review titles, categories, conditions, prices, and listing availability.
Researchers
Collect public marketplace observations with source URLs and extraction timestamps. Keep the original search phrase on every search result.
Developers and automation builders
Feed Mercari listing data into databases, dashboards, alerts, spreadsheets, or AI workflows through the Apify API and integrations.
Why use this Actor?
Mercari protects normal page delivery with Cloudflare and session checks.
A basic HTTP request often receives 403 Forbidden instead of useful HTML.
This Actor handles the anonymous guest session and supported proxy path for you. It also provides:
- predictable typed output;
- global result caps;
- cursor pagination;
- item deduplication;
- clear input validation;
- non-zero failure on total extraction failure;
- pay-per-result charging;
- scheduled runs and integrations on Apify.
You can focus on the resale or research workflow rather than maintaining Mercari request details.
What Mercari listing data can I extract?
| Field | Description |
|---|---|
itemId | Stable Mercari item identifier |
itemUrl | Canonical public Mercari US item URL |
sourceUrl | Search or item URL that produced the record |
searchKeyword | Keyword used for a search result |
title | Public listing title |
description | Public description when detail enrichment is used |
price | Current price normalized to USD |
priceCents | Original integer price in cents |
originalPrice | Original USD price when available |
condition | New, like new, good, fair, or poor |
brand | Public brand name |
category | Mercari category name |
size | Item size when applicable |
status | Mercari listing status |
isSold | Normalized sold-state flag |
likes | Public like count when available |
imageUrl | Primary image URL |
imageUrls | All returned image URLs |
sellerId | Public Mercari seller ID |
sellerName | Public seller display name on detailed records |
sellerSalesCount | Public sales count when exposed |
sellerListingsCount | Public listed-item count when exposed |
sellerVerified | Public verification signal when exposed |
scrapedAt | UTC extraction timestamp |
Optional fields are omitted when Mercari does not return them for that mode or category. The Actor never invents missing seller or listing values.
How to scrape Mercari US listings
- Open the Actor input page.
- Add one or more phrases to Search keywords.
- Optionally paste Mercari search or item URLs.
- Choose active, sold, or all listing status.
- Set a small Maximum listings value for the first run.
- Leave the US residential proxy enabled.
- Click Start.
- Open the dataset to inspect or export the records.
A first run with 20 listings is enough to confirm the schema for most workflows. Increase the cap only after checking the data.
Input options
Search keywords
Add phrases such as:
{"keywords": ["nintendo switch", "pokemon booster box"],"maxItems": 40}
Mercari search URLs
Paste the exact public search URL when another system already creates Mercari searches:
{"startUrls": [{ "url": "https://www.mercari.com/search/?keyword=vintage%20levis" }],"maxItems": 25}
Mercari item URLs
Use explicit items to collect a detailed public record:
{"startUrls": [{ "url": "https://www.mercari.com/us/item/m36640238524/" }],"maxItems": 1}
Only mercari.com US search and item URLs are accepted.
Unsupported hosts and paths fail closed.
Filters and sorting
Choose one listing status:
activefor items currently offered;soldfor sold and completed results;allfor both states.
Available sort values are:
best_match;newest;price_low;price_high;most_liked.
minPrice and maxPrice are USD amounts.
Listings without a parseable price are excluded when a price boundary is active.
The Actor rejects a minimum greater than the maximum.
Detailed item enrichment
Set includeDetails to true when search results need descriptions, multiple images, likes, and richer seller fields.
{"keywords": ["sony walkman"],"maxItems": 10,"includeDetails": true}
Enrichment makes one additional structured item request per search record. It therefore takes longer and transfers more proxy data than basic search mode. If one detail request fails, the Actor keeps the valid search record and logs a warning. Explicit item URLs always use the detail workflow.
Output example
{"itemId": "m36640238524","itemUrl": "https://www.mercari.com/us/item/m36640238524/","sourceUrl": "https://www.mercari.com/search/?keyword=nintendo%20switch","searchKeyword": "nintendo switch","title": "Nintendo Switch V2","price": 250,"priceCents": 25000,"currency": "USD","condition": "Like new","brand": "Nintendo","category": "Consoles","status": "on_sale","isSold": false,"imageUrl": "https://u-mercari-images.mercdn.net/photos/example.jpg","sellerId": "275643313","scrapedAt": "2026-07-24T03:03:25.311Z"}
Actual records vary by listing category and extraction mode.
How much does it cost to scrape Mercari listings?
The Actor uses pay-per-event pricing:
- one small start charge covers session initialization;
- one result event is charged for each unique listing saved.
Your final cost is visible before and after each run in Apify Console. Tier discounts reduce the per-listing rate on larger Apify plans. Detail enrichment does not create a second output charge, although it may use more compute and proxy bandwidth.
Keep first runs small, review the dataset, and then scale the result cap.
Price-monitoring workflow
A practical monitoring setup is:
- save a narrow keyword and price range;
- schedule the Actor every few hours or daily;
- write output to Google Sheets, a database, or a webhook;
- deduplicate snapshots by
itemId; - compare
price,status, andupdatedAtacross snapshots; - alert when a new listing meets your buying rule.
The Actor does not maintain history inside one run. Downstream storage should preserve snapshots when change tracking is required.
Sold-comps workflow
Set status to sold and use a specific product phrase.
Collect condition and price fields for comparable items.
Good search phrases include model numbers, edition names, storage capacity, size, or release year. Avoid mixing unrelated product variants in one keyword when calculating medians.
Mercari search order and inventory change continuously. Treat results as a timestamped public sample, not a permanent complete archive.
Resale sourcing workflow
Use active listings with sort: newest to discover fresh inventory.
Apply maxPrice to keep only candidates below a sourcing threshold.
Combine the dataset with your own fee, shipping, tax, and resale assumptions. The Actor provides public source data but does not promise profit or investment outcomes.
Integrations
Google Sheets
Send each run's dataset to a worksheet for manual review, pivots, and pricing comparisons.
Webhooks
Trigger an endpoint after a run succeeds, then process only unseen itemId values.
Make and Zapier
Connect new listing records to notifications, CRM rows, or inventory pipelines.
Slack and email
Send alerts only after your automation applies a specific price, brand, and condition rule.
Cloud storage and databases
Export JSON or CSV to S3-compatible storage, BigQuery, PostgreSQL, Snowflake, or another analytics destination.
Use the Mercari scraper with the Apify API
Replace APIFY_TOKEN with your token.
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/mercari-us-listings-scraper').call({keywords: ['nintendo switch'],maxItems: 20,status: 'active'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('APIFY_TOKEN')run = client.actor('automation-lab/mercari-us-listings-scraper').call(run_input={'keywords': ['nintendo switch'],'maxItems': 20,'status': 'active',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST \'https://api.apify.com/v2/acts/automation-lab~mercari-us-listings-scraper/runs?token=APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"keywords":["nintendo switch"],"maxItems":20}'
Use Mercari data through MCP
Apify MCP lets Claude and other compatible clients run the Actor as a tool.
Claude Code setup
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=automation-lab/mercari-us-listings-scraper"
Claude Desktop setup
Add the following server to Claude Desktop's MCP configuration.
Cursor setup
Add the same server object to Cursor's MCP settings.
VS Code setup
Add the same server object to your VS Code MCP configuration.
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=automation-lab/mercari-us-listings-scraper"}}}
Example prompts:
- “Find 20 active Mercari US listings for Nintendo Switch OLED and summarize the price range.”
- “Collect recently sold Sony Walkman listings and group prices by condition.”
- “Extract this Mercari item URL and return the seller and listing metadata.”
Never paste an Apify token into an untrusted prompt or public document.
Proxy and reliability
Mercari often blocks ordinary datacenter requests. The default input uses an Apify US residential proxy session.
For best reliability:
- keep the residential group enabled;
- start with modest result caps;
- avoid many overlapping searches for the same phrase;
- use detail enrichment only when its extra fields are needed;
- schedule reasonable intervals instead of continuous polling;
- inspect logs after an upstream block.
A run fails rather than returning a misleading empty success when every requested source produces zero records.
Data quality notes
Mercari may repeat promoted records between pages.
The Actor deduplicates by itemId across the full run.
Price values from Mercari's application response are integer cents.
The Actor returns both priceCents and normalized price in USD.
Seller names and richer metrics are usually available only from item detail data. Search-only records may contain just a seller ID.
Category and condition availability depends on the listing. Optional values are not converted into empty placeholder strings.
Limits
- The Actor extracts public Mercari US data only.
- It does not log in, message sellers, buy items, or place offers.
- It does not bypass private account controls.
- It does not guarantee every Mercari result at every moment.
- Mercari can change its anonymous data interface or anti-bot policy.
- Result availability varies by keyword, filters, geography, and time.
- One run can save at most 1,000 unique listings.
- Detailed enrichment is slower than search-only extraction.
Legal and responsible use
This Actor collects public marketplace information. Use it only when you have a lawful purpose and follow applicable contracts, privacy rules, intellectual-property law, and Mercari's terms.
Do not use marketplace data for unlawful discrimination, harassment, stalking, fraud, or identity profiling. Do not treat seller metadata as a consumer report for credit, employment, insurance, tenancy, or another regulated eligibility decision.
Minimize retained personal data and secure exported datasets. You are responsible for your input, run frequency, storage, and downstream use.
Troubleshooting
Why did the run report a Mercari session block?
Confirm that the proxy input still uses the RESIDENTIAL group.
Retry with a fresh run after a short pause.
If the issue persists, inspect the run log for the HTTP status and contact support with the run URL.
Why are seller name and description missing?
Basic search responses contain fewer fields.
Enable includeDetails, or provide explicit item URLs.
Why are there fewer rows than maxItems?
The keyword may have fewer matching listings, price filters may exclude rows, or duplicate promoted records may have been removed.
maxItems is a cap, not a promised minimum.
Why was my URL rejected?
The Actor accepts only Mercari US /search/?keyword=... and /us/item/{id}/ URLs.
Use keywords for plain text searches.
Why did a price filter remove a listing?
When a minimum or maximum is active, unparseable prices fail closed. This prevents unknown-price records from silently crossing your boundary.
FAQ
Does the Actor need a Mercari account?
No. It uses Mercari's anonymous guest session for public listing data.
Can it collect sold listings?
Yes.
Set status to sold.
Can it scrape one listing?
Yes.
Paste the public Mercari US item URL in startUrls.
Does it download images?
It returns public image URLs. It does not copy image binaries into the dataset.
Can I schedule recurring monitoring?
Yes. Use an Apify schedule and store snapshots in your preferred destination.
Are results deduplicated?
Yes, within each run by Mercari item ID.
Is the Actor a Mercari API?
It is an independent Apify Actor that reads public Mercari application data. It is not endorsed by Mercari.
Related marketplace scrapers
- Mercari Japan Listings Scraper for the Japanese marketplace and JPY listing data.
- eBay Product Search Scraper for eBay product discovery and pricing research.
- Facebook Marketplace Scraper for public local marketplace listings where supported.
Choose the actor that matches the marketplace, geography, currency, and workflow you actually need.
Support
If a valid public Mercari US input fails, open an Actor issue from Apify Console. Include:
- the run URL;
- a redacted example input;
- the expected record or search behavior;
- whether basic or detailed mode was used;
- the approximate failure time.
Do not post private credentials or personal data in a public issue.