{
  "openapi": "3.0.1",
  "info": {
    "title": "StockX Scraper – Sneaker Prices, Resale Data & Product Details",
    "description": "Scrape StockX resale prices and product data: lowest ask, highest bid, last sale and retail price, plus per-size market data. Search by keyword or browse sneakers, streetwear, watches, handbags, electronics, collectibles and trading cards. No login and no browser automation.",
    "version": "0.0",
    "x-build-id": "exyxXAiPwW1U3G6ss"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rl1987~stockx-api-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rl1987-stockx-api-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/rl1987~stockx-api-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rl1987-stockx-api-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/rl1987~stockx-api-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rl1987-stockx-api-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "product",
              "salesHistory"
            ],
            "type": "string",
            "description": "What to scrape. <b>Search</b> finds products by keyword. <b>Product lookup</b> takes StockX product ids, slugs or URLs you already have. <b>Sales history</b> returns the individual sales behind a product's price chart, one row per sale.",
            "default": "search"
          },
          "q": {
            "title": "Search keyword",
            "type": "string",
            "description": "Keywords to search for sneakers (e.g. 'Jordan 1 Retro High'). Give this or a category - an input with neither has no way in and collects nothing."
          },
          "category": {
            "title": "Category",
            "enum": [
              "sneakers",
              "apparel",
              "accessories",
              "collectibles",
              "shoes",
              "trading-cards",
              "electronics",
              "streetwear",
              "watches",
              "handbags"
            ],
            "type": "string",
            "description": "Scope the browse to one StockX category. Works on its own (no keyword needed) or alongside a search keyword. Three values from the old dropdown are not StockX categories and are redirected to the one that holds them, so saved tasks keep working."
          },
          "brand": {
            "title": "Brand",
            "type": "string",
            "description": "Scope to one brand, server-side. Works on its own or with any other filter. <b>Spelling- and case-exact</b> — <code>Hoka One One</code> works, <code>HOKA ONE ONE</code> does not. The value matches the <code>brandName</code> this Actor returns, so a brand you see in the output can be pasted straight back in. The list is the brands verified to work, not all of them — type any exact StockX brand name. Note a brand also matches its collaborations (asking for Nike returns Palace x Nike)."
          },
          "gender": {
            "title": "Gender / age",
            "enum": [
              "men",
              "women",
              "kids",
              "unisex",
              "infant",
              "toddler",
              "preschool",
              "child"
            ],
            "type": "string",
            "description": "Scope to one gender or age group, server-side. These eight are the complete set StockX accepts — <code>boys</code>, <code>girls</code>, <code>youth</code>, <code>male</code> and <code>female</code> are <b>not</b> among them and are refused with an explanation rather than returning an empty run."
          },
          "activity": {
            "title": "Activity",
            "type": "string",
            "description": "Scope to one sport or activity, server-side. These nine are verified to return results; <code>lifestyle</code>, <code>training</code>, <code>gym</code>, <code>walking</code> and <code>outdoor</code> are not accepted. The list may be incomplete, so other values can be typed — one that matches nothing ends the run with a message saying so, unbilled."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "featured",
              "most-active",
              "lowest_ask",
              "highest_bid",
              "recent_bids",
              "recent_asks",
              "deadstock_sold",
              "release_date",
              "price_premium",
              "last_sale"
            ],
            "type": "string",
            "description": "Order the results server-side. Each option carries the sort direction StockX itself declares for it (sending any other direction silently returns the default feed, so the direction is not a separate input)."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products whose lowest ask is at least this much, in the selected currency. StockX's API takes no price arguments, so this is applied by the Actor — but it is applied <b>before billing</b>, so filtered-out products are never charged."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products whose lowest ask is at most this much, in the selected currency. Applied by the Actor <b>before billing</b>, so filtered-out products are never charged."
          },
          "productIds": {
            "title": "Product ids, slugs or URLs",
            "type": "array",
            "description": "Used by <b>Product lookup</b> and <b>Sales history</b>. Each entry can be a StockX product id (<code>019cfdb4-3545-7b24-8773-11f7411145fb</code>), a product slug (<code>air-jordan-1-retro-high-og-chicago-reimagined-lost-and-found</code>) or a full product URL (<code>https://stockx.com/air-jordan-1-retro-low-og-chicago-2025</code>) — StockX accepts the id and the slug interchangeably.",
            "items": {
              "type": "string"
            }
          },
          "maxSalesPerProduct": {
            "title": "Max sales per product",
            "minimum": 0,
            "type": "integer",
            "description": "<b>Sales history</b> only. How many individual sales to collect per product, newest first. <code>0</code> = the whole history, which can be large — one popular Jordan 1 has over 18,000 sales. <b>Sales are billed per row</b>, so this is the knob that bounds the cost of a run: the default 100 is $0.15 per product.",
            "default": 100
          },
          "salesSince": {
            "title": "Sales since",
            "type": "string",
            "description": "<b>Sales history</b> only. Stop at the first sale older than this date, e.g. <code>2026-01-01</code>. The feed is newest-first, so this is a cheap way to ask for a recent window instead of the whole history."
          },
          "country": {
            "title": "Market (country)",
            "type": "string",
            "description": "Two-letter ISO 3166 country code selecting <b>whose order book is quoted</b>. A resale price is market-specific: for one product the lowest ask was 245 in <code>US</code> and 398 in <code>GB</code>, both in USD. Defaults to <code>US</code>, which is what every run returned before this input existed.",
            "default": "US"
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "JPY",
              "CAD",
              "AUD",
              "CHF",
              "HKD",
              "KRW",
              "MXN",
              "SEK",
              "PLN",
              "SGD",
              "NZD",
              "NOK",
              "DKK",
              "BRL",
              "CLP",
              "CNY",
              "HUF",
              "IDR",
              "ILS",
              "KWD",
              "MOP",
              "MYR",
              "PEN",
              "PHP",
              "THB",
              "TWD",
              "VND"
            ],
            "type": "string",
            "description": "Currency the ask / bid / last-sale amounts are denominated in. Independent of the market: <code>GB</code> + <code>USD</code> gives the UK book priced in dollars. Every value listed here is accepted by StockX.",
            "default": "USD"
          },
          "includeDetails": {
            "title": "Include product details",
            "type": "boolean",
            "description": "Fetch each product's detail page for description, release date, per-size market pricing (<code>variantSizes</code>, including a per-size bid-ask <code>spread</code>) and the 12-month statistics. <b>Billing:</b> a detail-enriched product is charged twice — once as a product-list row and once as a product-detail row — so it costs $1.50 per 1,000 rather than $0.75. Off by default for speed and cost.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of products to scrape. 0 = all (no limit).",
            "default": 100
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many result pages, for a predictable per-run cost. A page is <b>about 40 products</b> — StockX clamps the page size to 40 but has been measured returning 43 — so budget on the page count, not on an exact multiple of 40. <code>0</code> = no page limit. Note StockX reports a constant <code>total: 1000</code> for every query regardless of the real catalogue size, so paging stops when a page returns nothing new rather than at a reported total.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Route requests through a proxy (Apify Proxy by default).",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}