Get StockX price history
Get the StockX sale price chart for a product or one of its sizes: up to 100 dated price points over all time or the last year, six months, three months or month.
/v1/stockx/product/price-historyx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Product URL key from stockx.com/{slug}, for example air-jordan-4-retro-toro-bravo-2026. Provide slug or url.
max 200 chars
air-jordan-4-retro-toro-bravo-2026Full product URL: https://stockx.com/{slug} (a locale prefix such as /en-gb/ is accepted).
max 400 chars
all (default), 1y, 6m, 3m or 1m.
one of: all, 1y, 6m, 3m, 1m · default: "all"
3mMarket whose prices are returned: us (USD, default), gb (GBP), de or fr (EUR), ca (CAD), au (AUD) or jp (JPY).
one of: us, gb, de, fr, ca, au, jp · default: "us"
The size the chart covers (id and label), or null for the whole product.
max 24 chars
Optional.
Request correlation UUID.
Upstream requests, decoded response bytes and elapsed milliseconds.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable data is returned; inspect status and coverage for omissions.
success, partial, failed or challenged. HTTP 200 can be partial.
one of: success, partial
The stockx.com page the data describes.
absolute HTTPS URL
UTC retrieval time.
Retrieval coverage and warning codes for this response.
Always included.
Always included.
Always included.
Product UUID, URL key, page URL and title.
Always included.
min 1 chars · max 100 chars
Always included.
Always included.
absolute HTTPS URL
Always included.
Market whose prices are returned: us (USD, default), gb (GBP), de or fr (EUR), ca (CAD), au (AUD) or jp (JPY).
one of: us, gb, de, fr, ca, au, jp
Currency of the prices.
all (default), 1y, 6m, 3m or 1m.
one of: all, 1y, 6m, 3m, 1m
The size the chart covers (id and label), or null for the whole product.
Always included.
min 1 chars · max 100 chars
Always included.
Always included.
Always included.
Up to 100 chart points in date order: date (ISO 8601) and price.
up to 100 items
Always included.
Always included.
≥ 0
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 200 | partial | Usable data with filter_not_applied, malformed_products_omitted, sizes_truncated, market_history_unavailable or size_labels_unavailable warnings. |
| 400 | invalid_request | Missing, duplicate, malformed or unsupported parameters, both or neither of slug and url, both size and size_id, a link outside stockx.com product pages, a page outside 1–25, price_min above price_max, or an unknown sort, gender or color. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 404 | not_found | Unknown product, or a size the product does not have. |
| 429 | upstream_rate_limited | StockX rate limited the request. |
| 502 | upstream_challenged | StockX's edge refused the request or its challenge did not clear (status challenged). |
| 502 | unsupported_page | Malformed or mismatched source data, or StockX changed its web client queries. |
| 502 | response_too_large | A response exceeded 4 MiB. |
| 502 | request_limit | The upstream request budget was exhausted. |
| 502 | upstream_error | Network failure, GraphQL error or an unexpected upstream status after one retry. |
| 503 | busy | Both retrieval slots and the queue are occupied, or the wait for a slot expired. |
| 504 | timeout | The 45-second deadline elapsed. |