Poshmark Listings Scraper - Search, Sold Items & Closets avatar

Poshmark Listings Scraper - Search, Sold Items & Closets

Pricing

from $0.60 / 1,000 results

Go to Apify Store
Poshmark Listings Scraper - Search, Sold Items & Closets

Poshmark Listings Scraper - Search, Sold Items & Closets

Scrapes Poshmark (poshmark.com) listings by keyword, brand, category, seller closet or link. Sold and available items with prices, original price, discount, sold date, brand, size, condition, photos, likes, seller details and comments. Filters, cache for new items only.

Pricing

from $0.60 / 1,000 results

Rating

0.0

(0)

Developer

ActorFlow

ActorFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Security

Limited permissions

Share

Poshmark Listings Scraper (poshmark.com) - Search, Sold Items, Closets & Prices

Scrape listings from Poshmark (poshmark.com): title, brand, size, price, original price, discount, condition, photos, likes, comments and seller details. Search by keyword, brand, category or seller closet, collect sold listings with their sold date, or open single listings, then export the data as JSON, CSV or Excel or call the actor as an API. Paste a Poshmark link or type a keyword, press Start and get a clean table.

Target website: poshmark.com

Poshmark Listings Scraper cover

✨ Features of this Poshmark listings scraper

  • Listing extraction - search results, brand pages, category pages, seller closets and single listing pages with price, original price, discount, brand, size, colors, condition, description, photos, status and dates.
  • Sold listings - switch the status to sold to get sold items with the sold date and sold price, handy for resale price research.
  • Pagination support - pages are followed automatically until your item limit is reached.
  • Filters - department, category, brand, sizes, colors, condition, price range, sort order and listing status.
  • Full details on demand - optionally add shipping cost, comments, who liked an item and the seller profile (followers, items sold, location, member since).
  • Big searches - when a search is bigger than what Poshmark shows for one search, it is split into smaller ones automatically so you can collect more.
  • Cache for new items - run the same search on a schedule and get only new or changed listings.
  • Proxy support - datacenter proxies are used by default and are enough.
  • No browser required - runs are fast and cheap.

πŸš€ How to scrape Poshmark listings in 5 steps

  1. Sign up for a free Apify account - includes $5 monthly credit.
  2. Open the actor page and click Try for free.
  3. Fill in the Input fields (a Poshmark URL, a search keyword or a seller username is required).
  4. Click Start and wait for the run to complete.
  5. Download results from the Output tab in JSON, CSV, or Excel format.

You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.

πŸ’° Pricing for the Poshmark scraper

This actor uses pay-per-result billing based on the compute units a run consumes.

  • New Apify accounts include $5 of free monthly credit.
  • Runs without a browser cost significantly less than browser-based scrapers.
  • Datacenter proxies are used by default; they are cheap and enough for Poshmark.

πŸ–ΌοΈ Poshmark scraper input screenshot

Poshmark Listings Scraper input form in Apify Console: Poshmark URLs, search keywords, cache project name, max items per input, scrape full details, listing status, department and brand

The numbers match the input fields below:

  1. Poshmark URLs: search, brand, category, closet or listing pages.
  2. Search keywords: keywords to search, one per entry.
  3. Cache project name: reuse it on each run to get only new and changed listings.
  4. Max items per input: the listing limit for each URL, keyword or seller.
  5. Scrape full details: add shipping cost, comments, likers and the seller profile.
  6. Listing status: available or sold listings.
  7. Department: Women, Men, Kids, Home, Pets or Electronics.
  8. Brand: only listings of this brand.

πŸ”§ Poshmark scraper input configuration

