# Poshmark Scraper \[Only $0.95💰] | Price Drops | Seller Data (`ahmed_jasarevic/poshmark-scraper`) Actor

Extract Poshmark resale listings and seller stats: brand, size, price, condition, likes, price drops and seller reputation. Find underpriced items, monitor resale prices and research fashion trends for reselling.

- **URL**: https://apify.com/ahmed\_jasarevic/poshmark-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.95 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Poshmark Scraper — Extract Resale Listings & Seller Stats For Sourcing Research

Scrape Poshmark, the largest US fashion resale marketplace, for **listing and seller data**: prices, original retail prices, brands, sizes, condition, engagement metrics, photos, full descriptions and detailed seller statistics. Built for **undervalued-item sourcing, resale price monitoring and secondhand fashion market research**.

### Main Use Cases

- **Undervalued-item sourcing** — sort by `price_asc` or `price_drop` to surface underpriced listings before other resellers
- **Resale price monitoring** — track asking prices, price drops and original-vs-current price gaps over time
- **Fashion trend tracking** — schedule keyword or category searches and compare results to spot rising brands and styles
- **Brand monitoring** — measure listing counts, price distributions and dominant sellers for any brand (Lululemon, Nike, Coach, vintage Levi's…)
- **Seller intelligence** — optional seller stats (followers, items sold, ratings, location, account age) for partnership or competitor analysis
- **Secondhand market research** — build your own dataset of the US resale fashion market for reports, dashboards or price indexes

### How It Works

The actor runs a **CheerioCrawler** (plain HTTP, no headless browser) over Poshmark's server-side rendered pages. It parses the `window.__INITIAL_STATE__` JSON blob embedded in each page — the same structured data Poshmark renders for the browser — and follows pagination automatically via the site's `next_max_id` cursor. With `scrapeListingDetails` enabled it additionally opens each listing's detail page to capture the full description, price-drop history and the seller profile with statistics.

No login, no account, no API key and no browser: requests go through the Apify proxy by default.

### Extract Poshmark Listings For Undervalued Item Sourcing

Every listing record includes the fields resellers need to evaluate an item quickly:

| Field | Description |
|-------|-------------|
| `title`, `brand`, `size` | Item identity |
| `price`, `originalPrice` | Current asking price and original retail price (gap = markup signal) |
| `condition` | Condition code (`nwt`, `nwot`, `ug`, …) |
| `likeCount`, `commentCount`, `shareCount` | Buyer-demand and engagement signals |
| `department`, `category`, `categoryFeatures` | Catalog taxonomy (Women, Men, Kids, Home…) |
| `colors`, `styleTags` | Item attributes |
| `coverShotUrl`, `pictureUrls` | All listing photos |
| `seller` | Username, display handle, full name and avatar |
| `listingUrl` | Canonical Poshmark listing URL |
| `inventoryStatus`, `status`, `hasOffer`, `poshPassEligible` | Availability and listing state |
| `createdAt`, `firstPublishedAt` | Listing age |

With `scrapeListingDetails` on, each listing also emits a `listing_detail` row containing the **full sellerProfile**: city/state, gender, account age, last active, taste-maker flag, and seller statistics — followers, following, posts, items sold, orders shipped, 5-star rating count, shares, comments and likes — plus `priceDrop` and `meta`. All of it comes from the listing detail page itself: no extra per-seller requests.

### Monitor Poshmark Price Drops & New Listings

Poshmark sellers manually lower prices to attract buyers, and desirable items in popular brands and sizes often sell within minutes of a drop. Set `sortBy` to `price_drop` or `price_asc` and schedule the actor a few times a day: you get a live feed of recently dropped and lowest-priced listings, with seller reliability stats attached — the same workflow the fastest sourcing teams run manually.

### Poshmark Product Research: Brands, Sizes & Resale Prices

Search any keyword (`nike dunk`, `lululemon align leggings`, `vintage levis 501`, `coach bag`), filter by department, or paste a category browse URL such as `https://poshmark.com/category/Women-Shoes` to cover an entire category. The actor returns up to ~5,000 listings per query (Poshmark's own search cap) as clean structured JSON.

### Input: Configure Your Poshmark Search

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `searchQueries` | array of strings | see note | — | Keywords to search, e.g. `nike`, `levis 501`, `lululemon align`. Each keyword becomes a separate search. |
| `departments` | array of strings | — | `[]` | Department filter: Women, Men, Kids, Home… Leave empty for all. |
| `categoryUrls` | array of strings | see note | — | Category browse URLs, e.g. `https://poshmark.com/category/Women-Shoes`. Use instead of keywords to scrape a whole category. |
| `sortBy` | string | — | `relevance_v2` | One of `relevance_v2`, `added_desc`, `price_asc`, `price_desc`, `price_drop`, `like_count` |
| `maxItems` | integer | — | `100` | Maximum number of listings to scrape across all searches |
| `scrapeListingDetails` | boolean | — | `true` | Fetch each listing's detail page for the full description, price drops and seller stats. Cost: one extra request per listing (billed as detail scraping). Disable for a lighter listing-only run. |
| `proxyConfiguration` | object | — | `{ "useApifyProxy": true }` | Apify proxy (recommended for larger runs) |

At least one of `searchQueries` or `categoryUrls` must be set for a meaningful run.

### Output: Listing Records With Prices, Sellers & Engagement

Each dataset row is a JSON object. A `listing` row carries the full listing record (see table above); with detail scraping enabled, each listing additionally produces a `listing_detail` row with the complete `sellerProfile`, `priceDrop` and `meta`.

Every output row carries a `detailsScraped` boolean: `true` means the row came from a detail-fetched listing (the paid-up detail fetch), `false` means a basic listing row only. Count rows where `detailsScraped === true` if you bill per detail in your own system.

You can download the dataset as JSON, HTML, CSV or Excel, or pull it via the Apify API.

### Example Input

```json
{
  "searchQueries": ["nike dunk", "lululemon align leggings"],
  "departments": ["Women", "Men"],
  "sortBy": "price_drop",
  "maxItems": 100,
  "scrapeListingDetails": true,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

### Example Output

```json
{
  "type": "listing",
  "id": "6a901f3995154fcc8cac0dd7",
  "title": "NWB NIKE CORTEZ SNEAKERS",
  "brand": "Nike",
  "size": "7",
  "price": 58,
  "originalPrice": 0,
  "condition": "nwt",
  "likeCount": 7,
  "commentCount": 0,
  "shareCount": 24,
  "description": "Low-top Nike trainer in deep green with vibrant pink swoosh...",
  "department": "Women",
  "category": "Shoes",
  "categoryFeatures": ["Sneakers"],
  "colors": ["Green", "Pink"],
  "styleTags": ["Sporty", "Casual", "Sneaker"],
  "coverShotUrl": "https://di2ponv0v5otw.cloudfront.net/posts/...",
  "pictureUrls": ["https://di2ponv0v5otw.cloudfront.net/posts/..."],
  "seller": {
    "id": "578269f8d6677663156a2fb1",
    "username": "shopdctrends",
    "displayHandle": "shopdctrends",
    "fullName": "Desiree Catizone",
    "pictureUrl": "https://di2ponv0v5otw.cloudfront.net/users/..."
  },
  "listingUrl": "https://poshmark.com/listing/NWB-NIKE-CORTEZ-SNEAKERS-6a901f3995154fcc8cac0dd7",
  "createdAt": "2026-08-27T04:27:53-07:00",
  "firstPublishedAt": "2026-08-27T04:27:57-07:00",
  "status": "published",
  "inventoryStatus": "available",
  "hasOffer": true,
  "poshPassEligible": false
}
```

### Integrations And Automation For Recurring Price Monitoring

- **Apify API** — run the actor programmatically from any application
- **Webhooks** — get a push notification whenever a run finishes and new data lands in your dataset
- **Zapier / Make / Pipedream** — connect dataset output to Google Sheets, Slack, Notion or databases
- **Scheduled runs** — run daily for price-drop and new-listing alerts, weekly for trend and brand monitoring. Scheduled runs also strengthen the actor's Apify Store recommendation signals.

Recommended schedule: a few times per day for sourcing/price-drop monitoring (deals disappear in minutes), daily for trend tracking, weekly for market research snapshots.

### Related Actors

For a complete resale-fashion research stack, also see:

- [Poshmark Scraper — Fashion Resale Listings](https://apify.com/jongoose/poshmark-scraper) — Poshmark listing extraction via the site's public JSON search data (listing-only, no seller detail)
- [Poshmark Sold Listings Scraper](https://apify.com/weltverbenzer/poshmark-sold-listings-scraper) — realized sold prices and markdown % for sold comps research
- [Kleinanzeigen Scraper](https://apify.com/ahmed_jasarevic/kleinanzeigen-scraper) — German secondhand marketplace data for cross-market comparisons
- [Willhaben Scraper](https://apify.com/ahmed_jasarevic/willhaben-scraper) — Austrian classifieds and marketplace listings
- [Chrono24 Scraper](https://apify.com/ahmed_jasarevic/chrono24-scraper) — luxury watch resale market data

### FAQ

#### Why use this actor instead of the official Poshmark API?

Poshmark does not offer a public API for listing data. Its platform API is restricted to approved brand partners, and there is no developer program for resale marketplaces. This actor is a stable **Poshmark API alternative**: it reads the same server-rendered JSON data a browser receives and returns it as clean, structured output — no account, no API key, no approval process.

#### What are alternatives to this actor / to Poshmark data?

For Poshmark data specifically, comparable Apify actors include [jongoose's Poshmark scraper](https://apify.com/jongoose/poshmark-scraper) (listing-only) and [weltverbenzer's sold-listings scraper](https://apify.com/weltverbenzer/poshmark-sold-listings-scraper) (realized prices). For other fashion resale marketplaces, resellers commonly research Mercari, Depop, eBay and Vinted — this actor covers Poshmark only. Off-platform, scraping APIs like Bright Data sell Poshmark datasets per record, typically at higher per-listing prices.

#### How can I find underpriced items on Poshmark?

Set `sortBy` to `price_asc` to surface the cheapest listings first, or `price_drop` to see recently dropped prices. Combine with the `originalPrice` field (markup gap) and seller stats (followers, items sold, ratings) to filter for reliable sellers offering genuine deals. Large gaps between current and original price on desirable brands (Lululemon, Nike, vintage Levi's) are the standard sourcing signal.

#### How can I track what items actually sell for on Poshmark?

This actor extracts active listings with current asking prices and price-drop history per item. For realized **sold comps** — what items actually sold for, with markdown % — pair it with the [Poshmark Sold Listings Scraper](https://apify.com/weltverbenzer/poshmark-sold-listings-scraper), which targets Poshmark's sold listings directly.

#### How much does it cost to scrape Poshmark?

The actor is **pay-per-event**: an actor-start event (~$0.005, one event per GB of memory) plus $0.00095 per basic listing and $0.002 per detail-fetched listing (which includes the full seller profile). A run of 100 basic listings therefore costs about $0.10 in listing events. Free Apify accounts get a capped preview run (10 items); paid accounts run up to your `maxItems` limit.

#### Is scraping Poshmark legal?

The actor accesses only publicly available pages — the server-rendered data Poshmark sends to any visitor. It performs no login, no CAPTCHA solving and no access to non-public data. You are responsible for complying with Poshmark's Terms of Service and applicable laws in how you use the extracted data. See the disclaimer below.

#### Can I scrape a whole Poshmark category?

Yes. Pass a category browse URL such as `https://poshmark.com/category/Women-Shoes` in `categoryUrls` and the actor covers the whole category (up to Poshmark's ~5,000-listing search cap), or use one URL per category for multiple categories in a single run.

#### Do I need a Poshmark account or API key?

No. Both search and category pages are public and server-rendered. The actor reads the embedded JSON directly — no login, no API key required.

#### Which Poshmark brands are worth researching?

Reseller playbooks consistently name athleisure (Lululemon, Nike, Athleta, Alo Yoga), premium denim (vintage Levi's, Madewell, Citizens of Humanity) and mid-tier designer bags (Coach, Kate Spade, Michael Kors) as the categories with strong margins on Poshmark. This actor lets you verify those assumptions with live data: listing counts, price distributions and seller stats per brand.

#### How fast is the actor?

Because it uses plain HTTP (CheerioCrawler) instead of a browser, a basic run is fast and cheap — roughly 48 listings per request from each search page. Detail mode adds one request per listing.

#### How can I export Poshmark data to CSV or Excel?

Open the actor's dataset after a run and download it as JSON, HTML, CSV or Excel, or use the Apify API to stream results into your own pipeline, spreadsheets or dashboards.

#### Which Poshmark metrics indicate buying demand?

`likeCount` (and `sortBy: like_count` for most-liked first) is a widely used proxy for buyer demand per listing, alongside comment and share counts. Seller stats (items sold, orders shipped, ratings) indicate how reliably a seller moves inventory.

### SEO Keywords

poshmark scraper, poshmark listings scraper, scrape poshmark listings, poshmark resale data, poshmark price drop monitoring, find underpriced items poshmark, poshmark reseller research, poshmark api alternative, no official poshmark api, secondhand fashion data, resale market research, lululemon resale price, nike dunk resale price, vintage levis poshmark, poshmark seller stats, poshmark category scraper, poshmark brand monitoring, poshmark clothing data, poshmark sneaker prices, poshmark data export csv, resale price monitoring, poshmark sold comps, fashion trend tracking, poshmark closet analytics

### For AI Agents & LLM Apps

**Purpose:** Returns structured Poshmark resale-fashion listings (title, brand, size, price, originalPrice, condition, engagement, photos, seller) plus optional listing-detail rows with the full seller profile and price-drop history — for sourcing, price monitoring and trend research.

**Minimal working input:**

```json
{
  "searchQueries": ["nike"],
  "maxItems": 10,
  "scrapeListingDetails": false
}
```

**Variant inputs:** set `sortBy` to `price_drop` or `price_asc` for deal-hunting; use `categoryUrls` (e.g. `https://poshmark.com/category/Women-Shoes`) instead of keywords to cover a whole category; enable `scrapeListingDetails: true` for full seller statistics per listing (adds one request per listing).

**Output fields (`listing` rows):** `type`, `id`, `title`, `brand`, `size`, `price`, `originalPrice`, `condition`, `likeCount`, `commentCount`, `shareCount`, `description`, `department`, `category`, `categoryFeatures`, `colors`, `styleTags`, `coverShotUrl`, `pictureUrls`, `seller{id,username,displayHandle,fullName,pictureUrl}`, `listingUrl`, `createdAt`, `firstPublishedAt`, `status`, `inventoryStatus`, `hasOffer`, `poshPassEligible`.

**Output fields (`listing_detail` rows):** everything above plus `sellerProfile{city,state,gender,accountAgeYears,lastActive,tasteMakerFlag,followers,following,posts,itemsSold,ordersShipped,ratingCount5Star,shares,comments,likes}`, `priceDrop{...}`, `meta{...}`.

**Behaviors an agent should know:**

- `scrapeListingDetails` defaults to `true` in the input schema — leaving it unset bills one detail-fetch per listing. Set it to `false` explicitly for cheap listing-only runs.
- `maxItems` defaults to `100`; it caps the total number of listings across all searches.
- `sortBy` accepts only: `relevance_v2`, `added_desc`, `price_asc`, `price_desc`, `price_drop`, `like_count`.
- `departments` filters to (e.g.) Women, Men, Kids, Home; leave empty for all departments.
- Each output row has a `detailsScraped` boolean (`true` = row came from a detail-fetched listing). Count rows where `detailsScraped === true` to reconcile detail-fetch billing.
- Poshmark caps search results at roughly 5,000 listings per query; the actor respects that cap.
- Run cost model: ~$0.005 start event + $0.00095 per basic listing + $0.002 per detail-fetched listing.

### Legal & Compliance Disclaimer

This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by Poshmark Inc.** It accesses only information that is publicly available on poshmark.com — it performs no login, no CAPTCHA solving and no access to non-public or login-gated data.

Users are responsible for complying with Poshmark's Terms of Service and applicable law in their use of the extracted data. Listing output may include publicly displayed seller information (username, display name and, in detail mode, city/state and account statistics); where that data relates to identifiable individuals, processing should comply with applicable data-protection law (e.g. CCPA for California residents). This README provides factual information about what the actor does; it does not constitute legal advice.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Poshmark (e.g. "nike", "levis 501", "lululemon align"). Each keyword becomes a separate search.

## `departments` (type: `array`):

Departments to filter by (Women, Men, Kids, Home, etc.). Leave empty to search all departments.

## `categoryUrls` (type: `array`):

Poshmark category pages to browse, e.g. https://poshmark.com/category/Women-Shoes or https://poshmark.com/category/Men-Jackets-Coats. Use these instead of keywords to scrape an entire category.

## `sortBy` (type: `string`):

How to sort search results.

## `maxItems` (type: `integer`):

Maximum number of listings to scrape across all searches.

## `scrapeListingDetails` (type: `boolean`):

Fetch each listing's detail page for the full description, price drops and seller stats (city/state, account age, followers, items sold, ratings). Each listing costs one extra request and is billed as detail scraping. Disable for a lighter, listing-only run.

## `proxyConfiguration` (type: `object`):

Proxy settings. Apify proxy is recommended for larger runs.

## Actor input object example

```json
{
  "searchQueries": [
    "nike",
    "levis 501"
  ],
  "departments": [
    "Women",
    "Men"
  ],
  "categoryUrls": [
    "https://poshmark.com/category/Women-Shoes"
  ],
  "sortBy": "relevance_v2",
  "maxItems": 100,
  "scrapeListingDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing scraped Poshmark listing and listing\_detail records

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "nike",
        "levis 501"
    ],
    "departments": [
        "Women",
        "Men"
    ],
    "categoryUrls": [
        "https://poshmark.com/category/Women-Shoes"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/poshmark-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": [
        "nike",
        "levis 501",
    ],
    "departments": [
        "Women",
        "Men",
    ],
    "categoryUrls": ["https://poshmark.com/category/Women-Shoes"],
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/poshmark-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "nike",
    "levis 501"
  ],
  "departments": [
    "Women",
    "Men"
  ],
  "categoryUrls": [
    "https://poshmark.com/category/Women-Shoes"
  ]
}' |
apify call ahmed_jasarevic/poshmark-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/poshmark-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/TrgANcYbRsDUn7MGc/builds/l9OpTiASZaQN96bUf/openapi.json
