# DSW Scraper: Shoes, Sneakers & Boots (`getascraper/dsw-scraper`) Actor

Extract shoe, sneaker, and boot catalogs from DSW. Get clean lists of brand, sizes, widths, colors, pricing, and image URLs. Perfect for price intelligence, stock monitoring, and retail arbitrage. Skip manual tracking.

- **URL**: https://apify.com/getascraper/dsw-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 0 monthly users, 93.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 shoe scrapeds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#EAF6F4;border:1px solid #BFE0DB;border-top:4px solid #0F766E;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Every DSW shoe, price and size in one spreadsheet.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull footwear listings from DSW.com by category link or keyword and get brand, price, sale price, colors, sizes, widths, availability and product images back in one clean table.</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFE0DB;border-top:none;vertical-align:top;color:#1C1917;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#115E59">🏷️ Sale prices</span><br>
<span style="font-size:12px;color:#57534E">Regular and sale price side by side, so markdowns stand out.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFE0DB;border-top:none;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#115E59">👟 Sizes and widths</span><br>
<span style="font-size:12px;color:#57534E">See which sizes and widths each shoe comes in.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFE0DB;border-top:none;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#115E59">🎨 Smart filters</span><br>
<span style="font-size:12px;color:#57534E">Narrow by price, color, material, size, width and sort order.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BFE0DB;border-top:none;border-left:none;vertical-align:top;color:#1C1917;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#115E59">🖼️ Product images</span><br>
<span style="font-size:12px;color:#57534E">Image links and product page links on every record.</span>
</td>
</tr>
</table>

### 🔍 What does DSW Scraper do?

Get current footwear product listings from DSW.com: brand, price in USD, sale price, available colors list, available sizes, widths, and high-resolution product image URLs, ready for your spreadsheet in under 15 seconds. Built for shoe resellers, e-commerce catalog builders, price tracking dashboards, and retail researchers.

### 💡 Why use DSW Scraper?

- **I am a footwear reseller** monitoring price drops, clearance events, and size stock levels on top-selling brands like Nike, Adidas, New Balance, and UGG on DSW to list on my own eBay or Poshmark store.
- **I am an e-commerce catalog manager** building a normalized database of shoes, sneakers, and boots across women's, men's, and kids' footwear.
- **I am a market-research analyst** building weekly reports on brand pricing strategies and discount rates in the US footwear retail space.
- **I am a bargain hunter** tracking my favorite running shoe models and colors on DSW to purchase when they go on sale.

### 🚀 How to use DSW Scraper

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#EAF6F4;border:1px solid #BFE0DB;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0F766E;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add categories or keywords</span><br>
<span style="font-size:12px;color:#57534E">Paste DSW category links or type search keywords.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF6F4;border:1px solid #BFE0DB;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0F766E;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your filters</span><br>
<span style="font-size:12px;color:#57534E">Pick a price range, color, size, width and max results.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF6F4;border:1px solid #BFE0DB;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0F766E;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Download the catalog</span><br>
<span style="font-size:12px;color:#57534E">Export the shoe list as CSV, Excel or JSON.</span>
</td>
</tr>
</table>

1. Create a free Apify account (no credit card needed).
2. Open the DSW Scraper in the Apify Console.
3. Paste one or more category URLs (e.g. `/category/mens/shoes/athletic-sneakers/running`) or keywords.
4. Set optional filters for price range or max results limit.
5. Click **Start** and download your structured shoe catalog as CSV, Excel, or JSON.

