Poshmark Sold Listings Scraper
Pricing
from $0.30 / 1,000 sold listing saveds
Poshmark Sold Listings Scraper
Scrape sold Poshmark listings for resale comps. Export sold price, brand, size, category, seller, image, and URL data for pricing research.
Pricing
from $0.30 / 1,000 sold listing saveds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape sold Poshmark listings for resale comps. Export sold price, brand, size, category, seller, image, and URL data for pricing research.
At a glance
- Input: Search query, optional Poshmark sold-listings URLs, result limit, sort order, page cap, and optional proxy settings.
- Output: One dataset row per public sold listing with sold price, title, brand, size, category, seller, image URL, listing URL, and source query.
- Best for: Resale comps, pricing research, inventory sourcing, marketplace analysis, and repeatable price-monitoring workflows.
- Pricing unit: A start event per run plus one
itemevent for each saved sold-listing row. - Login required: No. The Actor reads public Poshmark sold-search results only.
Ready-to-run examples
- Coach Tabby sold comps: collect recent sold prices for Coach Tabby bags.
- Lululemon leggings sold listings: export a small resale-pricing dataset for a common apparel search.
- Nike shoes sold listings: compare sold shoe listings with item URLs and seller metadata.
What can it do?
Poshmark Sold Listings Scraper collects public sold-listing results from Poshmark search pages and turns them into a clean dataset. Instead of manually opening pages and copying sold prices, you can run one actor and export the results to CSV, Excel, JSON, Google Sheets, or your own API pipeline.
Use it to answer questions like:
- Sold-price research: What did similar items actually sell for?
- Brand and size demand: Which brands, sizes, and categories appear in recent sold results?
- Seller visibility: Which sellers are visible in the public sold-search data?
- List-price comparison: How do sold prices compare with original list prices?
- Title and category analysis: Which listing words and categories appear most often?
Who is it for?
Resellers and flippers use the actor before buying inventory or pricing listings. Search a product name and review sold comps without copying data by hand.
Ecommerce analysts use it to monitor secondhand demand, compare resale price ranges, and build trend reports for brands, categories, or styles.
Pricing teams use sold listings as real-market evidence when deciding price bands for pre-owned apparel, shoes, accessories, and collectibles.
Researchers and data teams use the exported dataset for dashboards, enrichment, and historical market studies.
Why use this Actor?
Manual Poshmark research is slow. A single sold-comps workflow can involve searching, filtering, opening listings, recording prices, copying seller names, and cleaning everything in a spreadsheet.
This actor gives you:
- Faster sold-comps collection without manually opening and copying each listing.
- Structured output ready for spreadsheets, dashboards, and pricing models.
- Traceable records with listing IDs and public listing URLs.
- Price fields for sold price and original/list price when available.
- Marketplace metadata such as brand, size, category, department, and seller.
- Image URLs for visual review and item matching.
- Repeatable automation through Apify schedules, API, webhooks, and MCP-compatible agents.
Output fields
| Field | Description |
|---|---|
title | Poshmark listing title |
url | Public listing URL |
listingId | Unique Poshmark listing identifier |
soldPrice | Sold/listing price shown in the sold result |
currency | Currency code, usually USD |
originalPrice | Original/list price when available |
brand | Brand name |
size | Listing size |
category | Category name |
department | Department such as Women, Men, or Kids |
sellerUsername | Seller handle when available |
sellerDisplayName | Seller display name when available |
status | Listing status |
inventoryStatus | Inventory status, normally sold_out |
imageUrl | Main listing image URL |
createdAt | Listing creation timestamp when available |
updatedAt | Listing update timestamp when available |
soldAt | Sold/status timestamp when available |
sourceQuery | Search query that produced the item |
scrapedAt | Timestamp when the record was extracted |
Pricing
This Actor uses pay-per-event pricing. Each run charges a start event of $0.005, then an item event of $0.0005 for every saved sold-listing row.
That is about $0.50 per 1,000 saved listings, plus the small run-start charge. Error/status rows that are saved to the dataset can count as paid rows, so test with a small maxItems value before a large export.
How to run it
- Open Poshmark Sold Listings Scraper.
- Enter a search query, for example
lululemon leggings. - Set Maximum sold listings to a small number for the first run.
- Keep proxy disabled unless you see blocking.
- Click Start.
- Download the dataset as CSV, Excel, JSON, or connect it to your workflow.
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Search query | query | Brand, model, item type, or phrase to search in sold listings. | nike dunk low |
| Poshmark search URLs | startUrls | Optional public Poshmark sold-listings URLs when you already built a filtered search. | [{"url":"https://poshmark.com/search?query=nike%20dunk%20low&availability=sold_out"}] |
| Maximum sold listings | maxItems | Cap saved rows for testing, cost control, or research exports. | 50 |
| Sort order | sortBy | Optional Poshmark sort order for search pages. | added_desc |
| Maximum search pages | maxPages | Safety cap for pagination; each search page usually has about 48 listings. | 3 |
| Proxy configuration | proxyConfiguration | Optional proxy settings; leave disabled unless a public search is blocked. | {"useApifyProxy":false} |
Use specific product names for tighter comps, such as lululemon align leggings, coach tabby bag, or carhartt jacket.
Example input
{"query": "nike dunk low","maxItems": 50,"sortBy": "added_desc"}
Example output
{"title": "Nike Men's Light Gray Polo Shirt","url": "https://poshmark.com/listing/Nike-Mens-Light-Gray-Polo-Shirt-...","listingId": "683cfcb6...","soldPrice": 5,"currency": "USD","originalPrice": 0,"brand": "Nike","size": "M","category": "Shirts","department": "Men","sellerUsername": "example_seller","inventoryStatus": "sold_out","imageUrl": "https://di2ponv0v5otw.cloudfront.net/...jpg","soldAt": "2026-06-11T02:34:51-07:00","sourceQuery": "nike shoes","scrapedAt": "2026-06-14T12:00:00.000Z"}
Tips for better sold comps
- Use specific product names for tighter comps.
- Include model numbers when available.
- Compare several related searches instead of relying on one broad keyword.
- Start with 25 records, inspect quality, then scale up.
- Export CSV for quick spreadsheet analysis.
- Keep URLs in your dataset so you can audit examples later.
Common workflows
Resale pricing check
Search the exact item name, export 25-100 sold comps, remove outliers, and use the median sold price as a pricing anchor.
Brand demand report
Run weekly searches for a brand and track sold price ranges, categories, and sizes over time.
Inventory sourcing
Before buying a lot of used items, search likely product names and compare recent sold prices against your expected cost.
Market dashboard
Schedule recurring runs and send results into Google Sheets, BigQuery, Airtable, or a BI tool.
AI workflow example
Goal: estimate sold-comps price ranges for resale inventory.
Input:
{"query": "nike dunk low","maxItems": 50,"sortBy": "added_desc"}
Prompt to use with Claude / ChatGPT / MCP: "Scrape 50 sold Poshmark comps for Nike Dunk Low. Summarize median, low/high price, common sizes/colors from titles, and source URLs for outliers."
Follow-up automation:
- Schedule: Daily or weekly comps refresh for tracked brands and models.
- Export: Sheets, pricing model, inventory tool, or Slack resale alerts.
- Guardrail: Use only public sold-listing data returned by the actor; do not infer private buyer or seller information.
Integrations
Apify datasets can connect to many tools:
- Google Sheets for spreadsheet workflows
- Make or Zapier for no-code automations
- Airtable for lightweight databases
- BigQuery or Snowflake for analytics
- Webhooks for run-complete notifications
- API clients for custom apps
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/poshmark-sold-listings-scraper').call({query: 'nike shoes',maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_API_TOKEN')run = client.actor('fetch_cat/poshmark-sold-listings-scraper').call({'query': 'nike shoes','maxItems': 25,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~poshmark-sold-listings-scraper/runs?token=YOUR_APIFY_API_TOKEN" \-H "Content-Type: application/json" \-d '{"query":"nike shoes","maxItems":25}'
MCP and AI agents
Use this actor from AI tools through Apify MCP.
MCP URL:
https://mcp.apify.com/?tools=fetch_cat/poshmark-sold-listings-scraper
Example prompts:
- "Find 50 sold Poshmark comps for Nike Dunk Low and summarize the price range."
- "Scrape sold listings for Coach Tabby bag and identify common sizes/colors in the titles."
- "Run Poshmark sold comps for lululemon leggings and export the dataset URL."
Legality and responsible use
This actor is designed for publicly available information. You are responsible for using the data lawfully, respecting applicable terms, and avoiding personal-data misuse. Do not use scraped data for spam, harassment, or decisions that require regulated data handling.
FAQ
Does it require a Poshmark account?
No. It extracts public sold-search results that are visible without logging in.
Does it scrape active listings too?
This actor is focused on sold listings. Use a sold-listings URL or query and it requests sold-out availability.
Why did my run return fewer results than requested?
The source may have fewer matching sold listings, or Poshmark may stop pagination for that query. Try a broader keyword or increase the page cap.
Why are some fields empty?
Not every public search result includes every optional value. The actor keeps the record and fills unavailable fields with null.
Should I enable proxies?
Usually no. Enable Apify Proxy only if your run is blocked, and test with a small limit before scaling.
Troubleshooting
My query returns no data
Check the query on Poshmark manually and confirm sold results exist. Try a simpler phrase such as brand plus item type.
My run is slow
Large result limits require multiple search pages. Reduce maxItems for quick checks or keep maxPages moderate.
I need extra listing detail fields
This first version focuses on search-result fields. If you need detail-page enrichment, contact the actor owner or open a feature request.
Data quality notes
Sold prices and timestamps are taken from public listing/search result data. Marketplaces can change display formats, category labels, or pagination behavior. Keep important exports and rerun tests periodically for critical workflows.
Related scrapers
- Vinted Search Scraper - compare secondhand marketplace demand and resale listings.
- Walmart Products Scraper - track retail prices and product availability for price comparisons.
- Shopify Products Scraper - collect ecommerce product catalogs for market research.
- AliExpress Products Scraper - research supplier prices and product ideas.
- Craigslist Classifieds Scraper - compare resale comps with local classified listings.
Changelog
0.1
Initial version with keyword search, sold-listing pagination, structured output, optional search URLs, and optional proxy support.
Support
Open an issue on the Actor page with your run ID, query or search URL, and the field that looks wrong if a public sold-search result stops parsing.