StockX
StockX lowest ask, highest bid, last sale and sales volume, product-wide and per size, about 400,000 products per credit.
StockX lowest ask, highest bid, last sale and sales volume, product-wide and per size, about 400,000 products per credit.
At a glance
Property | Value |
|---|---|
|
|
Item id | The product slug, the last part of the product URL ( |
Marketplaces | Live: |
Tier |
|
Ids per call | 1,000 |
Typical call | 10–20 s for 1,000 products |
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": "stockx",
"ids": ["nike-dunk-low-retro-white-black-2021"]
}'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": "stockx",
"ids": ["nike-dunk-low-retro-white-black-2021"],
},
timeout=120,
)
r.raise_for_status()
data = r.json()
for p in data["results"]:
print(p["id"], p["status"], (p.get("price") or {}).get("amount"))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: 'stockx', ids: ['nike-dunk-low-retro-white-black-2021'] }),
signal: AbortSignal.timeout(120_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);Full reference → POST /v1/products
StockX fields
Besides the common fields, each result carries a stockx object. price is the lowest ask across all sizes, before StockX fees.
Field | Description |
|---|---|
| The product-wide market. |
| Open asks and bids, sales in the last 72 hours, and the 90-day average price and sale count. |
| Every size with its own market (the same fields), its conversions ( |
| The manufacturer style id, colorway, original retail price and release date. |
| The rest of the product. |
availability.inStock is true when at least one ask is open.
Statuses on StockX
partial: the product answered without its market (no prices). Ask again later.not_found: StockX has no product with that slug or UUID.
Watchlists
A watchlist with "platform": "stockx" reads each product once per run and reports changes to price, inStock, highestBid, lastSale.