Nike Scraper collects structured product data directly from Nike’s regional websites, turning their catalog into clean, exportable datasets. It helps you monitor prices, track new drops, and analyze categories and divisions across multiple countries. Use this Nike scraper to power market research, sneaker tools, and competitive intelligence without manual copy-paste.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for Nike Scraper you've just found your team — Let’s Chat. 👆👆
Nike Scraper automates the process of discovering and extracting product information from Nike’s online stores for a selected country. Instead of navigating countless category pages, you get a complete, structured feed of products with pricing, categories, and metadata in one place.
It’s ideal for marketers, analysts, resellers, and developers who need reliable access to Nike product data for dashboards, automations, or pricing tools.
- Crawls Nike’s catalog for a selected country and builds a complete product list.
- Captures divisions (Kids, Women, Men, Unisex), categories, and sport-specific subcategories.
- Tracks both list and sale prices along with currency for accurate regional comparisons.
- Stores canonical product URLs and image URLs for use in apps, reports, or storefronts.
- Records timestamps for each collected item, making it easy to track changes over time.
| Feature | Description |
|---|---|
| Country-specific scraping | Targets a single Nike country site per run to keep data regionally accurate. |
| Full catalog coverage | Iterates through all available products, not just visible category pages. |
| Rich product metadata | Collects names, article numbers, descriptions, divisions, and categories. |
| Price & sale tracking | Stores both list and sale prices with currency codes for each item. |
| Image & URL capture | Saves product URLs and image URLs for downstream use in apps or reports. |
| Time-stamped records | Adds ISO timestamps so you can monitor catalog updates and price changes. |
| Flexible exports | Output can be saved in JSON, CSV, Excel, XML, or HTML-style tables. |
| Integration-ready design | Clean, predictable schema suitable for data pipelines and analytics tools. |
| Field Name | Field Description |
|---|---|
| company | Brand name associated with the product (e.g., "NIKE"). |
| country | Country/branch where the product is listed (e.g., "UNITED KINGDOM"). |
| productName | Human-readable product name as shown on the product page. |
| articleNo | Product article or style number used to uniquely identify the item. |
| division | Main division of the product (e.g., Kids, Women, Men, Unisex). |
| category | High-level product category (e.g., Accessories, Clothing, Shoes). |
| subCategory | Sport or activity-oriented subcategory (e.g., Lifestyle, Soccer/Football, Running, Yoga). |
| listPrice | Regular list price for the product in the local currency. |
| salePrice | Discounted price when on sale; can be null if no active discount. |
| currency | ISO-style currency code for the price (e.g., GBP, USD, EUR). |
| description | Full product description text summarizing features and use cases. |
| url | Canonical URL to the product’s detail page on the Nike website. |
| imageUrl | URL of the primary product image in default resolution. |
| timestamp | ISO timestamp indicating when the product record was captured. |
Example:
[
{
"company": "NIKE",
"country": "UNITED KINGDOM",
"productName": "Nike Sportswear Revolution",
"articleNo": "DX2321-258",
"division": "Women",
"category": "Clothing",
"subCategory": "Lifestyle",
"listPrice": 114.95,
"salePrice": 68.97,
"currency": "GBP",
"description": "The weather isn't always predictable. Sometimes days that start chilly end up getting hot. Stay prepared for it all with the Nike Sportswear Revolution Jacket. Made from lightweight woven fabric, it easily packs away and converts into a hip pack when temperatures rise. A loose fit and 1/2-zip design keep it comfortable while a stow-away hood is there when you want it but gone when you don't.",
"url": "https://nike.com/gb/t/sportswear-revolution-sports-utility-1-2-zip-jacket-lRRzsV/DX2321-258",
"imageUrl": "https://static.nike.com/a/images/t_default/1c3b97df-35e3-4823-9ad2-0b76b39414fa/sportswear-revolution-sports-utility-1-2-zip-jacket-lRRzsV.png",
"timestamp": "2023-03-03T11:40:58.789Z"
},
{
"company": "NIKE",
"country": "UNITED KINGDOM",
"productName": "Brazil Strike Home/Away",
"articleNo": "DJ5032-433",
"division": "Unisex",
"category": "Accessories",
"subCategory": "Soccer/Football",
"listPrice": 16.95,
"salePrice": null,
"currency": "GBP",
"description": "These socks have design details specifically tailored for football's rising stars. They hug your leg to the knee for secure coverage, and sweat-wicking yarns help keep you cool and composed while you fine-tune your skills.",
"url": "https://nike.com/gb/t/brazil-strike-home-away-knee-high-football-socks-SLCTCp/DJ5032-433",
"imageUrl": "https://static.nike.com/a/images/t_default/bca0722f-5d2f-40d8-8a9c-cb890526ebbb/brazil-strike-home-away-knee-high-football-socks-SLCTCp.png",
"timestamp": "2023-03-03T11:40:57.862Z"
}
]
Example:
Nike Scraper/
├── src/
│ ├── index.js # Entry point: handles input, orchestration, and job lifecycle
│ ├── client/
│ │ ├── nikeHttpClient.js # Low-level HTTP client for Nike endpoints
│ │ └── requestLimiter.js # Rate-limiting and retry logic
│ ├── scraper/
│ │ ├── countryRouter.js # Selects correct base URL based on inputCountry
│ │ ├── productLister.js # Crawls listing pages and collects product URLs
│ │ ├── productParser.js # Parses product detail pages into structured objects
│ │ └── categoryMap.js # Maps categories, divisions, and subcategories
│ ├── outputs/
│ │ ├── datasetWriter.js # Writes results to JSON, CSV, Excel, or other formats
│ │ └── logger.js # Centralized logging utilities
│ └── config/
│ └── settings.example.json # Example configuration for timeouts, concurrency, and country defaults
├── data/
│ ├── input.example.json # Sample input: { "inputCountry": "UNITED KINGDOM" }
│ └── sample-output.json # Small sample dataset for testing and documentation
├── tests/
│ ├── productParser.test.js # Unit tests for parsing and normalization logic
│ ├── categoryMap.test.js # Tests for division/category/subcategory mapping
│ └── integration.test.js # End-to-end tests against a limited subset of pages
├── scripts/
│ ├── run-local.sh # Helper script to run the scraper locally
│ └── export-results.js # Script to transform outputs into custom formats
├── .env.example # Environment variable template (e.g., proxies, timeouts)
├── package.json # Project metadata and dependencies
├── package-lock.json # Locked dependency versions
├── README.md # Project documentation
└── LICENSE # License file for open-source distribution
- Market analysts use it to collect cross-country Nike product and pricing data, so they can compare regional strategies and optimize assortment decisions.
- Sneaker resellers use it to track rare or discounted items across Nike’s catalog, so they can react quickly to profitable resale opportunities.
- E-commerce teams use it to benchmark Nike products and prices against their own catalog, so they can fine-tune pricing and promotional campaigns.
- Data engineers use it to feed clean Nike product data into warehouses and dashboards, so they can enable robust reporting and BI workflows.
- Developers of sneaker bots or alert tools use it to monitor stock and price changes programmatically, so they can trigger notifications and automated actions in real time.
Q: How do I choose which Nike website (country) to scrape?
Set the inputCountry field in your configuration or input JSON to one of the supported branches (for example: "UNITED STATES", "UNITED KINGDOM", "GERMANY", "MEXICO", "FRANCE", "ITALY", "AUSTRALIA", "CANADA", "SPAIN", "CHINA"). The scraper will automatically route to the correct base URL for that country.
Q: What output formats are supported? The scraper is designed to generate a structured dataset first and then export it into common formats such as JSON, JSONL, CSV, Excel, XML, or HTML-style tables. You can extend or customize the exporters to fit your pipeline or reporting tools.
Q: How long does a full run usually take? A complete run for a single country typically takes around 30 minutes, depending on the catalog size, network speed, and concurrency settings. Larger catalogs or slower connections may increase runtime, while optimized concurrency and caching can reduce it.
Q: Can I filter products by category or sport? By default, the scraper captures the full catalog for the selected country. You can add optional filters (e.g., division, category, subCategory) at either crawling or post-processing stages to focus only on specific sports, genders, or product types.
Primary Metric: On a typical connection and moderate concurrency, the scraper can process roughly 20–40 product detail pages per second, resulting in a full-country catalog export within about half an hour.
Reliability Metric: With retry and backoff logic enabled, successful page retrieval rates commonly exceed 98%, even with occasional transient network or server issues.
Efficiency Metric: The scraper is optimized to reuse HTTP sessions and respect rate limits, keeping bandwidth overhead low while maintaining solid throughput.
Quality Metric: For standard catalog runs, field completeness for core attributes (name, article number, prices, category, division, URLs) is above 99%, with consistent timestamping and schema across different country branches.
