westelm.com APIwww.westelm.com ↗
Search West Elm's furniture and home décor catalog via API. Get product prices, images, faceted filters, and autocomplete suggestions for any keyword.
curl -X GET 'https://api.parse.bot/scraper/cb66f937-0146-4335-a7b5-6124e7217f73/search_products?page=2&query=desk&page_size=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword with support for pagination, sorting, and faceted filtering. Returns product details including prices, descriptions, images, and available filter facets.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| queryrequired | string | Search keyword (e.g., 'sofa', 'desk', 'lamp') |
| filters | string | JSON object of facet filters, e.g. {"productType": "Sofa", "fabric": "Velvet"}. Available facet names and values are returned in the facets array of search results. |
| sort_by | string | Sort field: relevance, lowestPrice, highestPrice, name, newcore. Omitting uses the site default (relevance). |
| page_size | integer | Number of results per page (1-100) |
| sort_order | string | Sort direction: ascending or descending |
{
"type": "object",
"fields": {
"page": "integer current page number",
"query": "search keyword that was used",
"facets": "array of available filter facets with name, display_name, type, and options (each with value, display_name, count)",
"products": "array of product objects with id, title, url, image_url, description, lowest_price, highest_price, sale_price_min, sale_price_max, regular_price_min, regular_price_max, flags, leader_sku, swatches_count",
"page_size": "integer results per page",
"total_pages": "integer total number of pages",
"sort_options": "array of available sort options with sort_by, display_name, sort_order",
"total_results": "integer total number of matching products"
},
"sample": {
"data": {
"page": 1,
"query": "desk",
"facets": [
{
"name": "productType",
"type": "multiple",
"options": [
{
"count": 182,
"value": "Desk",
"display_name": "Desk"
}
],
"display_name": "Product Type"
}
],
"products": [
{
"id": "mid-century-desk-acorn-h209",
"url": "https://www.westelm.com/products/mid-century-desk-acorn-h209/",
"flags": [
"fairTrade",
"inHome",
"warehouse"
],
"title": "Mid-Century Desk (52\")",
"image_url": "https://assets.weimgs.com/weimgs/rk/images/wcm/products/202603/1586/mid-century-desk-52-1-t.jpg",
"leader_sku": 3020531,
"description": "This mid-century inspired desk...",
"lowest_price": 799,
"highest_price": 799.2,
"sale_price_max": 799.2,
"sale_price_min": 799,
"swatches_count": null,
"regular_price_max": 999,
"regular_price_min": 899
}
],
"page_size": 3,
"total_pages": 79,
"sort_options": [
{
"sort_by": "relevance",
"sort_order": "descending",
"display_name": "Most Relevant"
},
{
"sort_by": "lowestPrice",
"sort_order": "ascending",
"display_name": "Price (low to high)"
}
],
"total_results": 236
},
"status": "success"
}
}About the westelm.com API
The West Elm API provides 2 endpoints for searching and browsing West Elm's furniture and home décor catalog. The search_products endpoint returns up to 100 results per page with 8-plus fields per product — including lowest_price, highest_price, sale_price_min, sale_price_max, images, and descriptions — along with faceted filter options and sort controls. The autocomplete endpoint delivers live search-term suggestions and matching product previews for partial queries.
What the API Covers
The West Elm API exposes two endpoints for product discovery on westelm.com. search_products accepts a required query string and optional parameters for page, page_size (1–100), sort_by (relevance, lowestPrice, highestPrice, name, newcore), sort_order (ascending or descending), and a filters JSON object for faceted refinement. The response includes total_results, total_pages, and a products array with per-product fields: id, title, url, image_url, description, lowest_price, highest_price, sale_price_min, and sale_price_max.
Facets and Filtering
Each search_products response includes a facets array listing all filterable dimensions for that result set — things like product type, fabric, color, and style. Each facet carries a name, display_name, type, and an options array with value, display_name, and count per option. You can feed those facet values back into the filters parameter on subsequent calls to narrow results. The sort_options array in the response documents exactly which sort combinations are valid for that query.
Autocomplete
The autocomplete endpoint takes a partial query string (e.g., sof, lamp) and returns two arrays: suggestions (each with a value field representing a completed search term) and products (lightweight product previews with id, title, url, image_url, lowest_price, highest_price, and flags). Optional num_suggestions and num_products parameters control how many of each to return, making it straightforward to implement a search-as-you-type interface.
- Build a price comparison tool tracking
lowest_priceandsale_price_minacross West Elm product categories. - Populate a furniture discovery app using
search_productswith facet filters for fabric, style, and product type. - Implement a search-as-you-type UI using the
autocompleteendpoint'ssuggestionsand product previews. - Monitor sale pricing changes by periodically querying
sale_price_maxandsale_price_minfor specific keywords. - Generate a structured product feed from West Elm for use in interior design or shopping aggregator platforms.
- Analyze inventory breadth by iterating paginated
search_productsresults and tallying facet option counts.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does West Elm offer an official public developer API?+
What product pricing fields does `search_products` return, and does it distinguish sale prices from regular prices?+
lowest_price, highest_price, sale_price_min, and sale_price_max. This lets you detect whether a product has a sale price range distinct from its regular price range and by how much it differs.How do facet filters work, and where do I find valid filter values?+
search_products response includes a facets array. Each facet has a name (use this as the key in the filters JSON parameter), a display_name, and an options array listing valid values with their result counts. Pass those values back as a JSON object in the filters parameter on the next request to narrow results.Does the API return product reviews or ratings?+
Is there a limit to how deep pagination can go in `search_products`?+
total_pages and total_results fields so you can determine the full depth before iterating. page_size can be set between 1 and 100. Very deep pagination on broad queries may return fewer results in later pages as the underlying catalog data thins out for that keyword.