# Dick's Sporting Goods Product Scraper (`sian.agency/dicks-sporting-goods-product-scraper`) Actor

Scrape Dick's Sporting Goods products — price, discount, ratings, reviews, images, colors, specs & availability. Search by keyword or URL with filters for brand, sport, gender & price. Clean JSON/CSV, no code.

- **URL**: https://apify.com/sian.agency/dicks-sporting-goods-product-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 overview product extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Dick's Sporting Goods Scraper – Prices, Specs, Stock & Reviews 🏀

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Nike Product Scraper](https://img.shields.io/badge/Store-Nike%20Product%20Scraper-111111)](https://apify.com/sian.agency/nike-product-scraper?fpr=sian) [![REI Product Scraper](https://img.shields.io/badge/Store-REI%20Product%20Scraper-4C6B2F)](https://apify.com/sian.agency/rei-product-scraper?fpr=sian) [![Best Buy Product Scraper](https://img.shields.io/badge/Store-Best%20Buy%20Product%20Scraper-0046BE)](https://apify.com/sian.agency/best-buy-product-scraper?fpr=sian)

#### 🎉 Turn any Dick's Sporting Goods search into a clean, structured product dataset — prices, discounts, ratings, images, colors, specs & stock in one run.
##### Built for pricing analysts, e-commerce teams, and sporting-goods researchers who need reliable retail product data without writing a single line of code.

---

### 📋 Overview

**Need Dick's Sporting Goods product data at scale?** This scraper pulls full product records from dickssportinggoods.com — just type what you'd search for ("running shoes", "basketball hoop", "yoga mat"), paste a search URL, or drop in product links — and get back clean JSON, CSV, or Excel with everything from live prices to per-color variants and labeled specifications.

**Why thousands of professionals choose us:**
- ✅ **40+ data fields per product**: prices, discounts, MAP, ratings, reviews, images, colors, specs, availability, and more — nothing left on the table
- ⚡ **Two modes, one dataset**: fast bulk Overview search or targeted Detail records — both return the same rich fields
- 🎯 **Native Dick's filters built in**: brand, gender, sport/activity, color, price range, on-sale-only, and Dick's own sort orders
- 💰 **Pay-per-result pricing**: only pay for products you actually get — no wasted spend, no monthly lock-in
- 💎 **Zero-code, always current**: real-time prices and stock straight from Dick's, exportable in one click
- ✨ **NEW**: on-sale detection with original list price and MAP price — spot every markdown instantly

---

### ✨ Features

- 🔎 **Keyword Search**: Scrape any Dick's search term — "trail running shoes", "kids cleats", "kettlebell" — one keyword per line, each runs as its own search
- 🔗 **URL Input**: Paste Dick's search URLs or product (PDP) URLs directly — perfect for tracking a fixed watchlist
- 🏷️ **Live Pricing & Discounts**: Current price, price range, original list price, MAP price, and an on-sale flag on every product
- ⭐ **Ratings & Reviews**: Average star rating and total review count for social-proof and demand analysis
- 🎨 **Color & Variant Data**: Every color variant, color count, and total buyable variants (colors × sizes)
- 🖼️ **Full Image Gallery**: High-resolution product image URLs, hero image first
- 📦 **Availability & Stock**: In-stock flag, coming-soon detection, and best-effort per-size stock in Detail mode
- 📊 **Labeled Specifications**: Structured spec tables (Shoe Width, Surface Type, Cushioning, and more) plus marketing highlight bullets
- 🧭 **Smart Filtering**: Brand, gender, sport/activity, color, min/max price, on-sale-only, and native sort (best match, price low→high, price high→low, top rated, newest)
- 📁 **Clean Exports**: Download results as JSON, CSV, or Excel directly from the Apify dataset

---

### 🎬 Quick Start

Enter one or more search keywords, pick a mode, hit **Start**, and download your dataset. That's it — no setup, no code to write. Prefer the API? One call gets you running:

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~dicks-sporting-goods-product-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keywords": ["running shoes"], "scrapeMode": "overview", "maxResults": 25}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Enter your search

Type Dick's search keywords (one per line), or paste Dick's search URLs or product URLs.

#### Step 2: Set your filters

Optionally narrow by brand, gender, sport/activity, color, price range, or on-sale-only — and choose a sort order.

#### Step 3: Run and export

Click **Start**, then download your results as JSON, CSV, or Excel from the dataset.

**That's it! In minutes, you'll have:**

- A clean product dataset with 40+ fields per item
- Live prices, discounts, ratings, and stock status
- Full color, image, and specification data ready for analysis

***

### 🔀 Overview vs. Detail Mode

Pick the mode that matches your job — **both return the same rich fields**.

| | **Overview (fast)** | **Detail (targeted)** |
|---|---|---|
| Best for | Bulk search, catalog sweeps, price monitoring | Deep per-product records, spec extraction, watchlists |
| Speed | Fastest — full product cards from search | Targeted — one product at a time |
| Per-size stock | Not included | Best-effort per-size availability |
| Input | Keywords or search URLs | Product URLs (always Detail-enriched) |
| Guarantee | Broad coverage across results | Guaranteed-complete family record |

> Tip: run **Overview** to discover and price the whole assortment, then feed the product URLs into **Detail** to enrich the ones you care about most.

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `keywords` | array | No | Free-text Dick's searches (e.g. `running shoes`, `basketball hoop`). One per line — each runs as its own search. |
| `scrapeMode` | string | No | `overview` (fast search) or `detail` (targeted per-product). Default: `overview`. |
| `sort` | string | No | Native Dick's sort: `best_match`, `price_low`, `price_high`, `top_rated`, `newest`. |
| `brand` | string | No | Restrict to a single brand (e.g. `Nike`, `adidas`, `HOKA`). |
| `gender` | string | No | Gender facet (e.g. `Men's`, `Women's`, `Boys'`, `Girls'`). |
| `activity` | string | No | Activity/sport facet (e.g. `Running`, `Basketball`, `Training`). |
| `color` | string | No | Color facet (e.g. `Black`, `White`, `Blue`). |
| `minPrice` | integer | No | Only return products at or above this price (USD). |
| `maxPrice` | integer | No | Only return products at or below this price (USD). |
| `onSale` | boolean | No | Restrict results to items currently on sale. |
| `category` | string | No | Advanced: a Dick's category value to scope results, applied on top of a keyword. |
| `searchUrls` | array | No | Advanced: paste Dick's search URLs to scrape them directly. |
| `productUrls` | array | No | Advanced: paste Dick's product (PDP) URLs — always returned with Detail enrichment. |
| `maxResults` | integer | No | Max products across all inputs. FREE: up to 25. PAID: unlimited. |

**Example — keyword search with filters:**

```json
{
  "keywords": ["running shoes"],
  "scrapeMode": "overview",
  "brand": "HOKA",
  "gender": "Women's",
  "onSale": true,
  "sort": "price_low",
  "maxResults": 50
}
```

**Example — targeted product URLs (Detail mode):**

```json
{
  "productUrls": [
    "https://www.dickssportinggoods.com/p/hoka-womens-clifton-10-running-shoes-25fhqwclftn10blckftw/25fhqwclftn10blckftw"
  ],
  "scrapeMode": "detail"
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **40+ fields per product**, exportable as JSON, CSV, or Excel. Every field below is available in both Overview and Detail mode.

| Field | Type | Description |
|-------|------|-------------|
| `name` / `productTitle` | string | Full product name as shown on Dick's |
| `sku` | string | Dick's part number (child SKU id) |
| `parent_partnumber` | string | Style / family id used in the product URL |
| `brand` | string | Manufacturer / brand name |
| `price` | number | Lowest current offer price across variants (USD) |
| `price_max` | number | Highest current offer price across variants (USD) |
| `original_price` | number | List (strikethrough) price when on sale (USD) |
| `map_price` | number | Minimum advertised price, when present (USD) |
| `on_sale` | boolean | Whether the product is currently discounted |
| `currency` | string | ISO currency code (USD) |
| `rating` | number | Average customer rating (0–5) |
| `review_count` | integer | Number of customer ratings/reviews |
| `url` | string | Direct link to the product page |
| `images` | array | Full image gallery (hero first) |
| `image_count` | integer | Number of product images returned |
| `colors` | array | Available color variant names |
| `color_count` | integer | Number of color variants |
| `sku_count` | integer | Total buyable variants (colors × sizes) |
| `sizes` | array | Per-size availability (Detail mode, best-effort) |
| `in_stock` | boolean | Whether the product is available to buy |
| `is_coming_soon` | boolean | Whether the product is a pre-release/coming-soon item |
| `availability` | string | Availability / badge status text |
| `category` | string | Product category (e.g. WomensRunning) |
| `gender` | string | Gender classification (e.g. Women's) |
| `activity` | string | Sport / activity (e.g. Running) |
| `breadcrumbs` | array | Category breadcrumb trail |
| `specs` | object | Labeled attribute table (Shoe Width, Surface Type, Cushioning, …) |
| `highlights` | array | Marketing feature bullets |
| `badge` | string | Merch badge (e.g. Extended Sizes, New Color) |
| `thumbnail` | string | Primary product image URL (preview size) |
| `metadata` | object | Run context: mode, search terms, sort, filters, and scrape timestamp |

**Example output:**

```json
{
  "name": "HOKA Women's Clifton 10 Running Shoes",
  "sku": "26285295",
  "parent_partnumber": "25FHQWCLFTN10BLCKFTW",
  "brand": "Hoka",
  "url": "https://www.dickssportinggoods.com/p/hoka-womens-clifton-10-running-shoes-25fhqwclftn10blckftw/25fhqwclftn10blckftw",
  "price": 99.98,
  "price_max": 123.99,
  "original_price": 154.99,
  "map_price": 123.95,
  "currency": "USD",
  "on_sale": true,
  "rating": 4.74,
  "review_count": 1774,
  "images": [
    "https://dks.scene7.com/is/image/dkscdn/25FHQWCLFTN10BLCKFTW?$UTPMain$",
    "https://dks.scene7.com/is/image/dkscdn/25FHQWCLFTN10BLCKFTW_White_White_is?$UTPMain$"
  ],
  "image_count": 22,
  "colors": ["Black/Black", "White/White", "Ash Grey/White", "Beige/Pink"],
  "color_count": 20,
  "sku_count": 197,
  "in_stock": true,
  "is_coming_soon": false,
  "availability": "Extended Sizes",
  "category": "WomensRunning",
  "gender": "Women's",
  "activity": "Running, Walking, Casual",
  "specs": {
    "Shoe Width": "Wide",
    "Running Type": "Neutral",
    "Surface Type": "Road",
    "Cushioning": "Moderate Cushioning & Flexibility"
  },
  "highlights": [
    "Improved heel and forefoot fit",
    "American Podiatric Medical Association (APMA) Seal of Acceptance",
    "Zonal rubber placement for weight savings and durability"
  ]
}
```

***

### 💼 Use Cases & Examples

#### 1. Price & Discount Monitoring

**Retailers and resellers tracking Dick's prices and markdowns over time.**

**Input:** Keywords or product URLs for your watchlist, `onSale` optional
**Output:** Current price, original list price, MAP price, and on-sale flag per product
**Use:** Detect price drops the moment they happen and time your own promotions.

#### 2. Competitor Pricing Intelligence

**Sporting-goods brands and marketplaces benchmarking against Dick's assortment.**

**Input:** Category keywords with brand and price filters
**Output:** Full price range, discount depth, and stock status across competing SKUs
**Use:** Position your pricing and spot where competitors are undercutting you.

#### 3. Catalog & Assortment Research

**Merchandising and category teams mapping what Dick's carries in a segment.**

**Input:** Broad keywords (e.g. "trail running shoes") with sort by newest
**Output:** Product names, brands, categories, colors, variants, and specs
**Use:** Understand assortment breadth, color depth, and newly-added products.

#### 4. Brand & Sport Market Research

**Analysts studying brand share and sport-level demand.**

**Input:** Brand-filtered or activity-filtered searches
**Output:** Ratings, review counts, price positioning, and availability by brand/sport
**Use:** Quantify demand signals and brand presence across a sport category.

#### 5. In-Stock & Availability Tracking

**Operations and dropship teams monitoring stock on key products.**

**Input:** Product URLs in Detail mode for per-size availability
**Output:** In-stock flag, coming-soon detection, and best-effort per-size stock
**Use:** Keep listings accurate and flag restocks or sell-outs automatically.

#### 6. Product-Spec Extraction for Feeds

**E-commerce and comparison sites building rich product feeds.**

**Input:** Keywords or product URLs
**Output:** Labeled spec tables, marketing highlights, images, and variant data
**Use:** Populate product feeds, comparison pages, or catalogs with structured attributes.

#### 7. Deal & Affiliate Content

**Affiliate publishers and deal sites surfacing the best sporting-goods offers.**

**Input:** `onSale: true` with sort by price low→high
**Output:** Discounted products with prices, ratings, and image galleries
**Use:** Auto-generate "best deals" roundups backed by live data.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/dicks-sporting-goods-product-scraper').call({
  keywords: ['running shoes'],
  scrapeMode: 'overview',
  maxResults: 25
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/dicks-sporting-goods-product-scraper').call(
    run_input={'keywords': ['running shoes'], 'scrapeMode': 'overview', 'maxResults': 25}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~dicks-sporting-goods-product-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"keywords": ["running shoes"], "scrapeMode": "overview"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule (e.g. daily) or webhook
2. **HTTP Request**: Call the actor API with your keywords/URLs
3. **Process**: Handle the JSON dataset (compare prices, detect stock changes)
4. **Action**: Save to a sheet/DB, send a Slack/email alert, or update your feed

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **Up to 25 products** per run — full feature access, same 40+ fields, same quality
- No credit card required
- Perfect for testing, small watchlists, and one-off research

#### PAID Tier (Production Ready)

- **Unlimited** products per run
- Ideal for full-catalog sweeps and scheduled monitoring
- **Pay-per-result** — you're only charged for products you actually receive

💰 **Best price on the market** — transparent pay-per-result billing with no monthly minimums and no charges for empty runs.

🔗 [View current pricing](https://apify.com/sian.agency/dicks-sporting-goods-product-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many products can I scrape?**
A: FREE tier: up to 25 products per run. PAID tier: unlimited.

**Q: Can I search by keyword, or do I need URLs?**
A: Both. Enter plain search keywords, paste Dick's search URLs, or paste product (PDP) URLs — mix and match as needed.

**Q: What's the difference between Overview and Detail mode?**
A: Overview is fast bulk search returning full product cards. Detail targets individual products and adds best-effort per-size stock. Both return the same rich field set.

**Q: Can I filter by brand, sport, price, or on-sale?**
A: Yes — filter by brand, gender, activity/sport, color, min/max price, and on-sale-only, and sort by best match, price, top rated, or newest.

**Q: What output formats are available?**
A: JSON, CSV, and Excel — export directly from the Apify dataset.

**Q: How current is the data?**
A: Prices, discounts, ratings, and stock are pulled live at run time, so results reflect what's on Dick's when the run executes.

**Q: Is per-size stock guaranteed?**
A: Per-size stock is best-effort in Detail mode and may be empty for some products. Product-level in-stock status is always included.

**Q: Is this legal?**
A: The actor extracts only publicly available product data. See the legal note below.

***

### 🐛 Troubleshooting

**No results returned**

- Check your keyword spelling and try a broader term
- Loosen filters (brand, price range, on-sale-only) that may be too narrow
- Confirm any pasted URLs are valid Dick's search or product URLs

**Fewer results than expected**

- FREE tier is capped at 25 products per run — upgrade for unlimited
- Lower `minPrice` / raise `maxPrice`, or clear the `onSale` filter

**A product's per-size stock is empty**

- Per-size availability is best-effort in Detail mode; the product-level `in_stock` flag is always present

**Prices look different from the site**

- Prices reflect the moment the run executed; re-run to refresh live values

***

### 🔎 Related SIÁN Actors

Building a broader retail or sporting-goods dataset? Pair this scraper with:

- 👟 [**Nike Product Scraper**](https://apify.com/sian.agency/nike-product-scraper?fpr=sian) — Nike footwear & apparel product data
- 🏕️ [**REI Product Scraper**](https://apify.com/sian.agency/rei-product-scraper?fpr=sian) — outdoor & sporting-goods catalog data
- 🛒 [**Best Buy Product Scraper**](https://apify.com/sian.agency/best-buy-product-scraper?fpr=sian) — electronics & retail product data
- 🏷️ [**Google Shopping Price Scraper**](https://apify.com/sian.agency/google-shopping-price-scraper?fpr=sian) — cross-retailer price comparison

➡️ [**Browse all SIÁN actors**](https://apify.com/sian.agency?fpr=sian)

⭐ **Happy with the data?** [Leave a 5-star review](https://apify.com/sian.agency/dicks-sporting-goods-product-scraper/reviews) — it helps other buyers find us and helps us keep improving.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what a business has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Trademark Disclaimer

SIÁN Agency is an independent provider and is **not affiliated with, endorsed by, or sponsored by Dick's Sporting Goods, Inc.** "Dick's Sporting Goods" and all related names, logos, and brand names are trademarks of their respective owners and are used here for descriptive and identification purposes only. This actor accesses publicly available product information and does not use any proprietary or private data.

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `keywords` (type: `array`):

🔎 **KEYWORD SEARCH (Overview mode):** Free-text Dick's searches — one product family per dataset row.

📝 **How to use:** Add one keyword per line (e.g. `running shoes`, `basketball`, `yoga mat`). Each keyword runs as its own search and every match is merged into a single dataset.

💡 **TIP:** Combine with the filters below (brand, gender, price…) to narrow each search.

🎯 For a known list of products, switch **Scrape Mode** to Detail and paste PDP links under **Product URLs**.

## `scrapeMode` (type: `string`):

⚙️ **How the actor runs:**

- **⚡ Overview** — fast bulk search; returns full product cards (price, ratings, colors, images, specs) for every match. Best for catalog-wide scans.
- **🎯 Detail** — targeted per-product records with best-effort per-size stock. Best for a known list of Product URLs.

Product URLs are always returned with Detail enrichment regardless of this setting.

## `sort` (type: `string`):

🔀 Order results using Dick's own native sort options. Applies to keyword and search-URL runs.

## `brand` (type: `string`):

🏷️ Restrict to a single brand using Dick's own brand facet (e.g. `Nike`, `adidas`, `HOKA`). Leave blank for all brands.

## `gender` (type: `string`):

🚻 Filter by the gender facet (e.g. `Men's`, `Women's`, `Boys'`, `Girls'`). Leave blank for all.

## `activity` (type: `string`):

🏃 Filter by the activity / sport facet (e.g. `Running`, `Basketball`, `Training`). Leave blank for all.

## `color` (type: `string`):

🎨 Filter by the color facet (e.g. `Black`, `White`, `Blue`). Leave blank for all colors.

## `minPrice` (type: `integer`):

💵 Only return products at or above this price (USD). Leave blank for no lower bound.

## `maxPrice` (type: `integer`):

💵 Only return products at or below this price (USD). Leave blank for no upper bound.

## `onSale` (type: `boolean`):

🏷️ **On sale only** — restrict results to items currently discounted.

## `category` (type: `string`):

🗂️ **ADVANCED:** A Dick's `facetCatgroup` value to scope results to a category (e.g. `12301_202102` = Shoes). Applied on top of a keyword. Leave blank unless you know the exact facet id.

## `searchUrls` (type: `array`):

🔗 **ADVANCED:** Paste Dick's search/result URLs (e.g. `?searchTerm=…` or `?q=…`) to scrape them directly — one per line. Filters and sort above still apply where compatible.

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

🔗 **ADVANCED (Detail):** Paste Dick's product (PDP) URLs to fetch each product directly — one per line. These are always returned with Detail enrichment (best-effort per-size stock).

## `maxResults` (type: `integer`):

🔢 Maximum number of products to return across all inputs.

- **FREE users:** up to 25
- **PAID users:** unlimited

Defaults to 100.

## Actor input object example

```json
{
  "keywords": [
    "running shoes"
  ],
  "scrapeMode": "overview",
  "sort": "best_match",
  "onSale": false,
  "maxResults": 100
}
```

# Actor output Schema

## `dicksProducts` (type: `string`):

Scraped Dick's Sporting Goods products with price, discount, ratings, images, colors, specs and availability.

# 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 = {
    "keywords": [
        "running shoes"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/dicks-sporting-goods-product-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 = { "keywords": ["running shoes"] }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/dicks-sporting-goods-product-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 '{
  "keywords": [
    "running shoes"
  ]
}' |
apify call sian.agency/dicks-sporting-goods-product-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dick's Sporting Goods Product Scraper",
        "description": "Scrape Dick's Sporting Goods products — price, discount, ratings, reviews, images, colors, specs & availability. Search by keyword or URL with filters for brand, sport, gender & price. Clean JSON/CSV, no code.",
        "version": "1.0",
        "x-build-id": "yPaj55S1nJlJjXSnY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~dicks-sporting-goods-product-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-dicks-sporting-goods-product-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/sian.agency~dicks-sporting-goods-product-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-dicks-sporting-goods-product-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/sian.agency~dicks-sporting-goods-product-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-dicks-sporting-goods-product-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": {
                    "keywords": {
                        "title": "🔎 Search Keywords",
                        "type": "array",
                        "description": "🔎 **KEYWORD SEARCH (Overview mode):** Free-text Dick's searches — one product family per dataset row.\n\n📝 **How to use:** Add one keyword per line (e.g. `running shoes`, `basketball`, `yoga mat`). Each keyword runs as its own search and every match is merged into a single dataset.\n\n💡 **TIP:** Combine with the filters below (brand, gender, price…) to narrow each search.\n\n🎯 For a known list of products, switch **Scrape Mode** to Detail and paste PDP links under **Product URLs**.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeMode": {
                        "title": "⚙️ Scrape Mode",
                        "enum": [
                            "overview",
                            "detail"
                        ],
                        "type": "string",
                        "description": "⚙️ **How the actor runs:**\n\n- **⚡ Overview** — fast bulk search; returns full product cards (price, ratings, colors, images, specs) for every match. Best for catalog-wide scans.\n- **🎯 Detail** — targeted per-product records with best-effort per-size stock. Best for a known list of Product URLs.\n\nProduct URLs are always returned with Detail enrichment regardless of this setting.",
                        "default": "overview"
                    },
                    "sort": {
                        "title": "🔀 Sort Order",
                        "enum": [
                            "best_match",
                            "price_low",
                            "price_high",
                            "top_rated",
                            "newest"
                        ],
                        "type": "string",
                        "description": "🔀 Order results using Dick's own native sort options. Applies to keyword and search-URL runs.",
                        "default": "best_match"
                    },
                    "brand": {
                        "title": "🏷️ Brand",
                        "type": "string",
                        "description": "🏷️ Restrict to a single brand using Dick's own brand facet (e.g. `Nike`, `adidas`, `HOKA`). Leave blank for all brands."
                    },
                    "gender": {
                        "title": "🚻 Gender",
                        "type": "string",
                        "description": "🚻 Filter by the gender facet (e.g. `Men's`, `Women's`, `Boys'`, `Girls'`). Leave blank for all."
                    },
                    "activity": {
                        "title": "🏃 Activity / Sport",
                        "type": "string",
                        "description": "🏃 Filter by the activity / sport facet (e.g. `Running`, `Basketball`, `Training`). Leave blank for all."
                    },
                    "color": {
                        "title": "🎨 Color",
                        "type": "string",
                        "description": "🎨 Filter by the color facet (e.g. `Black`, `White`, `Blue`). Leave blank for all colors."
                    },
                    "minPrice": {
                        "title": "💵 Min Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💵 Only return products at or above this price (USD). Leave blank for no lower bound."
                    },
                    "maxPrice": {
                        "title": "💵 Max Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "💵 Only return products at or below this price (USD). Leave blank for no upper bound."
                    },
                    "onSale": {
                        "title": "🏷️ On Sale Only",
                        "type": "boolean",
                        "description": "🏷️ **On sale only** — restrict results to items currently discounted.",
                        "default": false
                    },
                    "category": {
                        "title": "🗂️ Category (Advanced)",
                        "type": "string",
                        "description": "🗂️ **ADVANCED:** A Dick's `facetCatgroup` value to scope results to a category (e.g. `12301_202102` = Shoes). Applied on top of a keyword. Leave blank unless you know the exact facet id."
                    },
                    "searchUrls": {
                        "title": "🔗 Dick's Search URLs (Advanced)",
                        "type": "array",
                        "description": "🔗 **ADVANCED:** Paste Dick's search/result URLs (e.g. `?searchTerm=…` or `?q=…`) to scrape them directly — one per line. Filters and sort above still apply where compatible.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "productUrls": {
                        "title": "🔗 Dick's Product URLs (Advanced)",
                        "type": "array",
                        "description": "🔗 **ADVANCED (Detail):** Paste Dick's product (PDP) URLs to fetch each product directly — one per line. These are always returned with Detail enrichment (best-effort per-size stock).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "🔢 Max Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🔢 Maximum number of products to return across all inputs.\n\n- **FREE users:** up to 25\n- **PAID users:** unlimited\n\nDefaults to 100.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
