Foot Locker
Foot Locker Search API
Search Foot Locker by keyword on any of 13 storefronts (US, Canada, UK, Germany, France, Italy, Spain, Netherlands, Belgium, Austria, Ireland, Australia, New Zealand), in the storefront's language and currency. Filter by brand, gender, color, price bucket, on_sale and any facet (shoe size per gender, style, sport, rating...), and sort by relevance, price, new arrivals, top rated, name or brand. 48 items per page with id (the SKU), title, brand, URL, image, price, list price, percent off, the European 30-day lowest price, sale, new, launch and members-only-sale flags, rating, review count and colorways with their own prices. Also returns total, total_pages, the filters applied, every facet with its counts (any value works in filters) and data_as_of: listings can be a few hours old. A bare brand keyword (nike, hoka) returns that brand's listing and redirected_to says so. 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 (no ":").
Example: nike dunk
countryenum<string>default:usThe Foot Locker storefront. Titles and facet labels come back in the storefront's language, prices in its currency.
Example: de
us— United States (footlocker.com), USD. The default.ca— Canada (footlocker.ca), CAD. language en (default) or fr.gb— United Kingdom (footlocker.co.uk), GBP.de— Germany (footlocker.de), EUR.fr— France (footlocker.fr), EUR.it— Italy (footlocker.it), EUR.es— Spain (footlocker.es), EUR.nl— Netherlands (footlocker.nl), EUR.be— Belgium (footlocker.be), EUR. language nl (default) or fr.at— Austria (footlocker.at), EUR.ie— Ireland (footlocker.ie), EUR.au— Australia (footlocker.com.au), AUD.nz— New Zealand (footlocker.co.nz), NZD.
languageenum<string>Only for country ca (en default, or fr) and be (nl default, or fr). Other storefronts have one language.
Example: fr
en— English. The default on ca.fr— French, on ca or be.nl— Dutch. The default on be.
brandstring | string[]Only this brand, or any of several (up to 20): "Nike", "Jordan", "adidas", "New Balance", "HOKA". Case does not matter.
Example: Jordan
pageintegerResults page, 1-200, 48 items per page. A page past the last one returns an empty items list with the real total. Defaults to 1.
Example: 2
sortenum<string>default:relevanceThe order of the listing.
relevance— The site's Featured order. The default.price_low_to_high— Cheapest first.price_high_to_low— Most expensive first.new_arrivals— Newest first.top_rated— Highest customer rating first.name_az— Product name A-Z.brand_az— Brand A-Z.
genderstring | string[]Gender value(s) as facets gender lists them ("Men's", "Women's", "Boys'"; in the storefront's language).
Example: Women's
colorstring | string[]Color value(s) as facets primaryColor lists them.
Example: Black
price_rangestring | string[]Price bucket value(s) as facets price lists them (25-50, 50-75, 75-100, 100-150, 150-inf), in the storefront's currency.
Example: 100-150
on_salebooleanOnly items on sale.
Example: true
filtersobjectAny filter from a previous response: {facets[].id: facets[].values[].value, or a list of values}. Values of one filter are OR, filters combine (AND). E.g. {"mensShoesSize": "10.0"}, {"womensShoesSize": "8.0"}, {"style": "Casual Sneakers"}, {"sport": "Running"}, {"eligibleForDiscount": "True"}.
Example: {"mensShoesSize": "10.0", "primaryColor": "Black"}
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Men's size 10 Nike Dunks on footlocker.com, cheapest first.
res = client.footlocker.search(query="nike dunk", filters={"mensShoesSize": "10.0"}, sort="price_low_to_high")["data"]
print(res["total"], "items, listing built", res["data_as_of"])
for item in res["items"]:
print(item["id"], item["title"], item["list_price"], item["price"], item["percent_off"])Response