Wayfair
Wayfair Category API
One Wayfair category's products, 48 per page, by category id or category URL on wayfair.com, wayfair.ca (English or French), wayfair.co.uk, wayfair.ie and the US banner sites AllModern, Birch Lane, Joss & Main and Perigold, with the search sorts (price per item, customer rating) and filters (sale, closeout, open box, new arrivals, in stock, brand id, minimum rating, price range, any facet). Each product carries the same fields as search: SKU, brand, price, sale price, was price, price label, badge, rating, stock text and open-box price, plus the category with its breadcrumbs. 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/jsoncategory_idstring | integerA Wayfair category id: 413892 (or c413892) from a category URL (...-c413892.html), a search's redirected_to.category_id or a product's breadcrumbs. Send category_id or category_url.
Example: 413892
category_urlstringA category page of a served site (an /sb0/, /sb1/ or /sb2/ URL); filters in it are kept. A department page (/cat/) is not a product list and answers 400.
Example: https://www.wayfair.com/furniture/sb0/sofas-c413892.html
countrystringdefault:usThe Wayfair market: us (wayfair.com), ca (wayfair.ca), gb (wayfair.co.uk) or ie (wayfair.ie). Prices come back in the market's currency, never converted; the answer echoes country, language, site and currency. Wayfair no longer sells in Germany or Austria, so de and at answer 400, like any other code, before anything is charged.
Example: us
us— wayfair.com, USD, English. The default.ca— wayfair.ca, CAD, English or French (language).gb— wayfair.co.uk, GBP, English. uk is accepted too.ie— wayfair.ie, EUR, English.
languageenum<string>ca only: en (the default) or fr for wayfair.ca in French (French names, labels such as Solde, and dates). Every other market and banner site is English; fr there answers 400.
Example: fr
en— English. The default everywhere.fr— French, on country ca only.
siteenum<string>default:wayfairWayfair's US banner sites on the same catalogue platform: allmodern, birchlane, jossandmain or perigold (USD, English, country us only; with ca, gb or ie they answer 400). Default wayfair, the market's own site.
Example: perigold
wayfair— The market's own Wayfair site. The default.allmodern— AllModern (allmodern.com), US, USD.birchlane— Birch Lane (birchlane.com), US, USD.jossandmain— Joss & Main (jossandmain.com), US, USD.perigold— Perigold (perigold.com), US, USD.
pageintegerdefault:1Results page, 1-based, up to 1000. A page past the last returns no items and a note (Wayfair itself would serve page 1 again).
Example: 2
sortenum<string>default:recommendedResult order. Price sorts follow Wayfair's price per item, so a set is placed by its per_item_price, not its shown price.
Example: price_asc
recommended— Wayfair's own order. The default.price_asc— Price per item, low to high.price_desc— Price per item, high to low.rating— Customer rating, best first.
on_salebooleanOnly products on sale.
Example: true
closeoutbooleanOnly closeout products.
Example: true
open_boxbooleanOnly products with an open-box offer (open_box_price).
Example: true
new_arrivalsbooleanOnly new arrivals.
Example: true
in_stockbooleanOnly products in stock.
Example: true
brandinteger | string | array1 to 5 Wayfair brand ids (not names): items[].brand.id or a Brand facet option id, e.g. 44308 = Ebern Designs.
Example: 44308
min_ratingintegerCustomer rating: 5 = five stars only, 4 or 3 = that many stars and up, 1 = every reviewed product.
Example: 4
5— Five stars only.4— 4 stars and up.3— 3 stars and up.1— Every reviewed product.
price_minnumberLowest price, in the market's currency.
Example: 100
price_maxnumberHighest price, in the market's currency.
Example: 400
filtersobjectAny facet of an answer, keyed by facets[].id with facets[].options[].id values; ranges as "min~max". At most 12 filter values per call.
Example: {"2471": ["274623"]}
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
# Sofas on wayfair.co.uk with an open-box offer, most expensive first.
r = client.wayfair.category(category_id="1772837", country="gb", open_box=True, sort="price_desc")["data"]
print(r["category"]["name"], r["total"], r["currency"])
for i in r["items"]:
print(i["sku"], i["name"], i["price"], "open box", i["open_box_price"])Response