Poshmark Sold Listings Scraper avatar

Poshmark Sold Listings Scraper

Pricing

from $0.30 / 1,000 sold listing saveds

Go to Apify Store
Poshmark Sold Listings Scraper

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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

Ready-to-run examples

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

FieldDescription
titlePoshmark listing title
urlPublic listing URL
listingIdUnique Poshmark listing identifier
soldPriceSold/listing price shown in the sold result
currencyCurrency code, usually USD
originalPriceOriginal/list price when available
brandBrand name
sizeListing size
categoryCategory name
departmentDepartment such as Women, Men, or Kids
sellerUsernameSeller handle when available
sellerDisplayNameSeller display name when available
statusListing status
inventoryStatusInventory status, normally sold_out
imageUrlMain listing image URL
createdAtListing creation timestamp when available
updatedAtListing update timestamp when available
soldAtSold/status timestamp when available
sourceQuerySearch query that produced the item
scrapedAtTimestamp 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

  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.

Input configuration

SettingJSON keyUse it forExample
Search queryqueryBrand, model, item type, or phrase to search in sold listings.nike dunk low
Poshmark search URLsstartUrlsOptional 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 listingsmaxItemsCap saved rows for testing, cost control, or research exports.50
Sort ordersortByOptional Poshmark sort order for search pages.added_desc
Maximum search pagesmaxPagesSafety cap for pagination; each search page usually has about 48 listings.3
Proxy configurationproxyConfigurationOptional 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 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.

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.

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.