# Nike Product Search Scraper (`soft_alexist/nike-product-search-scraper`) Actor

Scrape Nike.com search results to collect 200+ products per query with full details: product codes, prices, colors, images, promotions, and PDP URLs. Perfect for price monitoring, competitor analysis, and e-commerce research in the athletic retail space.

- **URL**: https://apify.com/soft\_alexist/nike-product-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Nike Product Search Scraper: Extract Shoe & Apparel Data at Scale

***

### What Is Nike.com?

Nike.com is the official retail platform for Nike, Inc., offering a vast catalog of footwear, apparel, and accessories. With constantly rotating inventory, seasonal collections, and frequent promotions, manually tracking product availability and pricing is nearly impossible. The **Nike Product Search Scraper** automates data collection from Nike's search results pages, enabling businesses to monitor product trends, pricing changes, and promotional strategies in real-time.

***

### Scraper Overview

The **Nike Product Search Scraper** extracts detailed product records from Nike.com search results pages, capturing comprehensive product metadata and pricing information. It is ideal for:

- **Price monitoring services** tracking Nike product pricing over time
- **Retail analysts** studying Nike's product strategy and SKU management
- **Resellers and dropshippers** identifying high-demand items and inventory changes
- **Market researchers** analyzing athletic retail trends and product categorization
- **Aggregator platforms** building product comparison datasets

The scraper handles up to 200 items per search query, supports multiple URLs in a single run, and gracefully manages failed requests without interrupting the entire job.

***

### Input Configuration

The scraper accepts a JSON configuration with three main parameters:

```json
{
    "urls": [
        "https://www.nike.com/w?q=shoes&vst=shoes"
    ],
    "max_items_per_url": 200,
    "ignore_url_failures": true
}
```

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | Nike.com search result page URLs. Each URL should be a valid Nike product list page (e.g., search queries, category pages). Supports multiple URLs per run. |
| `max_items_per_url` | Integer | Maximum number of products to extract per URL (recommended: 100–200). Higher limits capture more items but may increase runtime. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues if individual URLs fail to load. If `false`, the entire run stops on the first error. Default: `true`. |

**Example URLs:**

- Search results: `https://www.nike.com/w?q=shoes&vst=shoes`
- Category pages: `https://www.nike.com/w/mens-shoes-7puzcak`
- Sale section: `https://www.nike.com/sale/mens-sale`

***

### Output Fields & Data Structure

**Sample output**

```json
{
  "group_key": "KVpEM9a8",
  "product_code": "DZ5485-201",
  "product_type": "FOOTWEAR",
  "product_sub_type": "STANDARD",
  "global_product_id": "dfe7cafb-5509-4f51-a0f5-8c8b1302e0dd",
  "internal_pid": "1015929451",
  "merch_product_id": "f2084e7a-5f4a-5832-ae47-97a780d46f59",
  "consumer_channel_id": "d9a5bc42-4b9c-4976-858a-f159cf99c647",
  "copy": {
    "title": "Air Jordan 1 Retro High OG \"Love Letter\"",
    "sub_title": "Men's Shoes"
  },
  "display_colors": {
    "simple_color": {
      "label": "Brown",
      "hex": "6C5627"
    },
    "color_description": "Shadow Brown/Light British Tan/Team Red"
  },
  "prices": {
    "currency": "USD",
    "current_price": 185,
    "employee_price": 185,
    "initial_price": 185,
    "discount_percentage": 0,
    "employee_discount_percentage": 0
  },
  "colorway_images": {
    "portrait_u_r_l": "https://static.nike.com/a/images/t_default/u_126ab356-44d8-4a06-89b4-fcdcc8df0245,c_scale,fl_relative,w_1.0,h_1.0,fl_layer_apply/ba9f162a-46d1-4ba9-a321-3c267773fb51/AIR+JORDAN+1+RETRO+HIGH+OG.png",
    "squarish_u_r_l": "https://static.nike.com/a/images/t_default/u_126ab356-44d8-4a06-89b4-fcdcc8df0245,c_scale,fl_relative,w_1.0,h_1.0,fl_layer_apply/a2a79610-4d1f-4f78-9bf2-290ec8e6a58d/AIR+JORDAN+1+RETRO+HIGH+OG.png"
  },
  "featured_attributes": [
    "COMING_SOON",
    "LAUNCH",
    "PROMOS_EXCLUDED"
  ],
  "pdp_url": {
    "url": "https://www.nike.com/t/air-jordan-1-retro-high-og-love-letter-mens-shoes-KVpEM9a8/DZ5485-201",
    "path": "/t/air-jordan-1-retro-high-og-love-letter-mens-shoes-KVpEM9a8/DZ5485-201"
  },
  "is_new_until": null,
  "promotions": null,
  "customization": null,
  "badge_attribute": "COMING_SOON",
  "badge_label": "Coming Soon",
  "from_url": "https://www.nike.com/w?q=shoes&vst=shoes"
}
```