FieldTypeRequiredDefaultDescription
Poshmark URLs (startUrls)array-prefilled searchSearch, brand, category, closet or single listing links. Filters in the link are kept.
Search keywords (searchQueries)array--Keywords to search, one per entry.
Seller usernames (sellers)array--Usernames whose closet to scrape.
Cache project name (cacheProjectName)string--Same name on each run gives only new or changed listings.
Max items per input (maxItems)integer-5Maximum listings saved for each URL, keyword or seller.
Scrape full details (scrapeDetails)boolean-falseAdds shipping, comments, likers and the seller profile.
Listing status (availability)string-availableavailable or sold_out (sold listings with the sold date).
Department (department)string--Women, Men, Kids, Home, Pets or Electronics.
Category (category)string--Poshmark category name such as Tops, Shoes or Bags.
Brand (brand)string--Brand name as Poshmark writes it, for example Nike.
Sizes (sizes)array--Sizes to keep, for example M, 8 or XL.
Colors (colors)array--Poshmark color names such as Black or Red.
Condition (condition)string-allall or nwt (new with tags only).
Minimum price (minPrice)integer--Lowest price in whole dollars.
Maximum price (maxPrice)integer--Highest price in whole dollars.
Sort by (sortBy)string-best_matchbest_match, added_desc, price_asc, price_desc, like_count or price_drop.
Proxy configuration (proxyConfiguration)object-Apify Proxy onProxy settings.

Supported URL types:

  • Search: https://poshmark.com/search?query=nike+hoodie&type=listings
  • Sold search: https://poshmark.com/search?query=nike+hoodie&type=listings&availability=sold_out
  • Brand: https://poshmark.com/brand/Nike
  • Category: https://poshmark.com/category/Women-Tops
  • Seller closet: https://poshmark.com/closet/prettyflowers1
  • Single listing: https://poshmark.com/listing/Nike-Green-Crewneck-Sweatshirt-6ae4ecfa5551aad6a9fefbd1

πŸ“¦ Poshmark scraper output data

Each listing is one flat JSON row with the same keys every time (null where Poshmark has no value): id, url, title, description, brand, department, category, subcategory, size, colors, condition, isNewWithTags, listingType, styleTags, price, currency, originalPrice, discountPercent, firstPrice, priceDropPercent, shippingDiscount, status, soldAt, statusChangedAt, quantityAvailable, createdAt, updatedAt, firstPublishedAt, likesCount, commentsCount, sharesCount, coverImage, images, videoUrl, sellerUsername, sellerName, sellerId, sellerUrl, sellerPicture, shipping, comments, likers, sellerFollowers, sellerFollowing, sellerListings, sellerItemsSold, sellerOrdersShipped, sellerFiveStarRatings, sellerLocation, sellerMemberSince, sellerLastActive, sellerOnVacation, sourceUrl, changeType, previousPrice, previousStatus, scrapedAt.

The dataset has 4 views. Listings shows the main listing fields with the cover image. Sold listings focuses on sold items and their sold date. Sellers shows the seller profile fields. Changes since last run shows what is new or changed when a cache project name is used.

Output at a glance:

ListingBrandSizePriceOrig. priceStatusSold atLikes
Lululemon Wunder Groove Pant *Full-On Luonlululemon athleticaVarious$78$98sold2019-04-02502
Lululemon align pant 28lululemon athleticaVarious$75$98sold2026-08-25454
Lululemon align tanklululemon athletica6$65$65sold2022-01-02312
Lululemon Key to Balance Tank - Camolululemon athletica8$68-sold2022-09-12304
Lululemon Align 6” Blacklululemon athleticaVarious$64-sold2025-07-09301

Sample output (raw JSON):

