DSW APIdsw.com ↗
Search DSW shoe listings, browse by category, and fetch customer reviews with ratings, fit notes, and recommendation flags via 3 structured endpoints.
What is the DSW API?
The DSW API gives developers structured access to DSW's footwear catalog and customer feedback across 3 endpoints. Use search_products to query the catalog by keyword and get back product IDs, brand names, prices, review ratings, and available color options. get_category_products lets you browse by category path, while get_product_reviews returns per-product review text, secondary ratings for comfort, fit, and width, and syndication flags.
curl -X GET 'https://api.parse.bot/scraper/980bb31b-e076-49ea-bcc0-fd8b0cc7825e/search_products?page=0&query=nike+running&page_size=5' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace dsw-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.dsw_product_api import DSW, Product, Review, ReviewSort
dsw = DSW()
# Search for running shoes
for product in dsw.products.search(query="nike running", limit=5):
print(product.name, product.price, product.review_rating)
# Browse a category
for product in dsw.products.browse(category_uri="/category/womens/shoes", limit=3):
print(product.name, product.brand, product.badges)
# Get reviews for a specific product using constructible access
shoe = dsw.product(id="593026")
for review in shoe.reviews.list(sort=ReviewSort.NEWEST):
print(review.title, review.rating, review.date)
Full-text search over DSW's product catalog by keyword. Returns paginated results with product details including pricing, ratings, stock, and available colors. Pagination is 0-indexed. Each product exposes an id usable with get_product_reviews.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed) |
| queryrequired | string | Search keyword (e.g. 'nike running', 'sandals') |
| page_size | integer | Number of results per page |
{
"type": "object",
"fields": {
"total": "integer total number of matching products",
"products": "array of product objects with id, name, brand, price, review_rating, review_count, badges, color_list, stock_quantity"
},
"sample": {
"data": {
"total": 700,
"products": [
{
"id": "593026",
"name": "Run Defy Running Shoe - Men's",
"brand": [
"Nike"
],
"price": 64.96,
"badges": [
"top_rated"
],
"gender": [
"Men"
],
"color_list": [
"Blue"
],
"is_sponsored": false,
"review_count": 59,
"category_list": [
"Running Shoes"
],
"review_rating": 4.5085,
"stock_quantity": 1330,
"clearance_price": 64.96
}
]
},
"status": "success"
}
}About the DSW API
Product Search and Category Browsing
search_products accepts a required query string (e.g. 'nike running') and optional page and page_size parameters for 0-indexed pagination. Each product object in the response includes id, name, brand, price, review_rating, review_count, badges, and color/size availability. The total field tells you how many matching products exist across all pages. get_category_products works the same way but takes a category_uri path (e.g. '/category/womens/shoes') instead of a keyword, making it suitable for systematic catalog traversal by department.
Customer Reviews
get_product_reviews takes a product_id sourced from either listing endpoint, plus optional limit, offset, and sort parameters. The sort field follows a field:direction format — supported values include submissiontime:desc, rating:desc, and rating:asc. Each review object exposes id, author, rating, title, text, date, is_recommended, is_syndicated, and a secondary_ratings object covering comfort, fit, and width dimensions. The total_reviews field reflects the full count for pagination purposes.
Data Coverage and Scope
All three endpoints return live catalog and review data from DSW's footwear inventory. Product records include badge metadata (such as sale or new-arrival flags) alongside pricing and aggregated rating signals. The is_syndicated flag on reviews indicates whether a review originated from a partner retailer rather than DSW directly — useful if you need to filter for DSW-native feedback only.
The DSW API is a managed, monitored endpoint for dsw.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dsw.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official dsw.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price changes across a DSW category by polling
get_category_productson a schedule and recording thepricefield per product. - Build a shoe recommendation tool that filters
search_productsresults byreview_ratingandbrandfor a given keyword. - Aggregate secondary review dimensions (comfort, fit, width) from
get_product_reviewsto surface sizing insights for specific shoe models. - Flag syndicated reviews by filtering on
is_syndicatedinget_product_reviewsto isolate DSW-native customer feedback. - Monitor badge metadata from
search_productsto detect when products receive sale or new-arrival labels. - Compare review volume (
review_count) across competing brands within a category usingget_category_productsresults. - Identify top-reviewed products in a category by sorting
get_product_reviewswithrating:descand correlating withtotal_reviews.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does DSW have an official public developer API?+
What does the `secondary_ratings` field in reviews contain?+
secondary_ratings object inside each review from get_product_reviews holds dimensional ratings for comfort, fit, and width. These are distinct from the top-level numeric rating and represent the reviewer's assessment of those specific product attributes.Can I retrieve individual product detail pages (full description, materials, images)?+
name, brand, price, badges, and color/size info, but does not expose full product detail pages including descriptions, materials, or image URLs. You can fork this API on Parse and revise it to add a product detail endpoint.How does pagination work across the listing endpoints?+
search_products and get_category_products both use 0-indexed page and page_size parameters. The total field in each response gives the full count of matching products, so you can compute the number of pages needed by dividing total by page_size. get_product_reviews uses offset and limit instead, with total_reviews serving the same role.