# Nike API Scraper (`rl1987/nike-api-scraper`) Actor

Scrape Nike.com listings (PLP) and full product detail (PDP) directly from the api.nike.com consumer API.

- **URL**: https://apify.com/rl1987/nike-api-scraper.md
- **Developed by:** [R.L.](https://apify.com/rl1987) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 plp row (listing data)s

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Scraper 👟 — Scrape Nike.com Products, Prices, Sizes & Stock

**Nike Scraper** extracts product data from **Nike.com** at scale — listings, full product
details, prices, discounts, sizes, GTINs, images and **live stock availability** — and
exports it to **JSON, CSV, Excel, or an API**. It reads Nike's own product API directly, so
it's **fast, reliable, and complete** — no flaky HTML parsing, no headless browser.

Point it at a **category page, a search, a product URL, or a style code**, and get clean,
structured Nike product data in seconds. Great for **price monitoring, competitor research,
sneaker‑release tracking, dropshipping, market analysis, and building product catalogs.**

> Scrape Nike sneakers, apparel and accessories — Air Force 1, Air Jordan, Air Max, Dunk,
> Pegasus, Nike ACG and the entire Nike catalog — in any Nike marketplace and language.

---

### ✨ Why use this Nike Scraper?

- 🟢 **No code required** — paste a Nike URL, click **Start**, download your data.
- ⚡ **Fast & accurate** — pulls structured JSON from Nike's product API, not rendered HTML.
- 🧾 **Rich data** — names, prices, discounts, every size + GTIN, per‑size stock, all images.
- 📦 **Live inventory** — see exactly which sizes are in stock right now.
- 🔁 **Full pagination** — scrapes an entire category or search to the last product.
- 🌍 **Any market** — choose the country/marketplace and language (US, UK, DE, …).
- 💸 **Transparent pay‑per‑result pricing** — pay only for the rows you get.
- 📤 **Export anywhere** — JSON, CSV, Excel, XML, or pull it live via the Apify API.

---

### 🎯 What can you do with Nike product data?

- **Price monitoring & repricing** — track Nike prices and discounts over time.
- **Competitor & market analysis** — benchmark assortment, pricing and availability.
- **Sneaker reselling & drop tracking** — catch launches, restocks and sold‑out sizes.
- **Dropshipping & catalog building** — import Nike products into your store.
- **Inventory/stock alerts** — monitor when specific sizes come back in stock.
- **Data science & trend research** — build datasets of Nike footwear and apparel.

---

### 📥 What data does the Nike Scraper extract?

**Listing (PLP) data** — product name, subtitle, color, current price, full price, discount,
employee price, currency, product type, "Just In"/sale badges, image, and product URL.

**Product detail (PDP) data** — everything above **plus** full description, brand, gender,
style code, **every size with its GTIN/barcode and live stock level**, color swatches (with
hex), gallery images, size‑chart URL, and launch/release info.

Each row is also stamped with `country`, `language`, `source`, `scrapedAt`, and the
originating `categoryName`.

---

### 🚀 How to scrape Nike.com (3 steps)

1. **Add an input.** Paste a Nike **category URL** (e.g. `https://www.nike.com/w/mens-shoes-nik1zy7ok`),
   a **search URL** (`https://www.nike.com/w?q=air%20force%201`), a **search term**, a **product
   URL**, or a **style code** (e.g. `CW2288-111`).
2. **Pick your options** — turn on `fetchProductDetails` for full PDP data, set a country, or
   cap the number of products. Defaults work out of the box.
3. **Run & export** — click **Start**, then download the dataset as JSON/CSV/Excel or fetch it
   through the API.

---

### ⚙️ Input

Supply **at least one** source: `categoryUrls`, `searchTerms`, `productUrls`, or `styleColors`.
Everything else is optional.

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `categoryUrls` | array of `{url}` | – | Nike **category or search** URLs (PLP). Each is paginated to the end. |
| `searchTerms` | array of string | – | Free‑text Nike searches, e.g. `"air force 1"`. |
| `productUrls` | array of `{url}` | – | Nike product (PDP) URLs — style code is read from the URL. |
| `styleColors` | array of string | – | Bare Nike style codes, e.g. `CW2288-111`. |
| `fetchProductDetails` | boolean | `false` | Also fetch full PDP detail for each listing product. |
| `fetchSizeAvailability` | boolean | `false` | Attach live per‑size stock to listing products. |
| `maxProductsPerCategory` | integer | `0` | Cap products per category/search (`0` = all). |
| `maxItems` | integer | `0` | Global cap on output rows (`0` = no cap). |
| `pageSize` | string | `24` | Listing page size — `24`, `50`, or `100`. |
| `country` | string | `US` | Marketplace — affects price, currency and stock. |
| `language` | string | `en` | Language for product copy. |
| `detailConcurrency` | integer | `5` | Parallel detail/availability requests. |
| `proxyConfiguration` | object | Residential | Proxy settings (RESIDENTIAL recommended). |

#### Example input

```jsonc
{
  "categoryUrls": [
    { "url": "https://www.nike.com/w/mens-shoes-nik1zy7ok" }
  ],
  "searchTerms": ["air force 1"],
  "productUrls": [
    { "url": "https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhdX/CW2288-111" }
  ],
  "styleColors": ["DD0587-008"],
  "fetchProductDetails": true,
  "maxProductsPerCategory": 200,
  "pageSize": "50",
  "country": "US",
  "language": "en",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
````

***

### 📤 Output

#### Listing (PLP) product

```jsonc
{
  "styleColor": "DD0587-008",
  "groupKey": "ZXK65P",
  "globalProductId": "4881385b-…",
  "internalPid": "1015928488",
  "merchProductId": "74f6059c-…",
  "title": "Air Jordan 5 \"Black Carolina\"",
  "subtitle": "Men's Shoes",
  "colorDescription": "Black/White/University Blue",
  "colorLabel": "Black",
  "currency": "USD",
  "currentPrice": 220,
  "fullPrice": 220,
  "employeePrice": 132,
  "discountPercentage": 0,
  "isOnSale": false,
  "productType": "FOOTWEAR",
  "productSubType": "STANDARD",
  "badgeLabel": "Just In",
  "featuredAttributes": ["JUST_IN"],
  "imageUrl": "https://static.nike.com/…/squarish.png",
  "url": "https://www.nike.com/t/air-jordan-5-black-carolina-mens-shoes-ZXK65P/DD0587-008",
  "categoryUrl": "https://www.nike.com/w/mens-shoes-nik1zy7ok"
}
```

#### Product detail (PDP) product — adds

```jsonc
{
  "styleColor": "CW2288-111",
  "styleCode": "CW2288",
  "colorCode": "111",
  "brand": "Nike",
  "fullTitle": "Nike Air Force 1 '07 Men's Shoes",
  "descriptionHeading": "Benefits",
  "description": "Comfortable, durable and timeless — …",
  "genders": ["MEN"],
  "msrp": 115,
  "discounted": false,
  "inStock": true,
  "availableSizes": ["6", "6.5", "7", "…"],
  "colors": [{ "type": "PRIMARY", "name": "White", "hex": "F0F4FF" }],
  "sizes": [
    {
      "size": "8",
      "localizedSize": "M 8 / W 9.5",
      "gtin": "00194501093...",
      "skuId": "…",
      "stockKeepingUnitId": "…",
      "available": true,
      "level": "HIGH"
    }
  ],
  "specifications": {
    "bestFor": [], "widths": [], "manufacturingCountriesOfOrigin": [],
    "athletes": ["CeeDee Lamb"], "techSpec": ""
  },
  "heroImageUrl": "https://secure-images.nike.com/is/image/DotCom/CW2288_111",
  "galleryImageUrls": ["…"],
  "sizeChartUrl": "https://www.nike.com/size-fit/unisex-footwear-mens-based",
  "launch": { "commerceStartDate": "…", "hardLaunch": false, "preOrder": false, "publishType": "FLOW" },
  "slug": "air-force-1-07-mens-shoes-jBrhbr"
}
```

***

### 💰 Pricing — pay per result

| You scrape | Price |
| --- | --- |
| **Listing (PLP) row** — name, color, price, image, URL | **$1.00 per 1,000 rows** |
| **Product detail (PDP) row** — all PLP fields **plus** description, every size + GTIN, per‑size stock, gallery images | **$2.00 per 1,000 rows** |

You're billed as a **PDP row** whenever full detail is fetched (`productUrls` / `styleColors`,
or listings with `fetchProductDetails`), otherwise as a **PLP row**. Pay only for the data you
actually get — set `maxItems` to stay within budget. Apify platform usage (compute + proxy) is
billed on top of the per‑row price.

***

### 🔌 Use the Nike Scraper via API

Run it from anywhere and get the results back as JSON:

```bash
curl -X POST "https://api.apify.com/v2/acts/rl1987~nike-api-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ "categoryUrls": [{ "url": "https://www.nike.com/w/mens-shoes-nik1zy7ok" }], "maxProductsPerCategory": 100 }'
```

You can also run it on a **schedule** (e.g. daily price/stock checks) and integrate with
**Make, Zapier, n8n, Google Sheets**, or webhooks — all from the Apify platform.

***

### ❓ FAQ

**Is it legal to scrape Nike?**
Scraping publicly available data is generally permitted, but you are responsible for complying
with Nike's Terms of Service and applicable laws (including copyright and data‑protection
rules) in your jurisdiction. Use the data responsibly.

**Do I need to write code?**
No. Use the visual input form on Apify. Developers can also drive it via the API and SDKs.

**Can I scrape other Nike countries and currencies?**
Yes — set `country` and `language` (e.g. `GB`/`en`, `DE`/`de`). Prices, currency and stock
follow the chosen marketplace.

**Can it scrape Nike search results?**
Yes. Paste a search URL like `https://www.nike.com/w?q=air%20force%201` into `categoryUrls`,
or use `searchTerms`.

**Does it return sizes and stock availability?**
Yes. PDP rows include every size with its GTIN and a live stock level. For listing products,
enable `fetchSizeAvailability` to attach live per‑size stock.

**What about product reviews?**
Reviews (ratings/counts) are out of scope — Nike serves those from a separate service that
isn't part of the product/catalog API.

**Which proxies should I use?**
Residential proxies. Nike blocks datacenter IPs, so the actor defaults to Apify **Residential**
proxies pinned to your chosen marketplace country for reliable results.

**How do I export the data?**
Download from the dataset as **JSON, CSV, Excel, or XML**, or fetch it through the API.

***

### 🛠️ How it works

The scraper talks to Nike's own consumer product API (`api.nike.com`) — the same endpoints
that power Nike.com — using three calls: the **product wall** for listings/search, the
**product feed** for full detail (sizes, GTINs, stock, images), and the **availability**
endpoint for live per‑size stock. It paginates automatically, streams results to the dataset
with bounded memory, and rotates residential proxy IPs for reliability.

***

### 📌 Good to know

- One Nike "style" can have several colorways — **each colorway is its own row.**
- `pageSize` must be `24`, `50`, or `100`.
- Listing rows don't include size stock unless you enable `fetchSizeAvailability` or
  `fetchProductDetails`; **PDP rows always include per‑size stock.**
- Built for scale: low, flat memory usage and automatic residential‑proxy rotation.

***

### ⭐ Found this useful?

If this actor helped you, please **review the actor** — your feedback helps others discover it
and helps us keep improving it. A quick rating goes a long way!

***

*Not affiliated with, endorsed by, or sponsored by Nike, Inc. "Nike", "Air Force 1", "Air
Jordan", "Air Max" and related marks are trademarks of their respective owners and are used
here for descriptive purposes only.*

# Actor input Schema

## `categoryUrls` (type: `array`):

Nike listing pages to scrape — paginated through fully via the product wall API. Accepts BOTH:
• Category URLs, e.g. https://www.nike.com/w/mens-shoes-nik1zy7ok
• Search-results URLs, e.g. https://www.nike.com/w?q=air%20force%201 (the search query is auto-detected from the ?q= parameter).

## `searchTerms` (type: `array`):

Free-text search queries to scrape (equivalent to searching on nike.com). Example: "air force 1".

## `productUrls` (type: `array`):

Individual product pages to fetch full detail for, e.g. https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhdX/CW2288-111 . The styleColor is taken from the last path segment.

## `styleColors` (type: `array`):

Bare Nike styleColor codes to fetch full detail for, e.g. CW2288-111. A styleColor is <styleCode>-<colorCode>.

## `fetchProductDetails` (type: `boolean`):

For every product found on a listing/search, also fetch the full PDP detail (description, all sizes, GTINs, per-size stock, gallery images). Much slower — one extra API call per product.

## `fetchSizeAvailability` (type: `boolean`):

Attach live per-size stock (isAvailable, ship status, available sizes list) keyed by the product's groupKey. For listing products this adds one extra call each; detail records already include size stock from the product feed.

## `maxProductsPerCategory` (type: `integer`):

Cap how many product groupings to scrape per category/search (0 = no limit, scrape all pages).

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

Hard cap on total records pushed to the dataset across all inputs (0 = no limit).

## `pageSize` (type: `string`):

Products per listing API page. Nike only allows 24, 50 or 100.

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

Two-letter marketplace code (affects prices, currency, availability).

## `language` (type: `string`):

Two-letter language code for product copy.

## `detailConcurrency` (type: `integer`):

How many detail/availability API calls to run in parallel.

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

Proxy settings. RESIDENTIAL proxies are strongly recommended — Nike returns HTTP 403 to datacenter IPs, especially on the product detail endpoint.

## Actor input object example

```json
{
  "categoryUrls": [
    {
      "url": "https://www.nike.com/w/mens-shoes-nik1zy7ok"
    }
  ],
  "searchTerms": [],
  "productUrls": [],
  "styleColors": [],
  "fetchProductDetails": false,
  "fetchSizeAvailability": false,
  "maxProductsPerCategory": 0,
  "maxItems": 0,
  "pageSize": "24",
  "country": "US",
  "language": "en",
  "detailConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "categoryUrls": [
        {
            "url": "https://www.nike.com/w/mens-shoes-nik1zy7ok"
        }
    ],
    "searchTerms": [],
    "productUrls": [],
    "styleColors": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("rl1987/nike-api-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 = {
    "categoryUrls": [{ "url": "https://www.nike.com/w/mens-shoes-nik1zy7ok" }],
    "searchTerms": [],
    "productUrls": [],
    "styleColors": [],
}

# Run the Actor and wait for it to finish
run = client.actor("rl1987/nike-api-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 '{
  "categoryUrls": [
    {
      "url": "https://www.nike.com/w/mens-shoes-nik1zy7ok"
    }
  ],
  "searchTerms": [],
  "productUrls": [],
  "styleColors": []
}' |
apify call rl1987/nike-api-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Nike API Scraper",
        "description": "Scrape Nike.com listings (PLP) and full product detail (PDP) directly from the api.nike.com consumer API.",
        "version": "0.1",
        "x-build-id": "szrdRUeLhlhs12yzy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rl1987~nike-api-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rl1987-nike-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~nike-api-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rl1987-nike-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~nike-api-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rl1987-nike-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": {
                    "categoryUrls": {
                        "title": "Category / search / listing URLs (PLP)",
                        "type": "array",
                        "description": "Nike listing pages to scrape — paginated through fully via the product wall API. Accepts BOTH:\n• Category URLs, e.g. https://www.nike.com/w/mens-shoes-nik1zy7ok\n• Search-results URLs, e.g. https://www.nike.com/w?q=air%20force%201 (the search query is auto-detected from the ?q= parameter).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchTerms": {
                        "title": "Search terms",
                        "type": "array",
                        "description": "Free-text search queries to scrape (equivalent to searching on nike.com). Example: \"air force 1\".",
                        "items": {
                            "type": "string"
                        }
                    },
                    "productUrls": {
                        "title": "Product URLs (PDP)",
                        "type": "array",
                        "description": "Individual product pages to fetch full detail for, e.g. https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhdX/CW2288-111 . The styleColor is taken from the last path segment.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "styleColors": {
                        "title": "Style colors",
                        "type": "array",
                        "description": "Bare Nike styleColor codes to fetch full detail for, e.g. CW2288-111. A styleColor is <styleCode>-<colorCode>.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchProductDetails": {
                        "title": "Fetch full product details for listing products",
                        "type": "boolean",
                        "description": "For every product found on a listing/search, also fetch the full PDP detail (description, all sizes, GTINs, per-size stock, gallery images). Much slower — one extra API call per product.",
                        "default": false
                    },
                    "fetchSizeAvailability": {
                        "title": "Fetch live per-size availability",
                        "type": "boolean",
                        "description": "Attach live per-size stock (isAvailable, ship status, available sizes list) keyed by the product's groupKey. For listing products this adds one extra call each; detail records already include size stock from the product feed.",
                        "default": false
                    },
                    "maxProductsPerCategory": {
                        "title": "Max products per category",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap how many product groupings to scrape per category/search (0 = no limit, scrape all pages).",
                        "default": 0
                    },
                    "maxItems": {
                        "title": "Max items (global)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Hard cap on total records pushed to the dataset across all inputs (0 = no limit).",
                        "default": 0
                    },
                    "pageSize": {
                        "title": "Listing page size",
                        "enum": [
                            "24",
                            "50",
                            "100"
                        ],
                        "type": "string",
                        "description": "Products per listing API page. Nike only allows 24, 50 or 100.",
                        "default": "24"
                    },
                    "country": {
                        "title": "Country / marketplace",
                        "type": "string",
                        "description": "Two-letter marketplace code (affects prices, currency, availability).",
                        "default": "US"
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Two-letter language code for product copy.",
                        "default": "en"
                    },
                    "detailConcurrency": {
                        "title": "Detail concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many detail/availability API calls to run in parallel.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. RESIDENTIAL proxies are strongly recommended — Nike returns HTTP 403 to datacenter IPs, especially on the product detail endpoint.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