[
{
"id": "6396bcd3308f07c3cc980cd3",
"url": "https://poshmark.com/listing/Lululemon-Align-6-Black-6396bcd3308f07c3cc980cd3",
"title": "Lululemon Align 6” Black",
"description": "Black",
"brand": "lululemon athletica",
"department": "Women",
"category": "Shorts",
"subcategory": null,
"size": "Various",
"colors": [
"Black"
],
"condition": "New With Tags",
"isNewWithTags": true,
"listingType": "multi_item",
"styleTags": [
"Activewear",
"Yoga",
"Biker Short"
],
"price": 64,
"currency": "USD",
"originalPrice": null,
"discountPercent": null,
"firstPrice": null,
"priceDropPercent": null,
"shippingDiscount": null,
"status": "sold",
"soldAt": "2025-07-09T21:27:35.000Z",
"statusChangedAt": "2025-07-09T21:27:35.000Z",
"quantityAvailable": 0,
"createdAt": "2022-12-12T05:32:03.000Z",
"updatedAt": "2026-08-03T04:22:33.000Z",
"firstPublishedAt": "2022-12-12T05:35:11.000Z",
"likesCount": 301,
"commentsCount": 19,
"sharesCount": 165,
"coverImage": "https://di2ponv0v5otw.cloudfront.net/posts/2022/12/11/6396bcd3308f07c3cc980cd3/l_64e191f4ffb5d0d233ba6a1f.jpg",
"images": [
"https://di2ponv0v5otw.cloudfront.net/posts/2022/12/11/6396bcd3308f07c3cc980cd3/l_6396bce1bd66cdf0544333f9.jpg",
"https://di2ponv0v5otw.cloudfront.net/posts/2022/12/11/6396bcd3308f07c3cc980cd3/l_6396bcf6308f071879980d7b.jpg"
],
"videoUrl": null,
"sellerUsername": "visi0123",
"sellerName": "Visi. Closet🌸",
"sellerId": "60f4d94e6afdc3e012129e21",
"sellerUrl": "https://poshmark.com/closet/visi0123",
"sellerPicture": "https://di2ponv0v5otw.cloudfront.net/users/2023/01/21/19/t_63ccb385ce9ec588b8725bed.jpg",
"shipping": "$6.49 Shipping",
"comments": [
{
"id": "63aa40bc955a4bf09db13ae5",
"username": "emilyja07",
"name": "Emily Anthony",
"text": "are these high rise",
"createdAt": "2022-12-27T00:47:56.000Z"
},
{
"id": "63aa54a02938f8dac765e8e5",
"username": "visi0123",
"name": "Visi. Closet🌸",
"text": "@emilyja07 yes",
"createdAt": "2022-12-27T02:12:48.000Z"
}
],
"likers": [
{
"username": "cielo_carretero",
"name": "Cielo Carretero",
"likedAt": "2022-12-12T06:43:17.000Z"
},
{
"username": "meganauk",
"name": "Megan Auk",
"likedAt": "2022-12-12T08:15:07.000Z"
}
],
"sellerFollowers": 44087,
"sellerFollowing": 25126,
"sellerListings": 1902,
"sellerItemsSold": "1300+",
"sellerOrdersShipped": 1221,
"sellerFiveStarRatings": 102,
"sellerLocation": null,
"sellerMemberSince": "2021-07-19T01:45:50.000Z",
"sellerLastActive": "2026-11-01T07:00:00.000Z",
"sellerOnVacation": false,
"sourceUrl": "https://poshmark.com/search?query=lululemon+align&type=listings&sort_by=like_count&availability=sold_out",
"changeType": null,
"previousPrice": null,
"previousStatus": null,
"scrapedAt": "2026-11-02T17:57:50.327Z"
},
{
"id": "613e6646c936afb888e6e90e",
"url": "https://poshmark.com/listing/Lululemon-Key-to-Balance-Tank-Camo-613e6646c936afb888e6e90e",
"title": "Lululemon Key to Balance Tank - Camo",
"description": "NWT Lululemon Key to Balance Tank in Heritage 365 Camo Deep Coal Multi (black and gray csmo). Through every bend and stretch, find the balance you seek and the coverage you need in this high-neck tank",
"brand": "lululemon athletica",
"department": "Women",
"category": "Tops",
"subcategory": "Tank Tops",
"size": "8",
"colors": [
"Black",
"Gray"
],
"condition": "New With Tags",
"isNewWithTags": true,
"listingType": "multi_item",
"styleTags": [
"Athleisure",
"Camo"
],
"price": 68,
"currency": "USD",
"originalPrice": null,
"discountPercent": null,
"firstPrice": null,
"priceDropPercent": null,
"shippingDiscount": null,
"status": "sold",
"soldAt": "2022-09-12T14:27:33.000Z",
"statusChangedAt": "2022-09-12T14:27:33.000Z",
"quantityAvailable": 0,
"createdAt": "2021-09-12T20:42:46.000Z",
"updatedAt": "2026-07-06T17:00:21.000Z",
"firstPublishedAt": "2021-09-12T20:44:37.000Z",
"likesCount": 304,
"commentsCount": 5,
"sharesCount": 204,
"coverImage": "https://di2ponv0v5otw.cloudfront.net/posts/2021/09/12/613e6646c936afb888e6e90e/l_613e66701801368b4bb7fb69.jpg",
"images": [
"https://di2ponv0v5otw.cloudfront.net/posts/2021/09/12/613e6646c936afb888e6e90e/l_613e666fc32ee6bf691fd852.jpg",
"https://di2ponv0v5otw.cloudfront.net/posts/2021/09/12/613e6646c936afb888e6e90e/l_613e6671c693bdeca1a72c3a.jpg"
],
"videoUrl": null,
"sellerUsername": "rereese",
"sellerName": "Rebecca Y",
"sellerId": "5a8273dd00301c50d1403a51",
"sellerUrl": "https://poshmark.com/closet/rereese",
"sellerPicture": "https://di2ponv0v5otw.cloudfront.net/users/2018/02/12/5a8273dd00301c50d1403a51/t_5a8273dd00301c50d1403a6f.jpg",
"shipping": "$6.49 Shipping",
"comments": [
{
"id": "6240d7176ab2f4aad2857f05",
"username": "kowca1987",
"name": "Karolina Owca",
"text": "I saw you had another one in a bigger size can you measure this one for me across the bust?",
"createdAt": "2022-03-27T21:28:55.000Z"
},
{
"id": "6240d98d8a92fb99acc1b446",
"username": "rereese",
"name": "Rebecca Y",
"text": "@kowca1987 yes, the size 8 is approximately 15.75 inches across at the bust. The Nulu fabric is the same fabric that align tights are made of and does have a good amount of stretch to it",
"createdAt": "2022-03-27T21:39:25.000Z"
}
],
"likers": [
{
"username": "clothedncourage",
"name": "Mackenzie Kern",
"likedAt": "2021-09-13T03:30:22.000Z"
},
{
"username": "charlie_9",
"name": "Kelcie Sackett",
"likedAt": "2021-09-13T14:41:04.000Z"
}
],
"sellerFollowers": 132987,
"sellerFollowing": 309,
"sellerListings": 14386,
"sellerItemsSold": "9600+",
"sellerOrdersShipped": 8240,
"sellerFiveStarRatings": 1117,
"sellerLocation": null,
"sellerMemberSince": "2018-02-13T05:13:01.000Z",
"sellerLastActive": "2026-11-01T07:00:00.000Z",
"sellerOnVacation": false,
"sourceUrl": "https://poshmark.com/search?query=lululemon+align&type=listings&sort_by=like_count&availability=sold_out",
"changeType": null,
"previousPrice": null,
"previousStatus": null,
"scrapedAt": "2026-11-02T17:57:50.327Z"
}
]

