API Reference

Inventory search API

Programmatic access to real-time sneaker inventory data across all tracked retailers. Authenticate with a per-user API key and query by brand, SKU, style color, size, or free text.

Base URLhttps://api.sneakers.itbanque.com
Auth headerX-API-Key
ResponseJSON
MethodGET

What you can do

The SneakersRadar API gives you direct access to inventory data ingested from multiple retailers. Each request returns a paginated list of matching SKUs, with the latest known stock level per location attached to each result.

Access is controlled by per-user API keys. A key inherits the rate limits and pagination caps of the account it belongs to.

One-time secret: the raw API key token is shown only once at creation time. After that, only its 8-character prefix remains visible in the account UI. Store it in a secret manager before leaving the creation screen.

X-API-Key header

Every request must include the X-API-Key header with a valid, active key. The backend resolves the key to a user account and applies that account's plan limits.

Header nameX-API-Key
Key scopePer-user
Applies to/v1/inventory/search

Creation flow

  1. Sign in and open /account.
  2. Scroll to API Keys and click Generate New Key.
  3. Add an optional label to identify the key's consumer.
  4. Click Create — the token appears once. Copy it immediately.
  5. Pass the token as the value of X-API-Key in every request.

Keys can be revoked from the same account page at any time. Revocation takes effect immediately.

Example request

MethodGET
Path/v1/inventory/search
ParametersQuery string
curl --request GET \
  --url 'https://api.sneakers.itbanque.com/v1/inventory/search?brand=Nike&limit=5&offset=0' \
  --header 'X-API-Key: sr_live_your_api_key'

Supported parameters

NameTypeRequiredDescription
style_colorstringoptionalPartial match against the product style/color code.
brandstringoptionalPartial match against product brand.
retailerstringoptionalPartial match against retailer code or name.
sizestringoptionalExact match against normalized SKU size.
retailer_skustringoptionalPartial match against the retailer SKU.
supplier_skustringoptionalPartial match against the supplier SKU.
qstringoptionalBroad search across style color, brand, retailer, size, title, retailer SKU, and supplier SKU.
limitintegeroptionalPage size, default 9. Always capped at your plan's max_page_size.
offsetintegeroptionalRow offset, default 0. Unrestricted when provider access is active; otherwise capped at (max_page_number - 1) × max_page_size.

Returned payload

{
  "total_skus": 1284,
  "count": 2,
  "limit": 2,
  "offset": 0,
  "has_next_page": true,
  "items": [
    {
      "sku": {
        "id": 184221,
        "retailer": "NIKE",
        "size": "10.0",
        "retailer_sku": "HF1234-100",
        "supplier_sku": "HF1234",
        "title": "Nike Air Max 1 White University Red",
        "original_price": 140.0,
        "price": 119.99
      },
      "product": {
        "id": 55120,
        "style_color": "HF1234-100",
        "brand": "Nike",
        "model_name": "Air Max 1",
        "gender": "MEN"
      },
      "inventory": [
        { "location_code": "CA-ON", "stock_level": "HIGH", "as_of": "2026-04-30T14:52:18+00:00" },
        { "location_code": "US-NY", "stock_level": "LOW",  "as_of": "2026-04-30T14:52:18+00:00" }
      ]
    }
  ]
}

Root

  • total_skusTotal number of matching SKUs before pagination.
  • countNumber of items returned in the current page.
  • limitEcho of the accepted page size.
  • offsetEcho of the accepted offset.
  • has_next_pageBoolean — true when more results follow.
  • itemsArray of result objects.

items[].sku

  • idInternal SKU identifier.
  • retailerRetailer code — NIKE, JD_SPORTS, FOOTLOCKER, etc.
  • sizeNormalized size value.
  • retailer_skuRetailer-specific SKU.
  • supplier_skuSupplier SKU when available.
  • titleSKU title captured from source.
  • original_priceOriginal retail price when available.
  • priceCurrent captured price when available.

items[].product

  • idInternal product identifier.
  • style_colorStyle/color code.
  • brandBrand name.
  • model_nameModel or product family name.
  • genderNormalized gender value when available.

