# StockX Scraper - Sneaker & Streetwear Market Prices (`jongoose/stockx-scraper`) Actor

Scrape live StockX market data - lowest ask, highest bid, last sale, annual average price, sales volume & volatility - for sneakers, streetwear and collectibles. Search by keyword or paste any StockX search / category URL.

- **URL**: https://apify.com/jongoose/stockx-scraper.md
- **Developed by:** [James Scott](https://apify.com/jongoose) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## StockX Scraper - Sneaker & Streetwear Market Prices

Scrape **live StockX market data** - lowest ask, highest bid, last sale and more - for sneakers, streetwear and collectibles into clean, structured records. No StockX account or API key required. Search by keyword or paste any StockX search / category URL.

### What you get (per product)

- **productId** and canonical **stockx.com URL** (plus `urlKey` / `ticker` slug)
- **name**, title, **brand**, **model**, gender, condition
- **Live market data:** **lowestAsk**, **highestBid**, **lastSale**
- **Market stats:** annual average price, annual sales count, annual volatility, price premium, sales in the last 72 hours
- **releaseDate** and **retailPrice** (retail is read from the trait or, if absent, the product description)
- **colorway** / **styleId** when present (see note below)
- **imageUrl** (product image) and **category** / primary category

> **Note on colorway / styleId / retailPrice:** StockX's search/browse response ships live market data for every product but only a limited trait set (typically Release Date). `colorway` and `styleId` live on the per-product detail page and are therefore usually `null` on search-only runs; `retailPrice` is recovered from the product description when not present as a trait. All available traits are mapped generically, so these populate automatically wherever StockX includes them.

### Input

- **StockX URLs** - paste one or more search / category URLs (e.g. `https://stockx.com/search?s=jordan%201`, `https://stockx.com/sneakers`, `https://stockx.com/brands/jordan`). Pagination is automatic.
- Or leave URLs empty and set a **Search query** (e.g. `yeezy 350`).
- **Max products** caps the run.
- **Proxy** - **residential is required** (see below).

#### Example input

```json
{
    "query": "jordan 1",
    "maxItems": 200,
    "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

Or with explicit URLs:

```json
{
    "startUrls": [{ "url": "https://stockx.com/search?s=yeezy%20350" }],
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Why this actor

- **Real market intelligence:** every record carries StockX's **bid / ask / last-sale** prices plus volume and volatility stats - the numbers resellers and analysts actually price against, not just a listing photo.
- **Fast + complete:** each field is read straight from the search page's embedded JSON, so there are **no extra per-product requests** - a full page of products (with market data) in a single fetch.
- Export as JSON, CSV, Excel, or pull via the Apify API.

### Proxy - residential required

StockX sits behind an aggressive Cloudflare / bot-management layer. Datacenter IPs are reliably **403 / challenged**, so this Actor **defaults to and requires an Apify RESIDENTIAL proxy**. If every page comes back blocked, the proxy tier is almost always the cause - confirm it is set to residential.

### Legal

Public market data for **research**. This is **not a consumer report** and **must not be used for FCRA purposes** (e.g. eligibility for credit, employment, insurance, or housing). Respect StockX's Terms of Service and applicable law.

# Actor input Schema

## `startUrls` (type: `array`):

One or more StockX search or category URLs. Build a search on stockx.com (e.g. https://stockx.com/search?s=jordan%201) or open a category (e.g. https://stockx.com/sneakers, https://stockx.com/brands/jordan) and paste the URL(s) here - the most precise way to target products. Pagination (the `page` query param) is handled automatically. If left empty, the Search query below is used.

## `query` (type: `string`):

Keyword to search StockX for (e.g. "jordan 1", "yeezy 350", "supreme box logo"). Used only when no Start URL is provided. If both are empty, the StockX sneakers feed is scraped.

## `maxItems` (type: `integer`):

Stop after collecting this many products.

## `proxyConfiguration` (type: `object`):

StockX is behind an aggressive Cloudflare / bot-management layer, so a RESIDENTIAL proxy is REQUIRED - datacenter IPs get 403 / challenged. This field defaults to Apify residential; leave it as residential for reliable results.

## Actor input object example

```json
{
  "startUrls": [],
  "query": "jordan 1",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "query": "jordan 1"
};

// Run the Actor and wait for it to finish
const run = await client.actor("jongoose/stockx-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "query": "jordan 1",
}

# Run the Actor and wait for it to finish
run = client.actor("jongoose/stockx-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "query": "jordan 1"
}' |
apify call jongoose/stockx-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jongoose/stockx-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/BCjbtspIpDNz3oIpu/builds/2T0EcbSjumIldGFhF/openapi.json