πŸ” Scrape only new Poshmark listings with the cache

Type the same Cache project name on every scheduled run and the scraper remembers every listing it has saved under that name. Listings already saved with the same price and status are skipped, are not charged and are not counted towards Max items. New listings get changeType: "new"; a listing whose price or status changed (for example it was sold) gets changeType: "updated" with the old price in previousPrice and the old status in previousStatus. Each cache name is a separate cache, so you can track several searches independently. Sort by newest first and a run stops after the first page that has nothing new. Tip: put the actor on an Apify Schedule (for example daily) with the same input and cache name.

🐍 How to scrape Poshmark with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("confidential_gnat/poshmark-listings-scraper").call(run_input={
"searchQueries": ["lululemon leggings"],
"availability": "sold_out",
"maxItems": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('confidential_gnat/poshmark-listings-scraper').call({
searchQueries: ['lululemon leggings'],
availability: 'sold_out',
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL - start a run and wait for the dataset:

curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~poshmark-listings-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["lululemon leggings"], "availability": "sold_out", "maxItems": 20}'

πŸ’‘ What you can use Poshmark listing data for

  • Resale price research: see what items really sold for, and how fast.
  • Price monitoring of brands, styles and competing sellers.
  • Sourcing and arbitrage: find underpriced listings and price drops.
  • Trend and demand analysis from likes, comments and shares.
  • Seller research: closet size, items sold, ratings and activity.

Resellers, fashion brands, market analysts and data teams in e-commerce and secondhand fashion typically use this data.

⚠️ Limitations of the Poshmark scraper

  • Login-required pages - the actor cannot access content behind a login, such as private messages or your own account.
  • Search depth - Poshmark shows about 5,000 listings for one search; bigger asks are split by department, price and color, which takes more requests.
  • Likers - the list of people who liked an item is the part Poshmark shows publicly, not always every liker.
  • Missing values - sellers do not fill in every field (original price, condition), so those come back as null.

❓ Poshmark scraper FAQ

Can I scrape Poshmark legally?

The actor only collects data that is already publicly visible on Poshmark, with no login, paywall or private content. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you are responsible for complying with Poshmark's Terms of Service and applicable laws such as GDPR and CCPA if personal data is involved.

What data does the Poshmark scraper return?

Title, brand, size, colors, condition, price, original price, discount, status, sold date, photos, likes, comments count, shares and seller details. Switch on full details to add shipping cost, the comments themselves, likers and the seller profile.

How many listings can I scrape from one search or closet?

maxItems applies to each start URL, keyword or seller separately. Poshmark shows about 5,000 listings for one search, closet or category, and above that the actor splits the search automatically.

Do I need a proxy to scrape poshmark.com?

Datacenter Apify Proxy is switched on by default and is enough. You can turn it off or choose your own proxies in the proxy field.

How do I scrape Poshmark with Python?

Use the Python example above and iterate over the dataset items returned by the run.

Can I run this Poshmark scraper on a schedule?

Yes, use Apify Schedules. Add a cache project name and each scheduled run saves only new or changed listings, which are not charged again.

How do I get sold listings from Poshmark?

Set Listing status to Sold, or paste a search link that has availability=sold_out. Sold rows have status: "sold" and the sold date in soldAt.

What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.

πŸ”— Relevant actors for Poshmark

ScraperDescription
πŸ›’ eBay Listings ScraperScrape eBay (ebay.com) search results and item pages
πŸ‡―πŸ‡΅ Mercari Japan ScraperScrapes Mercari Japan (jp.mercari.com) listings
πŸ“¦ Kleinanzeigen Classifieds ScraperScrape ads from Kleinanzeigen (kleinanzeigen.de, formerly eBay Kleinanzeigen)
🏷️ Carousell Products ScraperScrape Carousell.sg product listings for prices, seller ratings, deal methods & more. Ex...
🧧 AliExpress Products ScraperScrape products from AliExpress (aliexpress.com) search results and product pages

πŸ”— Other actors you may find useful

ScraperDescription
πŸ’Ό HiringCafe Jobs ScraperScrapes job listings from HiringCafe (hiringcafe.com)
πŸ›οΈ Woolworths Products ScraperScrape Woolworths Australia grocery products
πŸ“„ Google Patents ScraperScrapes patent data from Google Patents (patents.google.com) by keyword or URL, includin...
πŸ“° Substack ScraperScrape Substack (substack.com) posts by keyword search, publication or post URL
🎡 Spotify Monthly Listeners ScraperScrapes an artist's monthly listeners, followers, top cities, discography, top tracks, a...

πŸ’¬ Support & contact

If you encounter any issues or have questions, please open an issue.

You can also find more of our actors on the Actor Flow page.