Dick's Sporting Goods
Dick's Sporting Goods Search API
Search dickssportinggoods.com (US) by keyword: 48 products per page by default (up to 144), sorted by relevance, top sellers, savings, price, featured, new arrivals or brand A-Z, and filtered by brand, an approximate price range and any facet (gender, shoe size, color, rating, sale...). Each item has id, title, brand, URL, image, current and list price ranges, percent off, a flag for prices Dick's shows only in the cart, rating, review count, badge, SKU count, color options, is_pinned and scheduled_prices, the offer-price windows Dick's has planned for the item. Also returns total, total_pages, applied filters, every facet with its values and counts, and the categories the results fall in. did_you_mean carries Dick's spelling suggestion; a keyword Dick's sends to a landing page (golf balls, clearance) is followed, and redirected_to says where. 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/jsonquerystringrequiredSearch keywords, 1-200 characters.
Example: running shoes
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 relevance, 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")
# Running shoes on sale, biggest discount first.
res = client.dicks.search(query="running shoes", filters={"5004": "Sale"}, sort="savings")["data"]
print(res["total"], "items over", res["total_pages"], "pages")
for item in res["items"]:
print(item["id"], item["title"], item["list_price"], item["price"], item["percent_off"], item["map_price_applies"])Response