### 📋 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `startUrls` | array of URLs | Yes | Direct category or search page links (e.g. `https://www.dsw.com/category/mens/shoes/athletic-sneakers/running`). |
| `searchQueries` | array of strings | No | Product search keywords (e.g. `nike`, `running`). Searched in addition to any Start URLs. |
| `lowPrice` | integer | No | Only include footwear priced at or above this value in USD. 0 = no minimum. |
| `highPrice` | integer | No | Only include footwear priced at or below this value in USD. 0 = no maximum. |
| `maxItems` | integer | No | Maximum number of products per start URL or search. Each page holds up to 60 products. Defaults to 60. |
| `maxConcurrency` | integer | No | Maximum parallel requests (1-20). Defaults to 3. |
| `debugLogging` | boolean | No | Print detailed tags (API, FETCH, EMIT) to the run log. Defaults to false. |
| `proxyConfiguration` | object | Yes | Proxy options. Required. US Residential Proxy is mandatory to bypass DataDome. |

### 📦 Output

A structured dataset of footwear listings with brand, prices, sizes, colors, widths, stock availability, and image URLs. Free users get up to 50 results per run, paid plans scale to 1,000,000.

```json
{
  "url": "https://www.dsw.com/product/410-v9-running-shoe-mens/611232",
  "productId": "611232",
  "name": "410 v9 Running Shoe - Men's",
  "brand": "New Balance",
  "price": 56,
  "salePrice": null,
  "currency": "USD",
  "description": "",
  "images": [
    "https://assets.designerbrands.com/match/Site_Name/611232_100_ss_01/?quality=70&io=transform:fit,width:600"
  ],
  "colors": ["Black", "Blue", "Navy"],
  "sizes": ["8", "8.5", "9", "9.5", "10", "11", "12"],
  "widths": ["Medium", "Wide"],
  "availability": "InStock",
  "scrapedAt": "2026-06-15T02:06:45.329Z"
}
```

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `url` | string | Canonical link to the item detail page on DSW. |
| `productId` | string | Unique DSW product identifier. |
| `name` | string | Product display name. |
| `brand` | string | Brand name. |
| `price` | number | Regular retail price in USD. |
| `salePrice` | number | Sale or clearance price in USD (null if not on sale). |
| `currency` | string | Currency code, always USD. |
| `description` | string | Product detailed description including brand, gender, name, and classification tags. |
| `images` | array | Product high-resolution image URLs. |
| `colors` | array | Available product color options. |
| `sizes` | array | Available product sizes list. |
| `widths` | array | Available product widths (e.g. Medium, Wide). |
| `availability` | string | Stock status (InStock or OutOfStock). |
| `scrapedAt` | string | ISO 8601 timestamp of when the row was scraped. |

### 💰 Pricing

The Actor costs **$3.99 per 1,000 results**. A typical run extracting 200 products costs about $0.80. No proxy bandwidth charges beyond the standard US residential proxy tier.

### ⭐ Enjoying DSW Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#EAF6F4;border:1px solid #EAF6F4;border-left:5px solid #0F766E;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">If this saved you from clicking through DSW's catalog by hand, a rating helps a lot.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other footwear resellers and catalog builders find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#0F766E;border:1px solid #0F766E;border-left:5px solid #0F766E;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/dsw-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips or advanced options

- **Bypass anti-bot filters effortlessly.** DSW uses highly aggressive anti-scraping filters. This Actor uses optimized browser configuration combined with US residential proxies to bypass protection, meaning no more empty runs or blocks!
- **We charge only for success.** Undercutting competitors at just $3.99/1k, this scraper is highly cost-efficient and outputs complete colors, sizes, and width variants.
- **Direct category links work best.** Paste any category URL directly to get 62 products in a single unblocked API request, saving you duration and compute cost!

### ❓ FAQ, disclaimers, and support

##### Is the DSW scraper legal?

Yes. The DSW scraper accesses public catalog and search data that is publicly visible to any logged-out human in a browser. It does not require customer login, place automated orders, or bypass paywalls. You are responsible for compliance with local laws.

##### Why does this scraper require US proxies?

DSW restricts access to specific regions and geolocates its storefront. To successfully prevent geographic blocks and 403 pages, a US Residential Proxy is mandatory.

##### Can I track shoe sizes and widths?

