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.

Data fields

FieldTypeDescription
titlestring | nullValue exported as title.
urlstringValue exported as url.
listingIdstringValue exported as listingId.
soldPricenumber | nullValue exported as soldPrice.
currencystring | nullValue exported as currency.
originalPricenumber | nullValue exported as originalPrice.
brandstring | nullValue exported as brand.
sizestring | nullValue exported as size.

Input preview

querySearch query
startUrlsPoshmark search URLs
maxItemsMaximum sold listings
sortBySort order
maxPagesMaximum search pages
proxyConfigurationProxy configuration

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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 item event for each saved sold-listing row.
  • Login required: No. The Actor reads public Poshmark sold-search results only.

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.

How to run it

  1. Open Poshmark Sold Listings Scraper.
  2. Enter a search query, for example lululemon leggings.
  3. Set Maximum sold listings to a small number for the first run.
  4. Keep proxy disabled unless you see blocking.
  5. Click Start.
  6. Download the dataset as CSV, Excel, JSON, or connect it to your workflow.

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 ApifyClient

client = 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().items
print(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.

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.

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.

Common questions

Questions and answers reused from the canonical actor README.

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.