Wayfair
Wayfair Product API
One Wayfair product by SKU or product 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: price, sale price, was price, price label, percent off, badge, stock status, every option (size, color ...) with its option_id, dimensions, specifications, features, description, images, documents, collection, returns, rating, review count, the 1-5 star histogram, the review summary, review aspects and the 5 reviews the page shows. Send option_id for one option's own price and stock, and zip (us, ca) for a delivery estimate. 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/jsonskustringA Wayfair SKU: letters then digits, as items[].sku or "SKU:" on the product page (W005006988, C110260590, U110380143, I110351475, PAGD1773 ...). Send sku or url.
Example: W005006988
urlstringA product page (.../pdp/<name>-<sku>.html) of a served site, as an alternative to sku; the market, language and site are read from it.
Example: https://www.wayfair.com/rugs/pdp/andover-mills-shiflett-oriental-burgundymustardblack-area-rug-w005006988.html
option_idstring | integerOne size, color or configuration: options[].choices[].option_id (several comma-separated for products with more than one option group). The answer carries that option's price and stock. Choices carry no price of their own, so pricing every option is one call per option.
Example: 1820607042
zipstringA US ZIP code (us) or Canadian postal code (ca) for a delivery estimate in delivery. Not available on gb or ie (400). Without zip, delivery is null.
Example: 10001
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.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
p = client.wayfair.product(sku="W005006988", zip="10001")["data"]
print(p["name"], p["price"], "was", p["was_price"], p["price_label"], p["currency"])
print(p["rating"], "from", p["review_count"], p["rating_histogram"])
for d in p["delivery"] or []:
print(d["name"], d["date_min"], d["text"])
# Each option is priced by its own call (1 credit each).
for c in p["options"][0]["choices"][:3]:
o = client.wayfair.product(sku="W005006988", option_id=c["option_id"])["data"]
print(c["name"], o["price"], o["was_price"], o["stock_status"])Response