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
8 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 Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee charged when a run starts. | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
item | Charged per sold Poshmark listing saved to the dataset. | $0.575 / 1,000 | $0.5 / 1,000 | $0.39 / 1,000 | $0.3 / 1,000 | $0.2 / 1,000 | $0.14 / 1,000 |
Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.
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 search URLs when you already built a filtered search. Your filters are retained and the Actor always requests sold listings. | [{"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 |
| Maximum run time | maxRunSeconds | Stop cleanly before the platform timeout and save unfinished searches for a later run. | 270 |
| Resume search URLs | resumeUrls | Continue from URLs saved in PENDING_URLS after a partial run. | ["https://poshmark.com/search?query=nike%20shoes&type=listings&availability=sold_out&max_id=..."] |
| 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
Claude CLI setup:
$claude mcp add apify-poshmark-sold-listings "https://mcp.apify.com/?tools=fetch_cat/poshmark-sold-listings-scraper"
JSON config:
{"mcpServers": {"apify-poshmark-sold-listings": {"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.
Support
Open an issue on the Actor page with enough detail to reproduce the problem:
- Input JSON: the query, URLs, limits, and proxy settings you used.
- Expected output: the sold listings or fields you expected to receive.
- Actual output: the missing rows, empty fields, error message, or dataset sample you received.
- Reproducible public URL: a public Poshmark sold-search URL that shows the listings in a browser.
Include your Apify run ID so support can inspect logs and the saved run summary.
Privacy and data handling
This Actor only requests the permissions needed to run the input you provide. It uses your input (such as URLs, search terms, identifiers, filters, and limits) only to fetch the requested public data from the relevant source site or API for this Actor, then writes results to your Apify dataset/key-value store.
Data may pass through Apify platform services and Apify Proxy during the run, and requests are sent only to the target site or public data provider required for this Actor's results. FetchCat does not send your inputs or outputs to advertising networks, data brokers, or model-training services, and does not retain run data outside Apify storage after the run except when you explicitly share run details for transient support debugging.
You are responsible for using this Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs. Review the output before storing, sharing, or combining it with other data.