Poshmark
Poshmark listing price, original price, size, brand, condition, stock per size, seller, category and likes, by listing id, about 1 million listings per credit. Sold listings too. Search with sold listings as an option. No rating.
Poshmark listing price, original price, size, brand, condition, stock per size, seller, category and likes, by listing id, about 1 million listings per credit. Sold listings too. Search with sold listings as an option. No rating.
At a glance
Property | Value |
|---|---|
|
|
Item id | The 24 hex characters a listing link ends in, |
Marketplaces | Live: |
Tier |
|
Ids per call | 100 |
Typical call | 10–40 s for 100 listings |
Search |
|
No rating, no sold date
Poshmark listings have no rating or review count, so the results carry none. Poshmark does not give a sold date we can trust, so none is reported: a sold listing says only that it is sold.
What `price` is
price is the seller's listing price in dollars. It does not include Poshmark's buyer fee or shipping. poshmark.originalPrice is the price the seller says the item was, and is null when the seller gave none (it is not 0, and it is not a discount). Listings, sold ones included, can be asked for by id.
Example
- cURL
- Python
- Node.js
curl -X POST "https://api.scrapelyserp.com/v1/products" \
-H "Authorization: Bearer $SCRAPELY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "poshmark",
"ids": [
"6aecac591b53fe19968fdc26",
"https://poshmark.com/listing/Plus-Size-Jeans-6aeca95a071021f392917018"
]
}'import os
import requests
HEADERS = {"Authorization": f"Bearer {os.environ['SCRAPELY_API_KEY']}"}
r = requests.post(
"https://api.scrapelyserp.com/v1/products",
headers=HEADERS,
json={
"platform": "poshmark",
"ids": [
"6aecac591b53fe19968fdc26",
"https://poshmark.com/listing/Plus-Size-Jeans-6aeca95a071021f392917018",
],
},
timeout=30,
)
r.raise_for_status()
data = r.json()
for p in data["results"]:
print(p["id"], p["status"], (p.get("price") or {}).get("amount"), p["poshmark"]["condition"])const res = await fetch('https://api.scrapelyserp.com/v1/products', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SCRAPELY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
platform: 'poshmark',
ids: [
'6aecac591b53fe19968fdc26',
'https://poshmark.com/listing/Plus-Size-Jeans-6aeca95a071021f392917018',
],
}),
signal: AbortSignal.timeout(30_000),
});
if (!res.ok) throw new Error((await res.json()).error.code);
const data = await res.json();
for (const p of data.results) console.log(p.id, p.status, p.price?.amount, p.poshmark?.condition);Full reference → POST /v1/products
Poshmark fields
Besides the common fields, each result carries a poshmark object.
Field | Description |
|---|---|
| The seller's listing price. |
|
|
| Poshmark's own state: |
| One entry per size with |
| The size as the listing shows it. Free text: |
|
|
|
|
| The brand as the seller wrote it, Poshmark's department ( |
| The listing page and its pictures, the cover first. |
Not given | Rating and review count (Poshmark listings have none), sold date, shipping cost and the buyer fee. |
Statuses on Poshmark
partial: Poshmark answered without a title. Ask again later.not_found: Poshmark has no such listing id. A sold listing is still found.unavailable: no usable answer after retries. Not charged; ask again.