Poshmark Brand Analytics avatar

Poshmark Brand Analytics

Pricing

from $17.91 / 1,000 results

Go to Apify Store
Poshmark Brand Analytics

Poshmark Brand Analytics

One row per brand or query: median asking prices of live listings versus median prices of items that actually sold, quartiles and sample sizes attached, plus the over-ask percentage. Price at the sold median and move stock. Aggregates only - no listings, no seller data.

Pricing

from $17.91 / 1,000 results

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Poshmark Brand Analytics — what sellers ask vs what buyers pay

One row per brand, model or market slice: the median asking price of live Poshmark listings next to the median price of items that actually sold, with quartiles, sample sizes and a single percentage — askVsSoldPct — telling you how far asks sit above reality. The reseller pricing answer in one number: price at the sold median, not the ask median.

From a real run (2 sample pages per side): "lululemon align leggings" asked a median $43 but sold at $35 — sellers over-ask by 23% (96 listings sampled on each side). "patagonia better sweater" over-asked by 41%. If you had priced at the ask median, you'd have sat on stock.

No seller personal data, ever. The output is aggregates only — no listings, no usernames, no seller anything. There is nothing in the dataset a privacy review could object to.

Quick start (30 seconds)

  1. Put your brands or models into queries — e.g. ["lululemon align leggings", "patagonia better sweater"]. Up to 50 per run.
  2. Click Start. That's the whole minimum setup.
  3. When the run finishes — seconds per query — open the dataset's Overview tab: one row per query, ask median vs sold median side by side.

What you can build with it

  • Price your stock to move. Ask medians are what sellers hope for; sold medians are what buyers pay. List at the sold median and undercut the wishful thinking.
  • Decide what's worth sourcing. Before buying a lot to flip, run the brand: a healthy sold median with a wide ask-sold gap means slow-moving competition you can undercut; a thin sold sample means weak demand.
  • Compare brands in one run. Ten queries, ten rows, one table — which brand holds value, which one is all ask and no sale.
  • Watch a brand's market over time. Schedule the same queries weekly and chart the sold median — see softening or heating before it shows in your own sales.

What you get

Each query becomes one dataset row:

{
"query": "lululemon align leggings",
"liveSampleSize": 96,
"liveMedianUsd": 4300,
"liveP25Usd": 3200,
"liveP75Usd": 5800,
"soldSampleSize": 96,
"soldMedianUsd": 3500,
"soldP25Usd": 2700,
"soldP75Usd": 4600,
"askVsSoldPct": 23,
"currency": "USD"
}

Field notes, so you know exactly what you are buying:

  • All prices are in US cents4300 is $43.00. No floating-point surprises in spreadsheets or code.
  • liveMedianUsd is the median asking price of live listings; soldMedianUsd is the median price of items that actually sold. The second number is the one to price at.
  • askVsSoldPct is how far the ask median sits above the sold median, in percent. Positive means sellers over-ask; +23% means asks run nearly a quarter above what moves.
  • The P25/P75 quartiles bracket each side — a wide sold spread usually means the query mixes conditions or variants; tighten the query for a sharper answer.
  • liveSampleSize and soldSampleSize are the priced listings behind each side's stats. Medians are nearest-rank — an actual observed price, never an interpolated one.
  • Honest limits: the sold price is the listing's last displayed price at sale, as Poshmark shows it — offers accepted below that price are invisible to everyone, including this actor. Samples reflect recent listings, not all-time history. US Poshmark, USD only.

How much does it cost?

$1.99 per 1,000 rows delivered, pay-as-you-go — no subscription, no charge for empty or failed runs. One row is one fully answered pricing question, and in plain dollars:

  • A 10-brand comparison ≈ $0.02. Two cents for a table that would take an hour of manual comps browsing.
  • A weekly 20-query watch ≈ $0.04 per run, about $2 a year.

The price is all-inclusive — platform usage is covered, with no separate compute or proxy charges. Datacenter proxies are sufficient. Runs take seconds per query.

Free-plan runs are limited to 25 rows, more than enough to evaluate the output against your real brands.

Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and follow the conversation:

Help me set up the "Poshmark Brand Analytics" actor on Apify
(https://apify.com/lowlanddata/poshmark-brand-analytics). Guide me one step at a time.
What I want to price: [E.G. "lululemon align leggings and patagonia better sweater"]
Guide me to:
1. Propose my input values: queries (the brands or models I'd type in the
Poshmark search box, one per row I want back) and samplePages if my
queries are niche.
2. Create a free Apify account (apify.com), open the actor page, paste the
values into the Input form, and start a run.
3. Read the results: for each query, compare liveMedianUsd (asking) with
soldMedianUsd (actually sold) - both in US cents - and explain what
askVsSoldPct tells me about how to price.
4. Set up a weekly Schedule in the Apify Console with the same input so I
can track the sold median over time.
5. If the results are what I wanted, remind me at the end to leave a quick
rating on the actor page, and to report anything broken or missing on its
Issues tab.

Input

FieldDescription
queriesBrands or market slices to price, one row each (1–50). What you'd type in the Poshmark search box. Required.
samplePagesSearch pages sampled per market side, live and sold (1–10, default 3). A page holds ~48 listings.
maxItemsUpper bound on rows, one per query (default 50).
proxyConfigurationProxy settings; keep Apify proxy enabled.

A query needs at least 10 priced listings on each side to produce a row. Thinner queries are skipped with a warning and counted as "too thin" in the run's status message; if every query is too thin, the run fails with the reason spelled out.

Use it from your code

Run the actor and get rows straight back with one HTTP call (fine for scoped runs up to ~5 minutes):

curl "https://api.apify.com/v2/acts/lowlanddata~poshmark-brand-analytics/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-X POST -H "Content-Type: application/json" \
-d '{"queries": ["lululemon align leggings", "patagonia better sweater"]}'

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('lowlanddata/poshmark-brand-analytics').call({
queries: ['lululemon align leggings', 'patagonia better sweater'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lowlanddata/poshmark-brand-analytics").call(
run_input={"queries": ["lululemon align leggings", "patagonia better sweater"]})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Schedules, webhooks and the Make/Zapier/n8n integrations all work out of the box — this is a standard Apify actor.

Use it with AI agents (MCP)

Claude, Cursor and other MCP-capable agents can run this actor as a tool through Apify's hosted MCP server: the agent picks the queries itself, starts the run and reads the rows — no glue code.

Claude Code:

$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/poshmark-brand-analytics"

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

https://mcp.apify.com?actors=lowlanddata/poshmark-brand-analytics

Sign in with your Apify account when prompted — runs are billed to it. Setup details per client: Apify MCP docs.

Prompts that work once connected:

  • "What should I price lululemon align leggings at on Poshmark? Use the sold median, not the ask."
  • "Compare ask-vs-sold gaps for these five brands and tell me which is most over-asked."
  • "Is 'patagonia better sweater' worth sourcing to flip? Check the sold median and sample size."

This actor sits at the safest end of the question: it delivers aggregates only. No listings, no titles, no usernames, no seller identity — just medians, quartiles and counts per query. Personal data never enters the output because there is no per-listing output at all.

The prices themselves are public commercial information shown on Poshmark's open search pages. Requests are paced, load on the site is kept negligible, and no anti-bot protection is bypassed.

Is there a Poshmark API alternative?

Poshmark publishes no public API — and no pricing analytics either. This actor is the practical alternative for the pricing question specifically: ask-vs-sold medians as structured JSON through one HTTP call, on a schedule, or as an MCP tool for AI agents.

Does Poshmark block scrapers?

Poshmark serves its search pages openly to ordinary requests — and this actor stays inside that welcome: a handful of paced page fetches per query, standard datacenter proxies, load kept negligible. No CAPTCHA fights, which is also why runs finish in seconds per query and hold up on schedules.

How do I track a brand's pricing over time?

Put your brands into queries, save the run as a task, and add a weekly Schedule in the Apify Console. Each run appends one fresh row per query — dated by the run — so after a couple of months you have a time series of sold medians per brand for pennies. Add an email or Slack integration on the runs if you want the table delivered, or read the datasets from the API and chart soldMedianUsd over time. The AI-assistant prompt above walks a non-technical user through the schedule setup.

FAQ

How do I price items on Poshmark? Price at the sold median, not the ask median. Run your item's query: soldMedianUsd is what buyers actually paid recently, liveMedianUsd is what your competition is hoping for. Listing between the two undercuts the wishful asks while staying above the market floor.

What do items actually sell for on Poshmark? That is the soldMedianUsd column: the median last displayed price of recently sold listings for your query, with soldP25Usd/soldP75Usd bracketing the realistic range.

What does askVsSoldPct mean? How far the live asking median sits above the sold median, in percent. +23% means sellers ask nearly a quarter more than items actually fetch. The bigger the number, the more room you have to undercut and still sell above the floor.

Do sold prices include accepted offers? No — nobody's do. Poshmark shows a sold listing's last displayed price; offers accepted below that price are invisible to everyone, this actor included. Treat the sold median as a slight upper bound on realized prices.

How many listings does it sample? By default, up to 3 search pages per side — roughly 144 listings each for live and sold, deduplicated, priced listings only. The actual counts ship in every row as liveSampleSize and soldSampleSize, so you always know how much data is behind a number.

Is a small sample still trustworthy? A query needs at least 10 priced listings per side or it produces no row at all — below that a median is noise. For niche queries, raise samplePages toward 10 to deepen the sample.

Can I analyze several brands in one run? Yes — up to 50 queries per run, one row each. A 10-brand comparison costs about two cents.

Why did one of my queries return no row? Too thin: it had fewer than 10 priced listings on the live or the sold side. The run's log names the query and the status message counts the skips. Broaden the query (drop a size or color word) or raise samplePages.

Why are prices in cents? 4300 is $43.00. Integer cents survive every CSV, spreadsheet and JSON parser without rounding drift.

What do the P25/P75 fields tell me? The middle half of the market. A tight sold spread means a well-defined item; a wide one means your query mixes conditions or variants — tighten it for a sharper price.

Is this brand worth buying to flip? Look at three numbers: a solid soldSampleSize (things actually sell), a soldMedianUsd above your sourcing cost, and a positive askVsSoldPct (room to undercut slow competition). Weak sold samples mean weak demand — walk away.

How recent is the data? Every run samples Poshmark live, newest listings first. The stats reflect the recent market, not all-time history — which for pricing is what you want.

Can I track pricing over time? Yes — schedule the same queries weekly; each run appends fresh rows. See the recipe above.

Can I export to Excel or CSV? Yes — every dataset exports as CSV, Excel, JSON or XML from the Apify Console or API. One row per query, ready to pivot.

Does it work outside the US? No — US Poshmark, USD only.

Does the output contain any seller data? None. Aggregates only: medians, quartiles, counts. No listings, no usernames, nothing a privacy review would need to look at. For per-listing data, see the related scrapers below.

What does it cost? $1.99 per 1,000 rows — one row per query, so a 10-brand run is about two cents. Empty and failed runs are free.

Why does my run cap at 25 rows? You're on the free Apify plan's 25-row sample — enough to test your real queries; paid plans get full volume.

Can an AI agent use this? Yes — hooked up over MCP, an agent can answer "what should I price this at?" end to end: it picks the query, runs the actor and reads the medians.

Need the listings behind the numbers?

  • Poshmark Scraper — the live listings as structured JSON: prices, sizes, conditions, demand signals.
  • Poshmark Sold Comps — the sold listings one by one, for item-level comps research.
  • Vinted Arbitrage Scanner — the same price-gap thinking applied to Europe's largest fashion resale marketplace.

Troubleshooting

The actor tells you what happened in the run's status message:

  • "No query had enough priced listings on both sides to compare. Broaden the queries or raise samplePages." — every query was too thin. Use broader terms (brand + product line, not a full title) or raise samplePages.
  • "N brand rows; M too thin" — a normal finish: M queries were skipped for thin samples, named individually in the run log.
  • A blocked-run failure on the first request — usually temporary; a retry lands on a clean proxy session.
  • Fewer rows than queries on a free plan — the 25-row free sample cap; run on a paid Apify plan for full volume.

Support

Found an issue or missing a stat you need? Open an issue on the actor's Issues tab — reports get fixed, this actor is actively maintained.

Working well for you? A rating on this page takes ten seconds and helps other resellers find it — it is also the clearest signal of what we should build next.