# Poshmark Listings Scraper (`shahidirfan/poshmark-listings-scraper`) Actor

Harvest Poshmark listings at scale, extract prices, seller data, photos & reviews. Export JSON/CSV for market research, competitive analysis & resale insights. Built for fashion resellers, analysts & ecommerce teams.

- **URL**: https://apify.com/shahidirfan/poshmark-listings-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Listings Scraper

Extract listing search data from Poshmark and build clean, structured datasets for market research, pricing analysis, and trend monitoring. Collect listing titles, brands, prices, sizes, condition data, images, and listing links at scale.

---

### Features

- **Multi-URL support** - Run from search, brand, or category Poshmark URLs.
- **Keyword pattern support** - Works with single words, phrases, and multi-term queries.
- **Automatic pagination** - Continues through result pages until your target count is reached.
- **Stable pagination guards** - Stops safely when pagination tokens repeat or no new items are found.
- **Batched dataset writes** - Buffers records and writes internally in batches of 20 for better throughput.
- **Clean output records** - Removes empty and null fields before saving data.
- **Deduplicated listing IDs** - Avoids duplicate records across pages.
- **Proxy-ready collection** - Supports Apify Proxy configuration for stable runs.

---

### Use Cases

#### Price Monitoring
Track current and original price distributions for selected product niches and categories.

#### Brand Intelligence
Compare listing density, pricing, and availability across multiple brands.

#### Listing Quality Research
Analyze title, description, image, size, and condition patterns for better merchandising decisions.

#### Trend Tracking
Monitor what appears in search results over time and detect shifts in catalog behavior.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `startUrl` | String | No | `https://poshmark.com/search?query=shoes&type=listings&src=dir` | Full Poshmark URL. Supports search, brand, and category pages. |
| `keyword` | String | No | `shoes` | Used only when `startUrl` is empty. |
| `results_wanted` | Integer | No | `20` | Maximum number of listings to save. |
| `max_pages` | Integer | No | `10` | Safety cap for paginated requests. |
| `proxyConfiguration` | Object | No | Apify Proxy enabled | Proxy configuration for reliability. |

---

### Output Data

Each dataset item may include the following fields (only non-empty values are saved):

| Field | Type | Description |
|---|---|---|
| `listing_id` | String | Unique listing identifier. |
| `title` | String | Listing title. |
| `description` | String | Listing description text. |
| `price` | Number | Current listing price. |
| `original_price` | Number | Original listing price, if available. |
| `discount_amount` | Number | Difference between original and current price. |
| `currency_code` | String | Currency code (example: USD). |
| `currency_symbol` | String | Currency symbol (example: $). |
| `size` | String | Size information. |
| `condition` | String | Condition value, if provided. |
| `status` | String | Listing status. |
| `brand` | String | Brand name. |
| `brand_id` | String | Brand identifier. |
| `category` | String | Category name. |
| `inventory_status` | String | Inventory availability state. |
| `available_quantity` | Number | Total quantity available across listing sizes. |
| `color_names` | Array | Clean list of color names. |
| `image_url` | String | Primary listing image URL. |
| `image_urls` | Array | Listing image URLs. |
| `image_count` | Number | Number of listing images. |
| `listing_url` | String | Listing URL. |
| `seller_id` | String | Seller identifier. |
| `first_published_at` | String | First publication timestamp. |
| `first_available_at` | String | First availability timestamp. |
| `updated_at` | String | Last update timestamp. |
| `search_query` | String | Query used for the run. |
| `source_url` | String | Page URL where the listing was extracted. |
| `page_number` | Integer | Result page number in the run. |
| `fetched_at` | String | Extraction timestamp. |

---

### Usage Examples

#### Basic Search URL Run

