~/ecommerce/stockx-scraper

StockX Scraper — Sneaker Prices, Bids, Asks & Sales

Every size's lowest ask, highest bid, and number of asks on StockX, with stock by delivery speed, the last sale, and 90-day and 12-month price statistics — plus, when you want them, the individual sales and the full order book. Catalog data, barcodes, and images come with every product.

resale marketplace TypeScript US
proooxy/stockx-scraper — spec
categoryecommerce / resale marketplace
languageTypeScript
stackTypeScript
marketsUS
outputclean, RAG-ready JSON

key features

Every size's lowest ask, highest bid, and number of asks in one record, not just the product's headline price

Stock by delivery speed — standard, express, or next day — and whether the cheapest ask is already in StockX's warehouse

The last sale and its change, and the last 90 days and 12 months of prices: average, range, and number of sales

Individual sales on request: when, price, size, and standard or express, newest first

The order book on request: every price asks and bids stand at, per size, with how many stand there

Catalog data with every product: title, brand, style code, colorway, release date, retail price, barcodes, images, and the 360° view

Product pages in any form, or a search, brand, or category page read in StockX's own order

use cases

  • Pricing resale stock: what each size sells for now, and how many sellers compete at that price
  • Tracking a release's premium over its retail price, run after run
  • Market research across sneakers, apparel, accessories, electronics, collectibles, and trading cards
  • Arbitrage between StockX and retail stores or other marketplaces
  • Valuing a collection or a shop's inventory at today's market
  • Giving AI agents live sneaker market data through Apify's MCP server

input parameters

ParameterTypeRequiredDescription
startUrlsarrayrequiredStockX product pages, or search, brand, and category pages
maxProductsnumberoptionalStop after storing this many products (0 = no limit)
maxProductsPerListingnumberoptionalProducts to read from each search, brand, or category page (default 100, at most 1,000)
includeSalesbooleanoptionalAdd the latest individual sales (default off)
maxSalesPerProductnumberoptionalHow many sales to add per product (default 50)
includeOrderBookbooleanoptionalAdd the order book (default off)
maxOrderBookLevelsnumberoptionalPrice levels per side, asks and bids (default 100)
maxConcurrencynumberoptionalProducts read at the same time (default 3)
proxyConfigurationobjectoptionalProxies for the requests (default: Apify datacenter proxies)

Output Example

One product, shortened to one size, one sale, and one price level per side. Amounts are in cents: 6300 is $63.

 1{
 2  "source": {
 3    "id": "de258c04-2f2a-4806-9d8c-9c84e17d45ea",
 4    "canonicalUrl": "https://stockx.com/adidas-campus-00s-core-black",
 5    "retailer": "stockx",
 6    "currency": "USD"
 7  },
 8  "title": "adidas Campus 00s Core Black",
 9  "brand": "adidas",
10  "details": { "brandStyleID": "HQ8708" },
11  "variants": [
12    {
13      "title": "US M 10",
14      "options": ["10"],
15      "price": { "current": 6300, "currentFormatted": "$63", "original": 11000, "stockStatus": "InStock", "stockCount": 42 },
16      "extraInfo": {
17        "gtins": [{ "type": "UPC", "identifier": "195747807682" }],
18        "lowestAsk": 6300,
19        "highestBid": 3700,
20        "askCount": 42
21      }
22    }
23  ],
24  "price": { "current": 3300, "currentFormatted": "$33", "original": 11000, "stockStatus": "InStock", "stockCount": 630 },
25  "extraInfo": {
26    "retailPrice": 11000,
27    "releaseDate": "2023-02-17",
28    "market": {
29      "lowestAsk": 3300,
30      "lowestAskSize": "US M 4.5",
31      "highestBid": 6600,
32      "highestBidSize": "US M 6",
33      "lastSale": { "amount": 10000, "changeValue": 7100 },
34      "last90Days": { "averagePrice": 6300, "rangeLow": 2000, "rangeHigh": 20000, "salesCount": 633 }
35    },
36    "sales": [
37      { "soldAt": "2026-10-12T01:40:57.622Z", "amount": 10000, "size": "US M 10", "orderType": "STANDARD" }
38    ],
39    "orderBook": {
40      "asks": [{ "size": "US M 4.5", "amount": 3300, "count": 34 }],
41      "bids": [{ "size": "US M 6", "amount": 6600, "count": 1 }]
42    }
43  }
44}

The record has the same shape as the Farfetch Scraper’s, so StockX resale prices and retail prices land in one table. price.original is the retail price only when the lowest ask is below it, the way a discounted item shows its pre-sale price.

Tips

  • Turn on sales and the order book only when you need them. Each is an add-on, charged only for products where it found something.
  • maxProductsPerListing keeps a listing small. StockX lists at most 1,000 products for any one search, brand, or category; read the first 20 for a quick look at what is moving.
  • Give product pages in any form. A page with a language prefix, a size, the buy or sell page, or one seller’s listing all name their product, and each product is stored once per run.

faq

How fresh is the data?
It is read live, product by product, while the run goes: 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, often from two different sizes; lowestAskSize and highestBidSize say which.
Does it read other markets or currencies?
Not yet: it reads the US market, with prices in US dollars. Every amount is an integer in cents.
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.

related in ~/ecommerce

Run StockX Scraper — Sneaker Prices, Bids, Asks & Sales, or get a custom build

Start extracting on Apify in minutes, or hire me to build a bespoke scraper and RAG pipeline for your exact source and schema.

run on Apify get custom data