StockX Scraper
Pricing
from $2.00 / 1,000 products
StockX Scraper
Scrape StockX products: every size's lowest ask, highest bid and number of asks, stock by delivery speed, last sale and 12-month price statistics, with optional individual sales and the full order book. Catalog data, barcodes and images included.
Pricing
from $2.00 / 1,000 products
Rating
0.0
(0)
Developer
Richard Feng
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Scrape StockX products with their live market: every size's lowest ask, highest bid and number of asks, stock by delivery speed (including items already in StockX's warehouse), last sale and 12-month price statistics — and, if you want them, the individual sales and the full order book. Catalog data, barcodes (UPC, EAN and other GTINs) and images come with every product.
📖 What it does
Give it StockX product pages, or a search, brand or category page, and it stores one record per product:
- the catalog: title, brand, style code, colorway, release date, retail price, description, categories, images and the 360° view;
- every size as a variant, with its own lowest ask, highest bid, number of asks, stock by delivery speed and barcodes, plus the size in every size chart StockX shows (US M, US W, UK, EU, CM, KR);
- the product's market: lowest ask and highest bid with their sizes, number of asks, stock by delivery speed, the last sale and its change, the last 90 days (average price, range, number of sales) and the last 12 months (average price, range, number of sales, and StockX's price premium and volatility figures);
- optionally, the latest individual sales (when, price, size, standard or express) and the order book (every price asks and bids stand at, per size, with how many stand there).
Prices are US market prices in US dollars.
🎯 Features
- 📈 Per-size market data — bid, ask and number of asks for every size in one record, not just the product's headline price.
- 📦 Stock by delivery speed — how many asks ship standard, express or next day, the cheapest of each,
and whether that item is already in StockX's warehouse (
CUSTODIAL), with expected delivery dates. - 🔍 Individual sales — the latest sales, newest first: when, price, size, standard or express (50 per product by default).
- 📊 Order book — the price levels of asks and bids across sizes, best first, with the number of asks or bids at each (100 levels per side by default).
- 🗂️ One record shape for the whole catalog — sneakers, apparel, accessories, collectibles, electronics and graded trading cards alike; sizes, grades and one-size items are all variants.
- ⚡ Fast — about 25 products a minute at the default concurrency, light on memory and proxy traffic.
🔗 Supported URL types
| Page | Example |
|---|---|
| Product | https://stockx.com/adidas-campus-00s-core-black |
| Product, other language or with a size | https://stockx.com/fr-fr/nike-dunk-low-retro-white-black-2021, …?size=10 |
| Buy or sell page of a product | https://stockx.com/buy/adidas-campus-00s-core-black |
| A seller's listing of a product | https://stockx.com/<product>/listings/<listing id> |
| Search | https://stockx.com/search?s=jordan%201%20chicago |
| Brand | https://stockx.com/brands/new-balance |
| Top-level category | https://stockx.com/sneakers, https://stockx.com/category/trading-cards |
For a search, brand or category page, its products are read in the order StockX lists them, sponsored entries left out. StockX lists at most 1,000 products for any one listing; Maximum products per listing reads fewer.
📋 Input
| Field | What it does | Default |
|---|---|---|
startUrls | StockX pages to read (see the table above) | — |
maxProducts | Stop after storing this many products (0 = no limit) | 0 |
maxProductsPerListing | Products to read from each search, brand or category page (0 = all, at most 1,000) | 100 |
includeSales | Add the latest individual sales | off |
maxSalesPerProduct | How many sales to add per product | 50 |
includeOrderBook | Add the order book | off |
maxOrderBookLevels | Price levels per side (asks and bids) | 100 |
maxConcurrency | Products read at the same time | 3 |
proxyConfiguration | Proxies for the requests | Apify datacenter proxies |
{"startUrls": [{ "url": "https://stockx.com/adidas-campus-00s-core-black" },{ "url": "https://stockx.com/search?s=dunk%20low%20panda" }],"maxProductsPerListing": 20,"includeSales": true,"includeOrderBook": true}
📤 Output
One record per product, in the same shape as Farfetch Scraper's
records. Every amount of money is an integer in cents (6300 is $63), on the product, on each size
and in the market data alike. price.current is the lowest ask (0 when nobody is selling) and
price.stockCount the number of asks. extraInfo.retailPrice is the retail price; price.original
repeats it only when the lowest ask is below it, the way a discounted item gives its pre-sale price, and
is 0 otherwise.
An example, shortened (one size, two of the 36 frames of the 360° view, two sales, two price levels per side):
{"source": {"id": "de258c04-2f2a-4806-9d8c-9c84e17d45ea","crawlUrl": "https://stockx.com/adidas-campus-00s-core-black","canonicalUrl": "https://stockx.com/adidas-campus-00s-core-black","retailer": "stockx","language": "en","currency": "USD"},"title": "adidas Campus 00s Core Black","description": "The adidas Campus 00s Core Black was launched as part of the sports collection sneakers in the adidas brand.\n\nThe adidas…","details": {"short_desc": "adidas Campus 00s Core Black","full_desc": "The adidas Campus 00s Core Black was launched as part of the sports collection sneakers in the adidas brand.\n\nThe adidas…","brandStyleID": "HQ8708"},"brand": "adidas","categories": ["Sneakers","Lifestyle"],"tags": ["2024 Gifts Under $100"],"medias": [{"type": "Image","url": "https://images.stockx.com/images/adidas-Campus-00s-Core-Black-Product.jpg?fit=fill&bg=FFFFFF&w=700&h=500&fm=webp&auto=compress&q=90&dpr=2&trim=color&updated_at=1789133431","alt": "adidas Campus 00s Core Black","index": 0}],"variants": [{"id": "ea3b0fbc-05a4-44cc-84dd-4a2525b35c81","title": "US M 10","options": ["10"],"price": {"current": 6300,"currentFormatted": "$63","original": 11000,"stockStatus": "InStock","stockCount": 42},"extraInfo": {"size": "10","hidden": false,"sizeChart": [{"type": "us m","size": "US M 10"},{"type": "uk","size": "UK 9.5"},{"type": "cm","size": "CM 28"},{"type": "kr","size": "KR 280"},{"type": "eu","size": "EU 44"},{"type": "us w","size": "US W 11"}],"gtins": [{"type": "UPC","identifier": "195747807682"},{"type": "EAN-13","identifier": "4066748532124"}],"lowestAsk": 6300,"highestBid": 3700,"askCount": 42,"deliveryOptions": {"standard": {"askCount": 42,"lowestAsk": 6300},"expressStandard": {"askCount": 9,"lowestAsk": 6400},"expressExpedited": {"askCount": 8,"lowestAsk": 6400}}}}],"options": [{"type": "Size","values": [{"id": "10","name": "US M 10"}]}],"price": {"current": 3300,"currentFormatted": "$33","original": 11000,"stockStatus": "InStock","stockCount": 630},"extraInfo": {"urlKey": "adidas-campus-00s-core-black","model": "adidas Campus 00s","colorway": "Core Black/Footwear White/Off White","retailPrice": 11000,"releaseDate": "2023-02-17","gender": "men","productCategory": "sneakers","condition": "New","listingType": "STANDARD","sizeCharts": ["US M","US W","UK","CM","KR","EU"],"images360": ["https://images.stockx.com/360/adidas-Campus-00s-Core-Black/Images/adidas-Campus-00s-Core-Black/Lv2/img01.jpg?fm=webp&auto=compress&w=559&q=90&dpr=2&updated_at=1789133431","https://images.stockx.com/360/adidas-Campus-00s-Core-Black/Images/adidas-Campus-00s-Core-Black/Lv2/img02.jpg?fm=webp&auto=compress&w=559&q=90&dpr=2&updated_at=1789133431"],"country": "US","market": {"lowestAsk": 3300,"lowestAskSize": "US M 4.5","highestBid": 6600,"highestBidSize": "US M 6","askCount": 630,"deliveryOptions": {"standard": {"askCount": 630,"lowestAsk": 3300},"expressStandard": {"askCount": 165,"lowestAsk": 3300,"lowestAskInventoryType": "DFS","expectedDeliveryDate": "2026-10-15T21:00:00.000Z","latestDeliveryDate": "2026-10-20T21:00:00.000Z"},"expressExpedited": {"askCount": 68,"lowestAsk": 3700,"lowestAskInventoryType": "CUSTODIAL","expectedDeliveryDate": "2026-10-15T21:00:00.000Z","latestDeliveryDate": "2026-10-15T21:00:00.000Z"},"expressNextDay": {"askCount": 68,"lowestAsk": 3700,"lowestAskInventoryType": "CUSTODIAL","expectedDeliveryDate": "2026-10-14T21:00:00.000Z","latestDeliveryDate": "2026-10-14T21:00:00.000Z"}},"lastSale": {"amount": 10000,"changeValue": 7100,"changePercentage": 0.7092},"last90Days": {"averagePrice": 6300,"rangeLow": 2000,"rangeHigh": 20000,"salesCount": 633},"annual": {"averagePrice": 5700,"salesCount": 3317,"annualLow": 2000,"annualHigh": 20000,"rangeLow": 7900,"rangeHigh": 12500,"pricePremium": -0.071,"volatility": 0.225873}},"sales": [{"soldAt": "2026-10-12T01:40:57.622Z","amount": 10000,"size": "US M 10","orderType": "STANDARD"},{"soldAt": "2026-10-11T23:36:20.849Z","amount": 2900,"size": "US M 5","orderType": "EXPRESS"}],"orderBook": {"asks": [{"size": "US M 4.5","amount": 3300,"count": 34},{"size": "US M 4.5","amount": 3400,"count": 1}],"bids": [{"size": "US M 6","amount": 6600,"count": 1},{"size": "US M 6.5","amount": 6500,"count": 1}],"asksComplete": false,"bidsComplete": false}}}
🗂️ Data fields
| Field | Meaning |
|---|---|
source.canonicalUrl | The product's StockX page |
price.current / price.stockCount | Lowest ask (cents) / number of asks, for the product or one size |
price.original | Retail price (cents) when the lowest ask is below it, else 0 |
details.brandStyleID | The brand's style code, such as HQ8708 |
options[0].values[] | The sizes: id is StockX's own value of the size (10), name the size in the product's size chart (US M 10) |
variants[] | Every size, with its own price and extraInfo; options holds its size's id |
variants[].extraInfo.gtins | The size's barcodes, typed as StockX types them (UPC, EAN-13, ITF-14, GTIN-8) |
variants[].extraInfo.highestBid | The size's highest bid (cents) |
variants[].extraInfo.deliveryOptions | The size's asks by delivery speed: count and cheapest |
variants[].extraInfo.hidden | StockX's size picker hides this size (it can still have asks) |
extraInfo.retailPrice | The retail price the brand released it at (cents), when StockX lists one |
extraInfo.images360 | The frames of the 360° view, in order |
extraInfo.market.deliveryOptions | Asks by delivery speed; lowestAskInventoryType CUSTODIAL means the cheapest is already in StockX's warehouse |
extraInfo.market.lastSale | Last sale (cents), its change from the sale before (cents) and StockX's own change percentage figure |
extraInfo.market.last90Days | Average price, price range and number of sales over 90 days |
extraInfo.market.annual | The same over 12 months, with StockX's pricePremium and volatility figures as StockX gives them |
extraInfo.sales[] | With Individual sales: soldAt, amount, size, orderType |
extraInfo.orderBook | With Order book: asks[] and bids[] of { size, amount, count }, best price first; asksComplete / bidsComplete say whether every level was read |
💳 Pricing
Pay per event: one event per product stored, plus two add-ons charged only for products where they found something — one for individual sales, one for the order book. See the Pricing tab for current prices. Products that are not found, and listing pages, cost nothing.
❓ FAQ
How fresh is the data? It is read live when the run reads each product: asks, bids and sales are StockX's own at that moment.
Why is a size's lowest ask higher than the product's? The product's lowest ask and highest bid are
the cheapest ask and the highest bid over all its sizes; lowestAskSize and highestBidSize say which.
Does it read other markets or currencies? Not yet: this version reads the US market in US dollars.
Is scraping StockX allowed? The Actor reads the product data StockX shows to any visitor. StockX's terms of use restrict automated access and the use of its data; you are responsible for how you use what you collect.
⚠️ Limitations
- US market and US dollars only.
- Listings read searches, brands and the top-level categories; sub-category pages
(
/category/sneakers/jordan) are not read yet, and filters added to a listing page's address are ignored: the whole search, brand or category is read. - StockX lists at most 1,000 products for any one search, brand or category.
🤖 Use with AI agents
This Actor is callable as a tool by any MCP-capable agent — Claude, Cursor, VS Code — or by your own code, with no wrapper and nothing extra to deploy.
Connect over MCP
https://mcp.apify.com?tools=autofacts/stockx-scraper
In a client that reads an mcpServers configuration block:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=autofacts/stockx-scraper","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
The agent reads this Actor's parameters and their descriptions straight from the input schema, and the hosted server infers the result field types from the dataset schema.
Or call the API directly
curl -X POST "https://api.apify.com/v2/acts/autofacts~stockx-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls": [{"url": "https://stockx.com/adidas-campus-00s-core-black"}, {"url": "https://stockx.com/nike-dunk-low-retro-white-black-2021"}]}'
🧰 Other Actors by autofacts
Apify only auto-recommends Actors in the same category, so here are the ones that actually pair with this scraper:
| Actor | What it's for |
|---|---|
| Shopify Scraper | Retail prices and stock at sneaker and streetwear boutiques on Shopify |
| Farfetch Scraper | Luxury retail prices and sizes, to set against resale prices |
| ASOS Scraper | High-street prices for the same brands |
| Google Trends | Search interest in a release, a model or a brand |
All of them: apify.com/autofacts