```json
{
	"startUrl": "https://poshmark.com/search?query=shoes&type=listings&src=dir",
	"results_wanted": 20,
	"max_pages": 10
}
````

#### Brand URL Run

```json
{
	"startUrl": "https://poshmark.com/brand/Nike",
	"results_wanted": 30,
	"max_pages": 10
}
```

#### Category URL Run

```json
{
	"startUrl": "https://poshmark.com/category/Shoes",
	"results_wanted": 30,
	"max_pages": 10
}
```

#### Keyword Run

```json
{
	"keyword": "nike kids shoes",
	"results_wanted": 50,
	"max_pages": 15
}
```

#### Proxy-Configured Run

```json
{
	"startUrl": "https://poshmark.com/search?query=boots&type=listings&src=dir",
	"results_wanted": 40,
	"proxyConfiguration": {
		"useApifyProxy": true,
		"apifyProxyGroups": ["RESIDENTIAL"]
	}
}
```

***

### Sample Output

```json
{
	"listing_id": "69c24e832061e470f3941c8d",
	"title": "Nike Air Max Running Shoes",
	"brand": "Nike",
	"category": "Shoes",
	"size": "9",
	"status": "published",
	"condition": "Good",
	"price": 70,
	"original_price": 140,
	"discount_amount": 70,
	"currency_code": "USD",
	"currency_symbol": "$",
	"inventory_status": "available",
	"available_quantity": 1,
	"color_names": ["Black", "White"],
	"image_url": "https://di2ponv0v5otw.cloudfront.net/posts/2026/09/11/abc123/l_abc123.jpg",
	"image_count": 5,
	"image_urls": [
		"https://di2ponv0v5otw.cloudfront.net/posts/2026/09/11/abc123/m_abc123.jpg"
	],
	"listing_url": "https://poshmark.com/listing/69c24e832061e470f3941c8d",
	"seller_id": "5f1234abc567de890f123456",
	"search_query": "shoes",
	"page_number": 1,
	"fetched_at": "2026-03-30T10:30:00.000Z"
}
```

***

### Tips For Best Results

#### Start With Smaller Runs

- Begin with `results_wanted: 20` to validate your query quickly.
- Increase gradually for larger production jobs.

#### Use Focused Queries

- Narrow terms produce cleaner, easier-to-analyze datasets.
- For broad terms, increase `max_pages` carefully.

#### Enable Proxies For Scale

- Residential proxy routing is recommended for stable high-volume runs.

***

### Integrations

- **Google Sheets** - Export results for collaborative analysis.
- **Airtable** - Build searchable inventory and research tables.
- **Zapier** - Trigger downstream workflows automatically.
- **Make** - Connect runs to no-code automation pipelines.
- **Webhooks** - Push fresh data into your own services.

#### Export Formats

- **JSON** - Best for APIs and custom processing.
- **CSV** - Best for spreadsheet analysis.
- **Excel** - Best for business reporting.
- **XML** - Best for legacy integrations.

***

### Frequently Asked Questions

#### How many listings can I collect?

As many as available in search results, subject to your `results_wanted` and `max_pages` limits.

#### Why are some fields missing in a record?

Only non-empty values are saved. If a listing does not provide a field, that key is omitted.

#### Can I run by keyword without providing a URL?

Yes. Provide `keyword`, and the actor builds a compatible search request automatically.

#### Does this handle pagination automatically?

Yes. The actor paginates until it reaches your target count, page limit, or no-more-results condition.

#### Is proxy support available?

Yes. Use `proxyConfiguration` to run with Apify Proxy.

***

### Support

For issues, enhancements, or custom extraction requirements, use the Apify Console issue and support channels.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [Apify API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/platform/schedules)

***

### Legal Notice

This actor is intended for legitimate data collection and analytics workflows. You are responsible for complying with applicable laws, regulations, and platform terms when using extracted data.

# Actor input Schema

## `startUrl` (type: `string`):

Optional full Poshmark URL. Supports search, brand, and category pages. Examples: https://poshmark.com/search?query=shoes\&type=listings\&src=dir, https://poshmark.com/brand/Nike, https://poshmark.com/category/Shoes

## `keyword` (type: `string`):

Search term used to build a Poshmark listings URL when Start URL is empty.

## `results_wanted` (type: `integer`):

Maximum number of listings to save to dataset.

## `max_pages` (type: `integer`):

Safety limit on paginated requests.

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

Use Apify Proxy for improved reliability.

## Actor input object example

```json
{
  "startUrl": "https://poshmark.com/search?query=shoes&type=listings&src=dir",
  "keyword": "shoes",
  "results_wanted": 20,
  "max_pages": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "startUrl": "https://poshmark.com/search?query=shoes&type=listings&src=dir",
    "keyword": "shoes",
    "results_wanted": 20,
    "max_pages": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/poshmark-listings-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 = {
    "startUrl": "https://poshmark.com/search?query=shoes&type=listings&src=dir",
    "keyword": "shoes",
    "results_wanted": 20,
    "max_pages": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrl": "https://poshmark.com/search?query=shoes&type=listings&src=dir",
  "keyword": "shoes",
  "results_wanted": 20,
  "max_pages": 10
}' |
apify call shahidirfan/poshmark-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/poshmark-listings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Poshmark Listings Scraper",
        "description": "Harvest Poshmark listings at scale, extract prices, seller data, photos & reviews. Export JSON/CSV for market research, competitive analysis & resale insights. Built for fashion resellers, analysts & ecommerce teams.",
        "version": "1.0",
        "x-build-id": "W5Hts9CkonFkM00f4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~poshmark-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-poshmark-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/shahidirfan~poshmark-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-poshmark-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/shahidirfan~poshmark-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-poshmark-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrl": {
                        "title": "Start URL",
                        "type": "string",
                        "description": "Optional full Poshmark URL. Supports search, brand, and category pages. Examples: https://poshmark.com/search?query=shoes&type=listings&src=dir, https://poshmark.com/brand/Nike, https://poshmark.com/category/Shoes",
                        "default": "https://poshmark.com/search?query=shoes&type=listings&src=dir"
                    },
                    "keyword": {
                        "title": "Keyword (if not using Start URL)",
                        "type": "string",
                        "description": "Search term used to build a Poshmark listings URL when Start URL is empty.",
                        "default": "shoes"
                    },
                    "results_wanted": {
                        "title": "Maximum number of listings",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to save to dataset.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum number of pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety limit on paginated requests.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Use Apify Proxy for improved reliability.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
