Mercari US Listings Scraper avatar

Mercari US Listings Scraper

Pricing

from $0.08 / 1,000 mercari listings

Go to Apify Store
Mercari US Listings Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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?

FieldDescription
itemIdStable Mercari item identifier
itemUrlCanonical public Mercari US item URL
sourceUrlSearch or item URL that produced the record
searchKeywordKeyword used for a search result
titlePublic listing title
descriptionPublic description when detail enrichment is used
priceCurrent price normalized to USD
priceCentsOriginal integer price in cents
originalPriceOriginal USD price when available
conditionNew, like new, good, fair, or poor
brandPublic brand name
categoryMercari category name
sizeItem size when applicable
statusMercari listing status
isSoldNormalized sold-state flag
likesPublic like count when available
imageUrlPrimary image URL
imageUrlsAll returned image URLs
sellerIdPublic Mercari seller ID
sellerNamePublic seller display name on detailed records
sellerSalesCountPublic sales count when exposed
sellerListingsCountPublic listed-item count when exposed
sellerVerifiedPublic verification signal when exposed
scrapedAtUTC 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

  1. Open the Actor input page.
  2. Add one or more phrases to Search keywords.
  3. Optionally paste Mercari search or item URLs.
  4. Choose active, sold, or all listing status.
  5. Set a small Maximum listings value for the first run.
  6. Leave the US residential proxy enabled.
  7. Click Start.
  8. 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:

  • active for items currently offered;
  • sold for sold and completed results;
  • all for 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:

  1. save a narrow keyword and price range;
  2. schedule the Actor every few hours or daily;
  3. write output to Google Sheets, a database, or a webhook;
  4. deduplicate snapshots by itemId;
  5. compare price, status, and updatedAt across snapshots;
  6. 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 ApifyClient
client = 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().items
print(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.

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.

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.