StockX data, ready when you are.
Market prices, listings and last sales from StockX.
- See the price before every call
- Pay only for records that come back
- No subscription. Your balance never expires
What you can get.
- $0.0009per recordTry it →
Products
Full detail with live market data for up to ten StockX products. Last sale, 90-day and 12-month averages, sales counts, bids, and every size's ask/bid/last sale.
- $0.0009per recordTry it →
Search
Keyword search on StockX. Every hit a full product card.
- $0.0009per recordTry it →
Listing
A brand or category page URL. Its products in page order.
What the data looks like.
| primaryTitle | brand | colorway | category | retailPrice | lastSale | lowestAsk | highestBid | sales72Hours | averagePrice12Months | slug | productId | productUrl | styleId | releaseDate | expressDeliveryDate | expressLatestDeliveryDate | images | details |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Stride Runner 90 | Stride | Sea Salt/White | sneakers | 130 | 176 | 182 | 160 | 48 | 153 | stride-runner-90 | 366477383 | https://stockx.com/stride-runner-90-1000 | 3684041094 | 2026-10-05 | 2026-10-13 | 2026-10-09 |
|
|
| Corvo Court Classic Low | Corvo | Black/Black | sneakers | 110 | 99 | 96 | 84 | 21 | 104 | corvo-court-classic-low | 726332240 | https://stockx.com/corvo-court-classic-low-1001 | 3562676303 | 2026-10-04 | 2026-10-12 | 2026-10-07 |
|
|
| Stride Trail Pro GTX | Stride | Moss/Grey | sneakers | 170 | 221 | 215 | 189 | 9 | 196 | stride-trail-pro-gtx | 2324639283 | https://stockx.com/stride-trail-pro-gtx-1002 | 546241661 | 2026-10-04 | 2026-10-14 | 2026-10-09 |
|
|
For developers
API reference.
One endpoint, POST /v1/stockx. Open an operation to see its fields.
Productsproducts
Full detail with live market data for up to ten StockX products. Last sale, 90-day and 12-month averages, sales counts, bids, and every size's ask/bid/last sale.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | |
| country | string · ISO alpha-2 |
Response fields, each row of data
| Field | Type |
|---|---|
| slug | string |
| productId | string |
| productUrl | string |
| primaryTitle | string |
| secondaryTitle | string |
| brand | string |
| model | string |
| colorway | string |
| styleId | string |
| category | string |
| subCategory | string |
| categoryPath | string |
| contentGroup | string |
| gender | string |
| condition | string |
| sizeConvention | string |
| retailPrice | number |
| releaseDate | string |
| description | string |
| tags | list of string |
| lastSale | number |
| sales72Hours | integer |
| averagePrice90Days | number |
| sales90Days | integer |
| priceVolatility | number |
| sales12Months | integer |
| averagePrice12Months | number |
| bids | integer |
| askInventoryType | string |
| expressAskCount | integer |
| expressShipLowestAsk | number |
| expressDeliveryDate | string |
| expressLatestDeliveryDate | string |
| images | list of string |
| sizes | any |
| attributes | any |
| lowestAsk | number |
| highestBid | number |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/stockx \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"products","subjects":["https://stockx.com/nike-dunk-low-retro-white-black-2021"],"country":"US"}'Example response rows
[
{
"primaryTitle": "Stride Runner 90",
"brand": "Stride",
"colorway": "Sea Salt/White",
"category": "sneakers",
"retailPrice": 130,
"lastSale": 176,
"lowestAsk": 182,
"highestBid": 160,
"sales72Hours": 48,
"averagePrice12Months": 153,
"slug": "stride-runner-90",
"productId": "366477383",
"productUrl": "https://stockx.com/stride-runner-90-1000",
"styleId": "3684041094",
"releaseDate": "2026-10-05",
"expressDeliveryDate": "2026-10-13",
"expressLatestDeliveryDate": "2026-10-09",
"images": [
"https://img.stockx.com/stride-runner-90.jpg"
],
"details": {}
},
{
"primaryTitle": "Corvo Court Classic Low",
"brand": "Corvo",
"colorway": "Black/Black",
"category": "sneakers",
"retailPrice": 110,
"lastSale": 99,
"lowestAsk": 96,
"highestBid": 84,
"sales72Hours": 21,
"averagePrice12Months": 104,
"slug": "corvo-court-classic-low",
"productId": "726332240",
"productUrl": "https://stockx.com/corvo-court-classic-low-1001",
"styleId": "3562676303",
"releaseDate": "2026-10-04",
"expressDeliveryDate": "2026-10-12",
"expressLatestDeliveryDate": "2026-10-07",
"images": [
"https://img.stockx.com/corvo-court-classic-low.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Searchsearch
Keyword search on StockX. Every hit a full product card.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | |
| country | string · ISO alpha-2 | |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| slug | string |
| productId | string |
| productUrl | string |
| primaryTitle | string |
| secondaryTitle | string |
| brand | string |
| model | string |
| colorway | string |
| styleId | string |
| category | string |
| subCategory | string |
| categoryPath | string |
| contentGroup | string |
| gender | string |
| condition | string |
| sizeConvention | string |
| retailPrice | number |
| releaseDate | string |
| description | string |
| tags | list of string |
| lastSale | number |
| sales72Hours | integer |
| averagePrice90Days | number |
| sales90Days | integer |
| priceVolatility | number |
| sales12Months | integer |
| averagePrice12Months | number |
| bids | integer |
| askInventoryType | string |
| expressAskCount | integer |
| expressShipLowestAsk | number |
| expressDeliveryDate | string |
| expressLatestDeliveryDate | string |
| images | list of string |
| sizes | any |
| attributes | any |
| lowestAsk | number |
| highestBid | number |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/stockx \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"search","query":"Air Jordan 1","country":"US","limit":20}'Example response rows
[
{
"primaryTitle": "Stride Trail Pro GTX",
"brand": "Stride",
"colorway": "Moss/Grey",
"category": "sneakers",
"retailPrice": 170,
"lastSale": 221,
"lowestAsk": 215,
"highestBid": 189,
"sales72Hours": 9,
"averagePrice12Months": 196,
"slug": "stride-trail-pro-gtx",
"productId": "1566781872",
"productUrl": "https://stockx.com/stride-trail-pro-gtx-1000",
"styleId": "3003996386",
"releaseDate": "2026-10-06",
"expressDeliveryDate": "2026-10-14",
"expressLatestDeliveryDate": "2026-10-08",
"images": [
"https://img.stockx.com/stride-trail-pro-gtx.jpg"
],
"details": {}
},
{
"primaryTitle": "Stride Trail Pro GTX",
"brand": "Stride",
"colorway": "Black/Orange",
"category": "sneakers",
"retailPrice": 170,
"lastSale": 198,
"lowestAsk": 205,
"highestBid": 180,
"sales72Hours": 14,
"averagePrice12Months": 184,
"slug": "stride-trail-pro-gtx",
"productId": "2674647671",
"productUrl": "https://stockx.com/stride-trail-pro-gtx-1001",
"styleId": "2303690539",
"releaseDate": "2026-10-02",
"expressDeliveryDate": "2026-10-04",
"expressLatestDeliveryDate": "2026-10-10",
"images": [
"https://img.stockx.com/stride-trail-pro-gtx.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Listinglisting
A brand or category page URL. Its products in page order.
| Field | Type | Meaning |
|---|---|---|
| subject * | string · ≤400 chars | The listing page URL. |
| country | string · ISO alpha-2 | |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| slug | string |
| productId | string |
| productUrl | string |
| primaryTitle | string |
| secondaryTitle | string |
| brand | string |
| model | string |
| colorway | string |
| styleId | string |
| category | string |
| subCategory | string |
| categoryPath | string |
| contentGroup | string |
| gender | string |
| condition | string |
| sizeConvention | string |
| retailPrice | number |
| releaseDate | string |
| description | string |
| tags | list of string |
| lastSale | number |
| sales72Hours | integer |
| averagePrice90Days | number |
| sales90Days | integer |
| priceVolatility | number |
| sales12Months | integer |
| averagePrice12Months | number |
| bids | integer |
| askInventoryType | string |
| expressAskCount | integer |
| expressShipLowestAsk | number |
| expressDeliveryDate | string |
| expressLatestDeliveryDate | string |
| images | list of string |
| sizes | any |
| attributes | any |
| lowestAsk | number |
| highestBid | number |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/stockx \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"listing","subject":"https://stockx.com/brands/nike","country":"US","limit":20}'Example response rows
[
{
"primaryTitle": "Sonora Studio Headphones",
"brand": "Sonora",
"colorway": "Matte Black",
"category": "electronics",
"retailPrice": 349,
"lastSale": 310,
"lowestAsk": 299,
"highestBid": 263,
"sales72Hours": 12,
"averagePrice12Months": 330,
"slug": "sonora-studio-headphones",
"productId": "163904352",
"productUrl": "https://stockx.com/sonora-studio-headphones-1000",
"styleId": "895962177",
"releaseDate": "2026-10-12",
"expressDeliveryDate": "2026-10-08",
"expressLatestDeliveryDate": "2026-10-14",
"images": [
"https://img.stockx.com/sonora-studio-headphones.jpg"
],
"details": {}
},
{
"primaryTitle": "Sonora Buds Pro",
"brand": "Sonora",
"colorway": "White",
"category": "electronics",
"retailPrice": 199,
"lastSale": 168,
"lowestAsk": 162,
"highestBid": 143,
"sales72Hours": 31,
"averagePrice12Months": 184,
"slug": "sonora-buds-pro",
"productId": "579672626",
"productUrl": "https://stockx.com/sonora-buds-pro-1001",
"styleId": "3844220973",
"releaseDate": "2026-10-13",
"expressDeliveryDate": "2026-10-13",
"expressLatestDeliveryDate": "2026-10-10",
"images": [
"https://img.stockx.com/sonora-buds-pro.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Historyhistoryfree
Stored market series of products already held. Free.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | |
| metric | enum | last_sale · lowest_ask · highest_bid · average_price_90_days · sales_90_days · sales_72_hours · average_price_12_months · sales_12_months · bids · price_volatility |
| days | integer · 1-730 |