# StockX Search Scraper (`xtracto/stockx-search-scraper`) Actor

Run keyword searches on StockX and collect every result tile across paginated pages.

- **URL**: https://apify.com/xtracto/stockx-search-scraper.md
- **Developed by:** [Farhan Febrian Nauval](https://apify.com/xtracto) (community)
- **Categories:** Automation, E-commerce, Lead generation
- **Stats:** 10 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Search Scraper

Search any keyword or browse any StockX category and export every result as structured JSON — with live ask, bid, and full market statistics on every product tile.

### Why use this actor

- **No account required** — works entirely with public StockX search pages; no login, cookies, or API key needed.
- **Stable JSON output** — every run produces the same field names, ready for spreadsheets, databases, or downstream pipelines.
- **Flexible input** — accepts plain keywords (`jordan 1 chicago`) or full StockX URLs in the same run.
- **Deep pagination** — crawls up to 50 pages per query and stops automatically when results run out.
- **Rich market data per tile** — lowest ask, highest bid, last sale, annual average price, volatility, and 72-hour sales velocity included on every row.
- **Localized pricing** — choose any ship-to country and display currency at run time.

### How it works

1. You provide one or more search keywords or StockX search/category URLs in the `startUrls` field.
2. The actor fetches the first page of results for each query, then walks subsequent pages up to your `maxPagesPerUrl` limit.
3. Each product tile on the page is parsed and saved as a flat JSON record with identity, market state, and statistics fields.
4. Pagination stops early when a page returns zero results, keeping your run fast and cost-efficient.
5. All records land in Apify's default dataset, exportable as JSON, CSV, Excel, or HTML instantly.

You don't need to manage any browsers or scrapers.

### Input

```json
{
    "startUrls": [
        "jordan 1 chicago",
        "https://stockx.com/search?s=yeezy+350",
        "https://stockx.com/search?category=sneakers&s=nike"
    ],
    "maxPagesPerUrl": 3,
    "country": "US",
    "currency": "USD",
    "maxConcurrency": 3,
    "maxRequestRetries": 5,
    "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `startUrls` | string\[] | — | **Required.** Plain-text keywords or full StockX search/category URLs. |
| `maxPagesPerUrl` | integer | `3` | Pages to crawl per entry (max 50). Stops early when a page returns no results. |
| `country` | string | `"US"` | Two-letter ISO country code for pricing locale. |
| `currency` | string | `"USD"` | ISO currency code (e.g. `USD`, `EUR`, `GBP`). |
| `maxConcurrency` | integer | `3` | Number of parallel workers. |
| `maxRequestRetries` | integer | `5` | Retry budget per request before skipping. |
| `proxyConfiguration` | object | RESIDENTIAL | Apify Proxy or custom proxy list. RESIDENTIAL group recommended. |

### Output

```json
{
    "searchLabel": "jordan 1",
    "page": 1,
    "scrapedAt": "2026-05-30T05:01:29Z",
    "urlKey": "air-jordan-1-retro-low-og-sp-travis-scott-shy-pink",
    "url": "https://stockx.com/air-jordan-1-retro-low-og-sp-travis-scott-shy-pink",
    "isAd": false,
    "productId": "019b0a03-b142-73e7-b0f9-3cf04d719268",
    "name": "Travis Scott Shy Pink",
    "brand": "Jordan",
    "lowestAsk": 390,
    "highestBid": 900,
    "image": "https://images.stockx.com/images/Air-Jordan-1-Retro-Low-OG-SP-Travis-Scott-Shy-Pink-Product.jpg",
    "node": { "... full raw node with market stats, traits, media ..." }
}
```

| Field | Type | Description |
| --- | --- | --- |
| `searchLabel` | string | The keyword or URL that produced this result. |
| `page` | integer | Page number this tile was found on. |
| `scrapedAt` | string | ISO 8601 timestamp of when the record was collected. |
| `urlKey` | string | StockX slug — use to build the product URL or feed other actors. |
| `url` | string | Full StockX product URL. |
| `isAd` | boolean | `true` if StockX marked this tile as a promoted listing. |
| `productId` | string | StockX UUID for the product. |
| `name` | string | Product display name. |
| `brand` | string | Brand (e.g. `Jordan`, `Nike`, `New Balance`). |
| `lowestAsk` | number | Current lowest ask in the selected currency. |
| `highestBid` | number | Current highest bid in the selected currency. |
| `image` | string | Primary product image URL. |
| `node` | object | Full raw node including market statistics, traits, and media. |

### Other StockX Scrapers

| Actor | What it does |
| --- | --- |
| [StockX Search Scraper](https://apify.com/stockx-search-scraper) | Search keywords or categories; get every result tile with live market data. |
| [StockX Product Scraper](https://apify.com/stockx-product-scraper) | Full product detail — market snapshot, traits, stats — from a list of product URLs. |
| [StockX Orderbook Scraper](https://apify.com/stockx-orderbook-scraper) | Live per-size bid/ask orderbook with spread and 72-hour velocity for any product. |
| [StockX Sales History Scraper](https://apify.com/stockx-sales-history-scraper) | Multi-bucket sales statistics (annual, 90-day, 72-hour) plus per-size breakdowns. |
| [StockX Release Calendar Scraper](https://apify.com/stockx-release-calendar-scraper) | Upcoming and recent drops with release dates and pre-release bid/ask signals. |

# Actor input Schema

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

Mix of plain text queries and full StockX URLs. Plain text â†’ wrapped as `?s=<text>` search. URLs starting with http(s) â†’ used as-is (both `s=` search and `category=` filtering supported). Pagination (`&page=N`) is appended automatically.

## `maxPagesPerUrl` (type: `integer`):

How many pages to traverse per start URL. Stops early if a page returns no results.

## `country` (type: `string`):

Two-letter ISO country code (drives currency/locale cookies).

## `currency` (type: `string`):

ISO currency code (e.g. USD, EUR, GBP).

## `maxConcurrency` (type: `integer`):

Maximum number of parallel requests.

## `maxRequestRetries` (type: `integer`):

How many times a request will be retried before giving up.

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

Apify Proxy or your own proxy list. RESIDENTIAL group is recommended.

## Actor input object example

```json
{
  "startUrls": [
    "jordan 1 chicago",
    "https://stockx.com/search?s=yeezy+350",
    "https://stockx.com/search?category=sneakers&s=nike"
  ],
  "maxPagesPerUrl": 3,
  "country": "US",
  "currency": "USD",
  "maxConcurrency": 3,
  "maxRequestRetries": 5,
  "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": [
        "jordan 1 chicago",
        "https://stockx.com/search?s=yeezy+350",
        "https://stockx.com/search?category=sneakers&s=nike"
    ],
    "country": "US",
    "currency": "USD",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/stockx-search-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": [
        "jordan 1 chicago",
        "https://stockx.com/search?s=yeezy+350",
        "https://stockx.com/search?category=sneakers&s=nike",
    ],
    "country": "US",
    "currency": "USD",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/stockx-search-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": [
    "jordan 1 chicago",
    "https://stockx.com/search?s=yeezy+350",
    "https://stockx.com/search?category=sneakers&s=nike"
  ],
  "country": "US",
  "currency": "USD",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call xtracto/stockx-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/b0VeiUJg0muqgVi1Y/builds/PlJLLarNXiDJWEt8M/openapi.json
