stockx.com APIstockx.com ↗
Search StockX products, retrieve market stats, bulk lookup by style ID, and get price history. Structured JSON for sneakers, streetwear, and resale pricing.
curl -X GET 'https://api.parse.bot/scraper/aabae66c-401d-454d-a20a-8aedf2607a16/search_products?page=1&sort=featured&limit=3&query=nike+dunk' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products on StockX by keyword. Returns paginated product listings with current market pricing.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed). |
| sort | string | Sort order. Accepted values: featured, most_popular, newest_release, lowest_ask, highest_bid. |
| limit | integer | Max results per page. |
| query | string | Search keyword (e.g. 'jordan 1', 'nike dunk'). Leave empty to browse featured products. |
{
"type": "object",
"fields": {
"items": "array of product objects with id, url_key, title, brand, model, gender, style_id, image_url, lowest_ask, highest_bid, url",
"pagination": "object with page, limit, has_more",
"total_count": "integer total number of results"
},
"sample": {
"data": {
"items": [
{
"id": "c21909e2-c5ca-48b4-a1db-66d6f6c5b55c",
"url": "https://stockx.com/air-jordan-1-retro-high-virgil-abloh-archive-alaska",
"brand": "Jordan",
"model": "Jordan 1 Retro High",
"title": "Jordan 1 Retro High Virgil Abloh Archive Alaska",
"gender": "men",
"url_key": "air-jordan-1-retro-high-virgil-abloh-archive-alaska",
"style_id": null,
"image_url": "https://images.stockx.com/images/Air-Jordan-1-Retro-High-Off-White-Alaska-Product.jpg?fit=fill&bg=FFFFFF&w=300&h=214&fm=webp&auto=compress&q=90&dpr=2&trim=color&updated_at=1774463315",
"lowest_ask": 346,
"highest_bid": 601
}
],
"pagination": {
"page": 1,
"limit": 5,
"has_more": true
},
"total_count": 40
},
"status": "success"
}
}About the stockx.com API
This API provides 4 endpoints to query StockX product data, covering search, detailed product lookup, bulk style-ID resolution, and historical market statistics. The search_products endpoint returns paginated listings with live lowest ask and highest bid prices, while get_price_history surfaces annual volatility, 90-day averages, and recent sales activity — all as structured JSON.
Search and Browse Products
The search_products endpoint accepts a query string (e.g. 'jordan 1', 'nike dunk') and returns an array of product objects containing id, url_key, title, brand, model, style_id, lowest_ask, highest_bid, and a direct url. Results can be sorted by featured, most_popular, newest_release, lowest_ask, or highest_bid, and paginated using page and limit. Omitting the query browses featured products. The pagination object in the response includes has_more to drive multi-page iteration, and total_count gives the full result set size.
Product Details and Variants
get_product_details takes a url_key — the URL slug identifying a specific product — and returns the full product record. The market object includes lowest_ask, highest_bid, last_sale, sales_last_72h, annual_average_price, and annual_sales_count. The variants array lists variant objects by id, representing individual sizes. Additional fields include colorway and style_id, which can be used to cross-reference with external sneaker databases.
Bulk Style-ID Lookup
bulk_search_by_style_ids accepts a comma-separated list of sneaker style IDs (e.g. 'DZ5485-612,DD1391-100') and returns a map keyed by each style ID. Each value contains title, url_key, brand, model, lowest_ask, highest_bid, and last_sale, or null for style IDs that don't match a listed product. This is useful for cross-referencing a catalog of known style IDs against live market pricing without running individual lookups.
Price History and Market Statistics
get_price_history takes a url_key and returns a statistics object broken into three time windows: annual (average price, volatility, sales count, price premium), last_90_days (average price, sales count), and last_72_hours (recent sales activity). The response also includes last_sale_amount, current_lowest_ask, and current_highest_bid — all in USD as integers. This endpoint is suited for trend analysis, price-premium tracking, and identifying products with high or low volatility.
- Monitor real-time lowest ask and highest bid spreads across a watchlist of sneaker style IDs using
bulk_search_by_style_ids. - Build a sneaker price tracker that alerts when
last_sale_amountdrops below a target threshold fromget_price_history. - Aggregate annual volatility and price premium data from
get_price_historyto rank investment-grade sneakers. - Populate a product catalog with brand, model, colorway, and market pricing by querying
get_product_detailsper URL key. - Surface trending sneakers by sorting
search_productsresults bymost_popularand extractinglowest_askper listing. - Cross-reference a retailer's style ID inventory against StockX market prices using the bulk lookup endpoint.
- Analyze 90-day average prices versus annual averages to identify seasonal pricing patterns for specific silhouettes.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does StockX have an official developer API?+
What does `get_price_history` return beyond just a price number?+
statistics object with three nested windows: annual (average price, volatility, sales count, price premium), last_90_days (average price and sales count), and last_72_hours (recent activity). Alongside those, the endpoint returns current_lowest_ask, current_highest_bid, and last_sale_amount as integer USD values.Does the API return individual sale transaction history or bid/ask order book data?+
Do product details include size-level pricing for variants?+
get_product_details endpoint returns a variants array with variant objects identified by id, but size-level ask and bid prices are not included in those variant objects. Market pricing in the response reflects the product-level aggregate. You can fork the API on Parse and revise it to extend variant objects with per-size market data.How does pagination work in `search_products`?+
page parameter is 1-indexed, and limit controls results per page. The response includes a pagination object with page, limit, and has_more (a boolean indicating whether additional pages exist), plus a total_count integer for the full result set size.