Poshmark Sold Listings Scraper - Mercari, Depop & Grailed
Pricing
from $1.28 / 1,000 listings
Poshmark Sold Listings Scraper - Mercari, Depop & Grailed
[Limited Launch Offer $1.50/1K] Poshmark sold listings plus Mercari US, Depop and Grailed in one schema: sold price comps, sold date, days to sell, brand, size, condition. Free resale comps stats.
Pricing
from $1.28 / 1,000 listings
Rating
0.0
(0)
Developer
Scrape With Me
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
38 minutes ago
Last modified
Categories
Share
Poshmark Sold Listings Scraper - Mercari, Depop & Grailed Price Comps
Get Poshmark sold listings and Mercari US, Depop and Grailed listings - real sold price comps with sold date and days to sell - in one run. Type a search like nike dunk low or lululemon align 25 and get sold listings and/or active listings from all four resale apps in the same format:
- Sold price and sold date, original price, and days to sell (listing date to sale).
- Title, brand, size, condition, new or used, category, shipping price when shown.
- Seller, likes, location, main photo, listing URL.
- A free price summary per search and marketplace: listing count, min / 25% / median / average / 75% / max price, median days to sell and the share of new items.
No login, no cookies, no browser - fast and cheap.
Why this one
- Four marketplaces, one schema. Compare what the same item sells for on Poshmark, Mercari, Depop and Grailed without merging four different exports.
- Real sold comps. Sold listings with the price they sold at and when, so you can price inventory, find arbitrage between apps and see how fast things move.
- Price statistics included. Every search ends with a summary row (median, quartiles, average, days to sell) - no spreadsheet needed for a quick comp.
- Filters that work on the marketplace side. Price range and sort order are sent to each site, so you don't pay for listings you filter out.
- Clean results. Results that only match one word of your search (filler that some apps add) are dropped.
Poshmark sold listings and Mercari US sold prices
Sold listings come straight from each marketplace's own search with the sold filter on: Poshmark "sold" items, Mercari US sold and in-transaction items, and Grailed sold items, each with the price it sold for. Depop lists only items for sale.
Resale price comps summary (median, quartiles, days to sell)
With includeSummary on (default), every search and marketplace gets one extra row with the listing count, min / 25% / median / average / 75% / max price, the median days to sell and the share of new items - a ready-made comp.
Use cases
- Resellers and flippers: price a pair, a bag or a jacket from recent sales before you list it.
- Sourcing / arbitrage: spot items selling for more on one app than another.
- Brand and market research: resale value, sell-through speed and the share of new-with-tags items for a brand or model.
- Run it on a schedule: weekly comps for a brand or model, sent to your repricing tool, sheet, BI tool or app through the API.
Input example
{"searchQueries": ["nike dunk low panda", "arcteryx beta ar"],"marketplaces": ["poshmark", "mercari", "depop", "grailed"],"listingStatus": "sold","sortBy": "newest","minPrice": 50,"maxPrice": 400,"maxResultsPerSearch": 100,"includeSummary": true}
listingStatus:sold(price comps),active(for sale now) orboth.sortBy:newest(recently sold / listed),relevance,priceLow,priceHigh.maxResultsPerSearchapplies to each keyword on each marketplace (and each status whenboth).
Output example
A listing row (real data):
{"type": "listing","marketplace": "mercari","status": "sold","id": "m94060806073","url": "https://www.mercari.com/us/item/m94060806073/","title": "Arc’teryx Beta AR Jacket Mens 2XL","brand": "Arc'teryx","size": "XXL (50-52)","condition": "New","isNew": true,"category": "Jackets","price": 400.0,"originalPrice": 450.0,"soldPrice": 400.0,"currency": "USD","soldAt": "2025-11-25T21:44:11Z","listedAt": "2025-06-27T23:40:05Z","daysToSell": 150.9,"sellerId": "331703238","imageUrl": "https://u-mercari-images.mercdn.net/photos/m94060806073_1.jpg?1751730594","imageCount": 1,"searchQuery": "arcteryx beta ar","scrapedAt": "2026-10-09T01:06:40Z"}
A summary row (one per search and marketplace, free):
{"type": "summary","marketplace": "mercari","status": "sold","searchQuery": "arcteryx beta ar","currency": "USD","listingCount": 15,"minPrice": 200.0,"p25Price": 216.0,"medianPrice": 250.75,"averagePrice": 268.17,"p75Price": 300.0,"maxPrice": 400.0,"medianDaysToSell": 36.1,"newShare": 0.6}
Every row has the same fields; a field a marketplace doesn't show is null (for example Mercari doesn't show seller usernames in search, Depop doesn't show listing dates). The dataset has two views: Listings and Price summary.
Run it on a schedule and connect it to your tools
Schedule: in Apify Console open Schedules → Create, pick this actor and your input, and set it to run every Monday at 07:00 (your time zone) for a fresh dataset on a fixed day. Each run returns the full, current result set as a new dataset.
Integrations (Actor → Integrations tab, no code):
- Google Sheets — append every run's rows to a sheet.
- Make, Zapier, n8n — start the actor from a scenario/zap/workflow and use the rows in the next steps.
- Webhook — get a POST to your endpoint when a run succeeds, then download the dataset.
- Slack / email — notify your team when a scheduled run finishes.
AI agents (MCP) — Claude, ChatGPT, Cursor, VS Code or any MCP client can run it as a tool: add the Apify MCP
server https://mcp.apify.com?actors=kalilfagundes.w/resale-sold-comps-scraper (sign in with your Apify account) and ask for the data in
plain language. The agent fills the input from the input schema and reads the dataset back.
API — call it from your code (pip install apify-client / npm i apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("kalilfagundes.w/resale-sold-comps-scraper").call(run_input={"searchQueries": ["nike dunk low","lululemon align leggings"],"listingStatus": "both","sortBy": "newest","maxResultsPerSearch": 60,"maxItems": 1000})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('kalilfagundes.w/resale-sold-comps-scraper').call({"searchQueries": ["nike dunk low","lululemon align leggings"],"listingStatus": "both","sortBy": "newest","maxResultsPerSearch": 60,"maxItems": 1000});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Pricing
Pay per event, platform usage included: one listing event per listing row. Summary rows are free. Higher Apify plans get lower prices (see the Pricing tab). Set a maximum cost per run in the run options; the actor stops cleanly when it is reached.
Limits
- Depop does not show sold items publicly, so Depop only returns active listings (with
listingStatusactiveorboth). - Grailed returns up to 1,000 listings per search (its search limit); split a broad search into narrower ones for more.
- Sold date: Poshmark and Mercari give the time the listing changed to sold; Grailed gives the sale time.
- Prices are in USD (US marketplaces). Mercari here is mercari.com (US), not Mercari Japan.
Related actors
- Walmart Product Search Scraper - Prices, Ratings, Sellers
- Amazon Price Tracker & Product Scraper - ASIN, BSR, 23 Sites
- TikTok Shop Product Data Scraper - Sales, Prices & Reviews
Feedback
If this actor saves you time, a quick rating on its Store page helps other people find it. Something not working? Open an issue in the Issues tab and it gets fixed fast.