Poshmark Sold Listings Scraper - sold prices & dates
Pricing
from $4.00 / 1,000 sold listing delivereds
Poshmark Sold Listings Scraper - sold prices & dates
SOLD Poshmark listings as clean records: sold price & date, brand, size, condition. Filter by brand, category, keyword. First 25 free, then $0.004/record.
Pricing
from $4.00 / 1,000 sold listing delivereds
Rating
0.0
(0)
Developer
Lawrence Sundar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Poshmark Sold Listings & Price Comps
The comps resellers actually price against — SOLD Poshmark listings with sold price + sold date, by brand or category. Pennies per record.
Active asking prices tell you what sellers hope to get. Sold listings tell you what buyers actually paid — and when. This actor returns clean, sheet-ready sold comps from Poshmark's public sold feeds: sold price, sold date, brand, size, condition, and a direct link to every listing.
- $0.004 per record, first 25 records of every run free. 500 fresh Nike comps ≈ $1.90.
- Pure pay-per-event: no run-start fee. Tune your filters and re-run freely.
What you get
One flat record per sold listing — drop it straight into a spreadsheet, pricing model, or repricer:
| Field | Description |
|---|---|
id | Poshmark listing id |
title | Listing title |
sold_price | What it actually sold for |
currency | Listing currency (USD on poshmark.com) |
original_price | Seller's original price (null when the seller didn't set one) |
sold_at | Sold timestamp (when the listing's inventory flipped to sold) |
brand | Brand |
size | Size as displayed |
condition | nwt (new with tags) · used · null when not stated |
department | Women · Men · Kids · … |
category | Shoes · Dresses · Bags · … |
listing_url | Direct link to the listing page |
image_url | Cover photo |
seller_handle | Public seller username |
raw | Full original listing block (optional, off by default) |
Usage
- Default run (free): no input needed — the latest 25 sold Nike listings, $0.
- Sold comps for a brand:
brand: "lululemon athletica",maxItems: 200 - What do Dunk Lows actually sell for?
brand: "Nike",keyword: "dunk low",maxItems: 100 - Sold women's dresses over $50:
category: "Women-Dresses",minPrice: 50 - Brand within a category:
brand: "Coach",category: "Women-Bags"(brand feed, category-filtered)
Input reference
| Field | Type | Default | Notes |
|---|---|---|---|
brand | string | Nike (when nothing else given) | Brand name as on Poshmark |
category | string | — | Category page slug, e.g. Women-Dresses, Men-Shoes |
keyword | string | — | Case-insensitive title filter (applied client-side) |
size | string | — | Exact size, e.g. M, 10 |
minPrice / maxPrice | integer | — | Sold-price band, inclusive (USD) |
department | string | — | Women · Men · Kids · Home · … |
maxItems | integer | 25 | First 25 free, then $0.004/record |
includeRaw | boolean | false | Attach the full original listing block |
Give a brand and/or a category. When both are set, the brand's sold feed is fetched and the category filters it.
How it works (and what it deliberately doesn't do)
This actor reads Poshmark's public brand/category sold pages — the same pages any browser sees, no login, no private API:
- Robots-clean by design. Poshmark's
robots.txtdisallows its/searchand/apiendpoints — this actor never touches them. Keyword filtering therefore runs client-side over the fetched sold records instead of through Poshmark search. - Sequential, rate-limited fetching. One page at a time with a politeness delay. No hammering.
- No PII beyond the public seller handle. No buyer data exists on these pages at all.
- Sold means sold. Every record is individually verified as sold (
inventory.status = sold_outwith a sold timestamp) before it's delivered — an active listing is never charged or emitted.
Honest limitations
- Newest-first, up to ~5,000 per query. Poshmark caps any single feed at about 5,000 results; sorting is by recency of listing activity. For deep history, slice by category/size/price band across runs.
- No free-text search. Keyword matching is a client-side title filter over the brand/category feed you fetched (see robots posture above) — a keyword-only run without a brand or category is not supported.
- Sold price is the listing's final price. Poshmark does not publish accepted-offer amounts; where a sale closed via a private offer, the listed price is what the page reports.
original_priceis null when the seller never set one (about 40% of live records) — we don't invent a fake comp.- US site. Data comes from poshmark.com (USD).
FAQ
Why sold listings instead of active ones? Pricing against asks inflates your expectations. Sold comps are the number the market actually cleared at — the same reason eBay's "sold items" filter is the reseller standard.
Can I monitor continuously? Schedule the actor (e.g. daily) with your brand/filters; each run returns the newest sold listings first. Deduplicate downstream by id.
What if a brand has no sold listings? You get an empty (free) dataset and a warning in the log — check the brand's spelling as it appears on poshmark.com.