Kohl's
Kohl's Brand API
Browse one brand at Kohl's by name ("Hamilton Beach", "Levi's", "Nike") or by its kohls.com brand page URL: 120 products per page with the search sorts and filters (color, size, on sale, clearance, any facet value). Each item has the same fields as search: current, regular and sale price, price label, percent off, with-code price, rating, review count and is_sponsored. Also returns the brand's name, facet value and URL, total, total_pages and every facet with counts. An unknown brand is a 404. Costs 2 credits 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/jsonbrandstringA brand name as Kohl's lists it in the Brand facet ("Nike", "Hamilton Beach", "Levi's"). brand or url is required.
Example: Hamilton Beach
urlstringA kohls.com brand page URL (its CN carries Brand:...), instead of brand.
Example: https://www.kohls.com/catalog/hamilton-beach.jsp?CN=Brand:Hamilton%20Beach
pageintegerResults page, 1-based, up to 500. Defaults to 1. 120 products per page.
Example: 2
sortstringfeatured (default, the site's own order), new_arrivals, best_sellers, price_low_to_high, price_high_to_low, highest_rated or percent_off (percent_off is Kohl's own Percent Off order, which is loose; sort the items by percent_off yourself for a strict ranking).
colorstringOnly this color, as the Color facet lists it (Black, Blue, Beig/khaki...). One value; send more colors through filters.
Example: Black
sizestringOnly this size, as the Size facet lists it (M, 32X30, 10...). One value; send more sizes through filters.
Example: M
on_salebooleanOnly items on sale (the Sale promotion facet).
clearancebooleanOnly clearance items.
filtersstring | string[]Any facet value from a previous response: its facets[].values[].value, e.g. "Gender:Womens", "Price:%2425%20to%20%2450" (a price bucket), "TopRated:4", "InStoreOnline:Pick%20Up%20in%20Store". Unencoded values work too ("Price:$25 to $50"). Several facets combine (AND); at most 10 facets per request, the page's own included.
Example: ["Price:$25 to $50", "Gender:Womens"]
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Every page of one brand's clearance, ranked by percent off on your side.
page, items = 1, []
while True:
res = client.kohls.brand(brand="Hamilton Beach", clearance=True, sort="percent_off", page=page)["data"]
items += [i for i in res["items"] if not i["is_sponsored"]]
if page >= (res["total_pages"] or 1):
break
page += 1
items.sort(key=lambda i: i["percent_off"] or 0, reverse=True)
for item in items:
print(item["id"], item["title"], item["price"], item["regular_price"], item["percent_off"])Response