Yes. Every product row includes a `sizes` list (e.g. `["8", "8.5", "9"]`) and a `widths` list (e.g. `["Medium", "Wide"]`) showing exact live inventory options.

##### Which categories are supported?

All footwear classes (Sneakers, Running Shoes, Boots, Heels, Kids, Women's, Men's) are supported. You can search by keyword or paste any catalog category link.

**Disclaimer:** This Actor accesses public web listing data only. It does not bypass authentication, paywalls, or anti-bot systems on the live site. DSW is the registered trademark of Designer Brands, Inc. This Actor is affiliation-free, and not endorsed or sponsored by Designer Brands.

### 🔗 Other actors

- [REI Scraper](https://apify.com/getascraper/rei-scraper) ↗ - Extracts outdoor gear, sale prices, and product specs from REI.
- [ThriftBooks Scraper](https://apify.com/getascraper/thriftbooks-scraper) ↗ - Pulls book conditions, pricing, and inventory specs from ThriftBooks.
- [ShopGoodwill Scraper](https://apify.com/getascraper/shopgoodwill-scraper) ↗ - Extracts active and sold auction listings from ShopGoodwill.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/dsw-scraper/changelog.md

# Actor input Schema

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

DSW category or product search result page URLs (e.g. 'https://www.dsw.com/category/mens/shoes/athletic-sneakers/running').

## `searchQueries` (type: `array`):

Product search keywords (e.g. 'nike', 'running'). Bypassed if Start URLs are provided.

## `lowPrice` (type: `integer`):

Only include footwear priced at or above this value. 0 = no minimum.

## `highPrice` (type: `integer`):

Only include footwear priced at or below this value. 0 = no maximum.

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

Restrict to footwear matching this color.

## `material` (type: `string`):

Restrict to footwear made of this material.

## `size` (type: `string`):

Restrict to footwear of this US shoe size.

## `width` (type: `string`):

Restrict to footwear of this width class.

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

Bidding and listings ordering on the DSW directory results.

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

Maximum number of products to output per start URL or search. Each page holds up to 60 products. Defaults to 60.

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

Maximum parallel requests (1-20). Higher is faster.

## `debugLogging` (type: `boolean`):

Print detailed tags (API, FETCH, EMIT) to the run logs.

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

Proxy options. Required. US Residential Proxy is mandatory to bypass DataDome.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.dsw.com/category/mens/shoes/athletic-sneakers/running"
    }
  ],
  "searchQueries": [],
  "lowPrice": 0,
  "highPrice": 0,
  "color": "any",
  "material": "any",
  "size": "any",
  "width": "any",
  "sort": "featured",
  "maxItems": 60,
  "maxConcurrency": 3,
  "debugLogging": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.dsw.com/category/mens/shoes/athletic-sneakers/running"
        }
    ],
    "searchQueries": [],
    "lowPrice": 0,
    "highPrice": 0,
    "color": "any",
    "material": "any",
    "size": "any",
    "width": "any",
    "sort": "featured",
    "maxItems": 60,
    "maxConcurrency": 3,
    "debugLogging": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/dsw-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.dsw.com/category/mens/shoes/athletic-sneakers/running" }],
    "searchQueries": [],
    "lowPrice": 0,
    "highPrice": 0,
    "color": "any",
    "material": "any",
    "size": "any",
    "width": "any",
    "sort": "featured",
    "maxItems": 60,
    "maxConcurrency": 3,
    "debugLogging": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/dsw-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.dsw.com/category/mens/shoes/athletic-sneakers/running"
    }
  ],
  "searchQueries": [],
  "lowPrice": 0,
  "highPrice": 0,
  "color": "any",
  "material": "any",
  "size": "any",
  "width": "any",
  "sort": "featured",
  "maxItems": 60,
  "maxConcurrency": 3,
  "debugLogging": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call getascraper/dsw-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/dsw-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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