items[].inventory[]

  • location_codeLocation or region code.
  • stock_levelLatest stock level: HIGH, MEDIUM, LOW, OOS, or IN_STOCK.
  • as_ofISO 8601 timestamp of the latest snapshot for that location.

Endpoint behavior

Returns the inventory history for a specific SKU at a given retailer, ordered newest-first. Each record includes the stock level, location code, snapshot timestamp, and price at the time of capture.

With provider access enabled for the requested retailer, the sku_history record cap is removed and results are bounded only by the hours window. Otherwise the number of records returned is capped by your plan's sku_history limit.

Example request

MethodGET
Path/v1/reporting/retailers/{retailer}/skus/{retailer_sku}/history
AuthX-API-Key
curl --request GET \
  --url 'https://api.sneakers.itbanque.com/v1/reporting/retailers/DICKS/skus/11943996/history?hours=4320' \
  --header 'X-API-Key: sr_live_your_api_key'

Supported parameters

Path parameters

NameTypeRequiredDescription
retailerstringrequiredRetailer code — e.g. DICKS, NIKE, JD_SPORTS.
retailer_skustringrequiredThe retailer-specific SKU identifier.

Query parameters

NameTypeRequiredDescription
hoursintegeroptionalLookback window in hours. Default 168 (7 days), max 8760 (365 days).

Returned payload

{
  "retailer": "DICKS",
  "cutoff_ts": "2026-04-01T00:00:00+00:00",
  "sku": {
    "retailer_sku": "11943996",
    "size": "10.0",
    "style_color": "HF1234-100",
    "model_name": "Air Max 1",
    "brand": "Nike"
  },
  "history": [
    {
      "stock_level": "HIGH",
      "location": "US-EAST",
      "record_created_at": "2026-04-28T09:14:00+00:00",
      "price": 119.99
    },
    {
      "stock_level": "LOW",
      "location": "US-EAST",
      "record_created_at": "2026-04-21T07:30:00+00:00",
      "price": 119.99
    }
  ],
  "count": 2,
  "limit": 5,
  "has_more": false
}

Root

  • retailerRetailer code.
  • cutoff_tsISO 8601 timestamp marking the start of the lookback window.
  • skuBasic SKU metadata object.
  • historyArray of inventory records, newest first.
  • countNumber of records returned.
  • limitPlan cap applied (null when provider mode is active).
  • has_moreBoolean — true when older records exist beyond the cap.

history[]

  • stock_levelStock level at capture: HIGH, MEDIUM, LOW, OOS, or IN_STOCK.
  • locationLocation or region code.
  • record_created_atISO 8601 timestamp of the snapshot.
  • pricePrice captured at that time, when available.

Endpoint behavior

Query real-time StockX market data for all variants of a product by its style ID. Reads from a shared platform cache first (default TTL: 1 hour); on a cache miss, fetches live from StockX and backfills the cache. Returns the raw StockX response array — one item per variant. Actual cache TTL depends on your account plan — contact us to upgrade for a shorter refresh window.

Example request

MethodGET
Path/v2/stockx/market/search
AuthX-API-Key
curl --request GET \
  --url 'https://api.sneakers.itbanque.com/v2/stockx/market/search?style_id=555088-711' \
  --header 'X-API-Key: sr_live_your_api_key'

Supported parameters

NameTypeRequiredDescription
style_idstringrequiredStockX product style ID — e.g. 555088-711. Must be an exact match against the first StockX catalog result.
sizestringoptionalFilter to a specific size — e.g. "9" or "10.5". Must be a numeric value.
forcebooleanoptionalBypass the cache and fetch fresh data from StockX. Defaults to false.

Returned payload

Returns a unified object with platform, style_id, and a variants array. Each variant corresponds to one size.

{
  "platform": "stockx",
  "style_id": "555088-711",
  "fetched_at": "2026-05-07T12:34:56.789000+00:00",
  "variants": [
    {
      "size": "9",
      "lowestAsk": 222.00,
      "highestBid": 198.00,
      "lastSale": null,
      "currency": "USD"
    },
    {
      "size": "10",
      "lowestAsk": 235.00,
      "highestBid": null,
      "lastSale": null,
      "currency": "USD"
    }
  ]
}

