West Elm Scraper
We do not have a dedicated West Elm data API. What we do have is an AI scraper that reads a westelm.com page you point it at, turns it into the columns you asked for and hands them back by REST, CSV or Excel — on a schedule, priced per page.
- westelm.com
How to scrape West Elm
West Elm publishes no read API for its catalogue. There is no key to apply for and no endpoint to call, which is why the page is the interface. West Elm runs near-continuous promotions, which makes its list price largely decorative and the promotional price the real one. The way to get the data is to read the page the way a customer sees it: point the AI scraper at a westelm.com URL, declare the columns you want in plain English, and schedule it. Furniture prices move on configuration and lead time rather than on daily repricing: the same sofa is three prices depending on fabric, and the delivery estimate is part of the offer.
What the AI scraper does with a westelm.com link
The same three steps as any other page you point it at. Nothing about West Elm is pre-built, which is exactly why it works on pages nobody wrote a connector for.
Paste the link
Give it a westelm.com product or listing URL. Market, currency and assortment all come from the page itself, so there is no region setting to get wrong — the URL decides.
Declare the columns
Name each field, give it a type and write a line telling the AI what to look for. “product_title” and “brand” are the two most people start with. The schema is yours and you can change it between runs.
Schedule it and collect
Run it hourly, daily or on demand. Every run returns the same columns in the same order with a timestamp on each row, so the history builds itself.
Set it up once. The data keeps coming.
Save your search once and it runs by itself. Every run lands in your own Scrapewise database, and you pick how to read it.
Set it up once
Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.
Runs on your schedule
Pick daily, weekly on the days you choose, every few days, or the first or last day of the month. Scheduled runs start at night, European time. Need it more often? Start runs from your own code.
Saved in your database
Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.
Use it your way
Open the table in the web app and download the latest run as an Excel file. Ask your own AI assistant about it. Or pull the rows into your code with an API key.
Ask your AI assistant about your own data
Connect Claude Desktop or Claude Code with a read-only key. The assistant reads the rows you've already collected, at no extra cost on Scrapewise. With a full-access key it can start a run for you too.
- Which of my ASINs lost the Buy Box this week?
- Which competitor cut prices the most since Monday?
- Show the keywords where I dropped out of the top 10.
What you send and what you get
You send a link and a column list. Everything else — market, currency, which products are on the page — comes from the page, so there is nothing to configure twice.
- Link to a West Elm pagerequired
Open the product or category page in your browser and copy the address. Any West Elm country domain works the same way.
https://www.westelm.com/ - Your column listrequired
Field name, type and one line of plain English per column. Written once, reused on every run.
product_title, brand, sku, variant - How often it runsoptional
Hourly, daily, weekly or on demand through the API. Daily is what most price monitoring uses.
Daily at 06:00 UTC
One row per product on the page, 12 columns each
- product_title
- brand
- sku
- variant
- price
- was_price
- currency
- availability
- delivery_estimate
- dimensions
- product_url
- checked_at
REST API, CSV or Excel. The column set stays the same between runs, so downstream jobs do not re-map fields.
The columns a West Elm run comes back with
We are not going to print a table of invented home and furniture prices and call it real output. West Elm answers an ordinary request with Akamai rather than a product page, so we have no run of our own to quote from. So what is published here is the column list you declare before the run, which is the same list every run comes back with.
product_titleProduct title as the site writes itbrandBrand or own-label nameskuSite's own article numbervariantFabric, finish or size the page is showingpricePrice for that configuration todaywas_priceStrike-through price, only where the page shows onecurrencyCurrency the page quotedavailabilityStock state as the page states itdelivery_estimateLead time or delivery window showndimensionsDimensions as the page prints themproduct_urlLink back to the page the row came fromchecked_atWhen this run collected the page (UTC)Every column here is one you name yourself in the schema. If a field is not on the page on the day of the run, it comes back empty rather than guessed.
What a West Elm page costs
Pay-as-you-go from your wallet. No plan, no monthly fee, no seat count.
Measured on 3 October 2026, not assumed. A plain request for a westelm.com page is refused with HTTP 403 by Akamai, and so is the bare homepage, which rules out a bad path as the explanation. Clearing that needs both a real browser and a residential exit.
500 West Elm pages checked once a day for a month is 15,000 pages.
about EUR 56.25 for the month
You are charged for what a run actually used, not what it was expected to need, and your balance never expires.
See the full price list →What this page is not promising
We would rather say this here than in a support ticket.
No dedicated West Elm endpoint
There is no West Elm API in our catalogue and no pre-built West Elm schema. The AI scraper reads the page you point it at — that is the whole mechanism, and it is why it works on pages nobody built a connector for.
Nothing behind a login
It reads what a visitor can see. Account pricing, contract pricing and anything behind a sign-in are out of scope.
No field the page does not show
If the page does not print it, the scraper cannot return it. Identifiers like EAN or GTIN only come back where the retailer publishes them.
A price is a point in time
Every row carries the timestamp of the run that collected it. A price without one is not evidence, which is why the column is in the default schema.
West Elm has one specific trap
The promotion is applied at the basket on many lines, so the page price is the pre-discount number.
Not a bulk dump of the catalogue
You give it the URLs you care about. It does not crawl westelm.com end to end, and a schedule that tried to would cost more than the answer is worth.
Typical fields the AI scraper extracts from a West Elm page
Treat this as a starting point rather than a fixed schema. What comes back is whatever the page actually shows on the day of the run.
Configuration is the price
A single product page can hold a wide price range, and which configuration is shown by default is a merchandising decision, not a fact about the product.
- Price for the configuration the page is showing
- Which fabric, finish or size that is
- Price range across configurations, where the page prints one
- Strike-through or was-price where shown
- Promotion or sale event wording
Lead time, which is half the offer
In furniture a lower price with a fourteen-week lead time is not competing with a higher price in stock.
- Delivery window or lead time shown
- Stock state as the page states it
- Whether the item is made to order, where the page says
- Delivery or assembly charge, where quoted
- Showroom availability, where exposed
Specification
Furniture comparisons live or die on dimensions and materials, and both are usually rendered as a table.
- Dimensions as printed
- Material and finish description
- Site's own article number
- Range or collection name
- Rating and review count, where shown
- Product image URLs
The column list is one you write: name each field, give it a type and a line telling the AI what to look for. The schema belongs to your run, not to us. How Custom Schema works →
What it cannot give you If a field is not visible on the page, the scraper cannot invent it. Identifiers such as EAN or GTIN only come back when West Elm publishes them.
What people use West Elm data for
Price and promotion tracking through sale events
Home retail runs on sale events rather than daily repricing. Collecting daily through an event reconstructs exactly when each line moved and by how much.
Lead-time competitiveness
Delivery estimates next to prices turn a price comparison into an offer comparison, which is the one customers actually make.
Range and specification research
What a category carries, at what dimensions and price points. A few weeks of scraped data answers that before a buy.
Configuration price mapping
The real price range of a product across its fabrics and finishes, rather than the entry price the listing advertises.
Brand and partner price checks
If you supply into home retailers, this is how you see what your products are actually listed at, with the date attached.
Feeding your own pricing rules
The export is a normal REST API or CSV, so it drops into whatever pricing model you already run.
What makes West Elm harder than an ordinary storefront
Here is what the scraper is actually up against on westelm.com, measured rather than assumed.
Access
- Plain HTTP requests are refused at the edge — a naive fetch returns HTTP 403, not a page
- Named protection on the response: Akamai
- No usable sitemap directive in robots.txt, so the URL list comes from your own category pages
One page, a price range
- Fabric, finish and size options can each carry their own price, so the page has a range rather than a price
- Which configuration is shown by default changes, which makes a single-number scrape unstable
- Lead time is part of the offer and lives in a different part of the page from the price
- Configuration options are often loaded only after interaction, so a rendered page is required rather than optional
What the page publishes
- No product-level structured data is published, so every field is read off the rendered page
- The promotion is applied at the basket on many lines, so the page price is the pre-discount number.
- Price is one of the last things the page settles on, so a read taken too early records the placeholder rather than the number
Keeping a history
- A single read is a snapshot; the value is in the series, which means the run has to be scheduled and the rows kept
- Every row carries the timestamp of the run that produced it, so two days can be compared without guesswork
- Columns stay stable between runs, so a dashboard written once does not break when the site redesigns
West Elm scraping — questions
What people ask before pointing the scraper at westelm.com.
West Elm publishes no read API for its catalogue. There is no key to apply for and no endpoint to call, which is why the page is the interface.
Ready to pull West Elm data into your stack?
Start free — or talk to our team about your exact fields, refresh cadence and volume.