Skip to content
scrapeatlas.Dashboard

Get StockX price history

Try in Playground

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.

GET/v1/stockx/product/price-historyx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
6
slugstringquery

Product URL key from stockx.com/{slug}, for example air-jordan-4-retro-toro-bravo-2026. Provide slug or url.

max 200 chars

Exampleair-jordan-4-retro-toro-bravo-2026
urlstringquery

Full product URL: https://stockx.com/{slug} (a locale prefix such as /en-gb/ is accepted).

max 400 chars

rangeenumdefault: "all"query

all (default), 1y, 6m, 3m or 1m.

one of: all, 1y, 6m, 3m, 1m · default: "all"

Example3m
marketenumdefault: "us"query

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 · default: "us"

sizestringquery

The size the chart covers (id and label), or null for the whole product.

max 24 chars

size_idstringquery

Optional.

Response fields
29
requestIdstring

Request correlation UUID.

Upstream requests, decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

The stockx.com page the data describes.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

Retrieval coverage and warning codes for this response.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

Product UUID, URL key, page URL and title.

product.idstring

Always included.

min 1 chars · max 100 chars

product.slugstring

Always included.

product.urlstring

Always included.

absolute HTTPS URL

product.titlestring

Always included.

marketenum

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

currencystring

Currency of the prices.

rangeenum

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.

size.idstring

Always included.

min 1 chars · max 100 chars

size.sizestringnullable

Always included.

startDatestringnullable

Always included.

endDatestring

Always included.

Up to 100 chart points in date order: date (ISO 8601) and price.

up to 100 items

points.datestring

Always included.

points.pricenumber

Always included.

≥ 0

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.

Error codes
12
HTTPfailure.codeMeaning
200partialUsable data with filter_not_applied, malformed_products_omitted, sizes_truncated, market_history_unavailable or size_labels_unavailable warnings.
400invalid_requestMissing, 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.
401unauthorizedMissing or invalid worker API key.
404not_foundUnknown product, or a size the product does not have.
429upstream_rate_limitedStockX rate limited the request.
502upstream_challengedStockX's edge refused the request or its challenge did not clear (status challenged).
502unsupported_pageMalformed or mismatched source data, or StockX changed its web client queries.
502response_too_largeA response exceeded 4 MiB.
502request_limitThe upstream request budget was exhausted.
502upstream_errorNetwork failure, GraphQL error or an unexpected upstream status after one retry.
503busyBoth retrieval slots and the queue are occupied, or the wait for a slot expired.
504timeoutThe 45-second deadline elapsed.