Root

  • platformData source — always "stockx".
  • style_idThe style ID used to query the product.
  • fetched_atISO 8601 timestamp (with timezone) of when the data was fetched from the source platform (StockX / GOAT) — not the time of this API request.
  • variantsArray of variant objects, one per size.

variants[]

  • sizeHuman-readable size — e.g. "9", "10".
  • lowestAskCurrent lowest ask price in USD.
  • highestBidCurrent highest bid price in USD, or null if none.
  • lastSaleMost recent sale price in USD — always null for StockX.
  • currencyCurrency code — e.g. USD.

Endpoint behavior

Create a single StockX listing by style ID and size.

Example request

MethodPOST
Path/v2/stockx/simple-listing
AuthX-API-Key
curl --request POST \
  --url 'https://api.sneakers.itbanque.com/v2/stockx/simple-listing' \
  --header 'X-API-Key: sr_live_your_api_key' \
  --header 'Content-Type: application/json' \
  --data '{"styleId":"DD1391-100","size":"10","amount":"150"}'

Supported parameters

NameTypeRequiredDescription
styleIdstringrequiredStockX style ID — e.g. DD1391-100.
sizestringrequiredSize value — e.g. "10" or "10.5".
amountstringrequiredListing price in USD. Rounded to the nearest integer.
costnumberoptionalYour purchase cost. Optional — used for profit tracking.
currencyCodestringoptionalCurrency code. Defaults to the account's configured market currency.
activebooleanoptionalWhether to activate the listing immediately. Defaults to true.
expiresAtstringoptionalISO 8601 expiry timestamp. Optional.
inventoryTypestringoptionalInventory type. Optional — e.g. "standard".

Returned payload

Returns ok: true on success.

{ "ok": true }

Endpoint behavior

Query real-time GOAT market data for all sizes of a product by its style ID. Reads from a shared platform cache first (default TTL: 1 hour); on a cache miss, fetches live from GOAT and backfills the cache. Returns the same unified format as the StockX market endpoint.

Example request

MethodGET
Path/v2/goat/market/search
AuthX-API-Key
curl --request GET \
  --url 'https://api.sneakers.itbanque.com/v2/goat/market/search?style_id=U9060JBR' \
  --header 'X-API-Key: sr_live_your_api_key'

Supported parameters

NameTypeRequiredDescription
style_idstringrequiredProduct style ID — e.g. U9060JBR. Used to search the GOAT catalog.
country_codestringoptionalCountry code for pricing. Defaults to the account's configured country_code (usually US).

Returned payload

Identical structure to the StockX market response. platform is always "goat". highestBid is always null — GOAT does not expose buyer offers.

{
  "platform": "goat",
  "style_id": "U9060JBR",
  "fetched_at": "2026-05-07T12:34:56.789000+00:00",
  "variants": [
    {
      "size": "9",
      "lowestAsk": 197.00,
      "highestBid": null,
      "lastSale": 198.00,
      "currency": "USD"
    },
    {
      "size": "9.5",
      "lowestAsk": 294.00,
      "highestBid": null,
      "lastSale": null,
      "currency": "USD"
    }
  ]
}

Root

  • platformData source — always "goat".
  • style_idThe style ID used to query the product.
  • fetched_atISO 8601 timestamp (with timezone) of when the data was fetched from the source platform (StockX / GOAT) — not the time of this API request.
  • variantsArray of variant objects, one per size.

variants[]

  • sizeHuman-readable size — e.g. "9", "9.5".
  • lowestAskCurrent lowest listing price in USD, or null if no listings.
  • highestBidAlways null — GOAT does not support buyer offers.
  • lastSaleMost recent sale price in USD, or null if no sales recorded.
  • currencyCurrency code — e.g. USD.

Error responses

401 UnauthorizedMissing or invalid API key
{ "detail": "Not authenticated" }
400 Bad RequestPagination exceeds plan cap
{ "detail": "limit exceeds your plan cap" }

Treat 401 as an authentication failure — check that the key is active and the header name is exactly X-API-Key. Treat 400 as a contract error — reduce limit or offset to stay within your plan bounds.