The scraper returns a record per product with 19 key fields:

#### Product Identification

| Field | Meaning | Example |
|---|---|---|
| `Product Code` | SKU/internal product identifier | `DJ5621-001` |
| `Global Product ID` | Unique Nike global product identifier | `prod-12345678` |
| `Internal PID` | Nike's internal product ID system | `65432` |
| `Merch Product ID` | Merchandise/category management ID | `M123456` |
| `Consumer Channel ID` | Channel-specific product ID | `CC-9876543` |

#### Product Classification

| Field | Meaning | Example |
|---|---|---|
| `Group Key` | Product family or line grouping | `Air Max 90` |
| `Product Type` | High-level category | `Footwear`, `Apparel`, `Accessories` |
| `Product Sub Type` | Detailed category | `Running Shoes`, `Jackets`, `Socks` |

#### Product Presentation

| Field | Meaning | Example |
|---|---|---|
| `Copy` | Product title/description text | `Nike Air Max 90 Premium` |
| `Display Colors` | Available color options | `["Black", "White", "Red"]` |
| `Colorway Images` | URLs to product images per colorway | Array of image URLs |
| `Badge Label` | Promotional badge text | `"New"`, `"Best Seller"`, `"Sale"` |
| `Badge Attribute` | Badge classification | `new`, `bestseller`, `limited-edition` |

#### Pricing & Availability

| Field | Meaning | Example |
|---|---|---|
| `Prices` | Product pricing data (regular, sale, currency) | `{"regular": 120.00, "sale": 84.00, "currency": "USD"}` |
| `Is New Until` | Expiration date for "New" badge status | `2025-02-28T00:00:00Z` |

#### Product Links & URLs

| Field | Meaning | Example |
|---|---|---|
| `PDP URL` | Direct link to the product detail page | `https://www.nike.com/t/air-max-90-...` |

#### Customization & Promotions

| Field | Meaning | Example |
|---|---|---|
| `Customization` | Available customization options | `["Embroidery", "Color Swap"]` or `null` |
| `Promotions` | Active promotions and discounts | `[{"type": "Bundle", "discount": "15%"}]` |
| `Featured Attributes` | Key selling points or features | `["Breathable Mesh", "Responsive Cushioning"]` |

***

### How to Use the Scraper

1. **Prepare URLs** — Identify Nike.com search or category pages you want to monitor. Examples:
   - Search: `https://www.nike.com/w?q=running+shoes`
   - Category: `https://www.nike.com/w/womens-shoes-5e1x6z`
   - Sale: `https://www.nike.com/sale`

2. **Configure input** — Create a JSON configuration with your URLs and desired item limit (recommend 100–200 for balanced speed/coverage).

3. **Set failure handling** — Enable `ignore_url_failures: true` for bulk runs to prevent interruptions if a single URL becomes unavailable.

4. **Execute** — Run the scraper and monitor progress in real-time. A typical 200-item extraction takes 2–5 minutes depending on page load times.

5. **Export data** — Download results as JSON, CSV, or Excel. Import into your analytics tool, database, or monitoring dashboard.

**Best practices:**

- Test with a single URL and small item limit (e.g., 20) before scaling to production.
- Rotate between different search queries to avoid rate limiting.
- Store results with timestamps to track price and availability changes over time.

***

### Use Cases & Business Applications

- **Price tracking:** Monitor Nike shoe and apparel pricing, capture sales events, and detect price drops.
- **Inventory monitoring:** Identify new releases, color availability, and stock changes per product.
- **Competitive intelligence:** Compare Nike's pricing and promotions against competitors.
- **Market research:** Analyze which product categories, colors, and badges perform best.
- **Reseller operations:** Automate data ingestion for drop alerts and profit margin calculations.

By automating product data collection, teams save hours of manual browsing and gain actionable insights into retail strategy and consumer demand.

***

### Conclusion

The **Nike Product Search Scraper** transforms Nike.com product pages into clean, structured datasets ready for analysis and integration. With support for 200+ items per URL and flexible configuration, it is an essential tool for anyone monitoring athletic retail trends, managing price competitiveness, or conducting e-commerce research.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.nike.com/w?q=shoes&vst=shoes"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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 = {
    "urls": [
        "https://www.nike.com/w?q=shoes&vst=shoes"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/nike-product-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 = {
    "urls": ["https://www.nike.com/w?q=shoes&vst=shoes"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/nike-product-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 '{
  "urls": [
    "https://www.nike.com/w?q=shoes&vst=shoes"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call soft_alexist/nike-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0emUXJM00wuJZj9w0/builds/UXRMtPjdwOfdRtyPn/openapi.json
