Fanatics
Fanatics Sale & Clearance API
Fanatics deal listings on 8 storefronts and the 4 US league stores: the Sale listing (coupon-eligible items and clearance markdowns), clearance (the clearance-priced items of each sale page) or items under 25 in the storefront's currency, optionally for one league, team, department or brand, sorted by top sellers, price or newest. 24, 48 or 72 items per page with regular, sale, clearance and with-code prices, percent off and price label, plus total (counted up to 9,000), every facet with ids and counts and data_as_of. A sale tracker polls it and stores the prices: there is no price history. Merchandise only. 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/jsontypeenum<string>default:saleWhich deal listing.
Example: clearance
sale— The site's Sale listing: coupon-eligible items and clearance markdowns. The default.clearance— The clearance-priced items of each sale page (total counts the whole sale listing).under_25— Items under 25 in the storefront's currency, by the site's lowest price. Not on jp.
league_idinteger | stringOnly one league (NFL 25, MLB 19, NBA 23, NHL 26, College 5).
Example: 25
team_idinteger | stringOnly one team (Los Angeles Lakers 3372, Kansas City Chiefs 3433).
Example: 3433
department_idinteger | stringOnly one department, an id from the facets of the same storefront or store (fanatics.com Hats 8008, Jerseys 8011; NFL Shop's Jerseys is 14012).
Example: 8011
brand_idinteger | stringOnly one brand ('47 479, Nike 76, New Era 127).
Example: 76
countryenum<string>default:usThe Fanatics storefront. Titles come back in the storefront's language, prices in its currency.
Example: de
us— United States (fanatics.com), USD. The default, and the only storefront that takes site.gb— United Kingdom (fanatics.co.uk), GBP.de— Germany (fanatics.de), EUR.fr— France (fanatics.fr), EUR.es— Spain (fanatics.es), EUR.it— Italy (fanatics.it), EUR.jp— Japan (fanatics.jp), JPY. No price bands.ca— Canada (fanatics.ca), CAD. language en (default) or fr.
languageenum<string>Only for country ca: en (default) or fr. Every other storefront has one language.
Example: fr
en— English. The default on ca.fr— French, on ca.
siteenum<string>default:fanaticsUS only (country us): which store to read. The league stores use the same product ids as fanatics.com and write their own titles. Department and filter ids are per store (Jerseys is 8011 on fanatics.com, 14012 on NFL Shop): take them from the facets of the store you query, since an id from another store is silently ignored. Any site with another country is a 400.
Example: nflshop
fanatics— fanatics.com. The default.nflshop— NFL Shop (nflshop.com).mlbshop— MLB Shop (mlbshop.com).nhlshop— NHL Shop (shop.nhl.com).mlsstore— MLS Store (mlsstore.com).
pageintegerResults page, 1-based. Fanatics lists at most 9,000 products per listing, so the last page is 125 at 72 per page (188 at 48, 375 at 24). Defaults to 1.
Example: 2
page_sizeenum<integer>default:72Items per page.
24— 24 items.48— 48 items.72— 72 items. The default.
sortenum<string>default:top_sellersThe order of the listing. Price sorts order by price (the current price, before any promo code), not by the with-code price.
top_sellers— Fanatics' Top Sellers order. The default.price_low_to_high— Cheapest first.price_high_to_low— Most expensive first.newest— Newest arrivals first.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# NFL jersey clearance on fanatics.com. Store each snapshot: that is your price history.
res = client.fanatics.deals(type="clearance", league_id=25, department_id=8011)["data"]
print(res["count"], "clearance items of", res["sale_items_on_page"], "sale items on this page")
for item in res["items"]:
print(item["id"], item["title"], item["regular_price"], item["clearance_price"], item["with_code_price"])Response