Dick's Sporting Goods
Dick's Sporting Goods Category API
Browse one Dick's Sporting Goods category by its page path, URL or id (Men's Running Shoes, Golf Drivers, Kayaks...), in the site's featured order by default: 48 products per page (up to 144) with the search sorts and filters (brand, an approximate price range, any facet). Each item has id, variant sku, title, brand, URL, image, current and list price ranges, percent off, MAP flag, rating, review count, badge, options, is_pinned and the offer-price windows Dick's has planned. Also returns the category's id, name, path and URL, total, total_pages, applied filters, facets with counts and the sub-categories the results fall in. An unknown category is a 404. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonpathstringA Dick's category page path (/f/<name> or /c/<name>), as dickssportinggoods.com category links and a response's categories[].path carry it. One of path, url or category_id is required.
Example: /f/mens-running-shoes
urlstringA dickssportinggoods.com category URL (its page is used; filters in the URL are not read, send them in filters).
Example: https://www.dickssportinggoods.com/f/mens-running-shoes
category_idstring | integerA category id: a response's categories[].id or category.id.
Example: 202105
brandstring | string[]Only this brand (or any of several, up to 20), as the Brand facet lists it ("Nike", "HOKA", "YETI").
Example: Nike
pageintegerResults page, 1-based, up to 500. Defaults to 1. A page past the last one returns an empty items list with the real total.
Example: 2
page_sizeintegerItems per page, 1-144. Defaults to 48.
Example: 144
sortstringrelevance, top_sellers, savings (biggest discount first), price_low_to_high, price_high_to_low, featured (the site's merchandised order: pinned items first), new_arrivals or brand_az. Defaults to featured, like the site.
filtersobjectAny facet from a previous response: {facets[].id: facets[].values[].value, or a list of values}. Values of one facet are OR, facets combine (AND). E.g. {"5495": "Men's"} (gender), {"3232": "Black"} (color), {"rating": "4+"}, {"price": "50-100"}, {"5004": "Sale"}.
Example: {"5495": ["Men's"], "rating": "4+"}
min_pricenumberApproximate lower price bound in USD (the site's price filter is loose: a few items just outside the range can appear).
Example: 60
max_pricenumberApproximate upper price bound in USD.
Example: 80
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Walk a category, 144 items per page.
page, items = 1, []
while True:
res = client.dicks.category(path="/f/mens-running-shoes", page=page, page_size=144)["data"]
items += res["items"]
if page >= res["total_pages"]:
break
page += 1
print(len(items), "items;", sum(1 for i in items if i["percent_off"]), "discounted")Response