Discover/Williams-Sonoma API
live

Williams-Sonoma APIwilliams-sonoma.com

Search and browse Williams-Sonoma products by keyword or category. Retrieve pricing, descriptions, images, tags, and facets via 3 structured endpoints.

Endpoint health
verified 6d ago
get_product_details
search_products
browse_category
3/3 passing latest checkself-healing
Endpoints
3
Updated
21d ago

What is the Williams-Sonoma API?

The Williams-Sonoma API covers 3 endpoints for searching, browsing, and retrieving detailed product data from williams-sonoma.com. The search_products endpoint accepts a keyword query and returns matching products with current prices, regular prices, descriptions, tags, and facets. The get_product_details endpoint exposes 10 fields per product including brand, image URL, and structured facet arrays — useful for building price trackers, comparison tools, or product catalogs.

Try it
Number of results per page.
Search keyword (e.g. 'cookware', 'knives', 'espresso')
Pagination offset (number of results to skip).
api.parse.bot/scraper/750a5533-f008-4473-9fd4-e7f12fa89b8c/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/750a5533-f008-4473-9fd4-e7f12fa89b8c/search_products?limit=5&query=cookware&offset=0' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace williams-sonoma-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Williams-Sonoma Product API — search, browse by category, drill into details."""
from parse_apis.williams_sonoma_product_api import WilliamsSonoma, CategoryId, ProductNotFound

client = WilliamsSonoma()

# Search the catalog for cookware; limit caps total items fetched.
for product in client.products.search(query="cookware", limit=3):
    print(product.title, product.price, product.regular_price)

# Browse a specific category using the CategoryId enum.
category = client.category(CategoryId.COOKWARE_SETS)
for item in category.products(limit=3):
    print(item.title, item.price, item.brand)

# Drill into a summary for the full product record.
summary = client.products.search(query="espresso", limit=1).first()
if summary:
    print(summary.title, summary.product_url)

# Fetch a single product by slug directly; handle not-found.
try:
    detail = client.products.get(product_id="chef-classic-ss-11-piece-cookware-set")
    print(detail.title, detail.price, detail.additional_info)
except ProductNotFound as exc:
    print(f"Product not found: {exc.product_id}")

print("exercised: products.search / products.get / category.products / ProductNotFound")
All endpoints · 3 totalmissing one? ·

Full-text search across the Williams-Sonoma product catalog. Returns paginated results ordered by relevance. Each product includes pricing, description snippet, category tags, and a slug ID usable with get_product_details for the full record.

Input
ParamTypeDescription
limitintegerNumber of results per page.
queryrequiredstringSearch keyword (e.g. 'cookware', 'knives', 'espresso')
offsetintegerPagination offset (number of results to skip).
Response
{
  "type": "object",
  "fields": {
    "limit": "integer number of results requested",
    "total": "integer total number of matching products",
    "offset": "integer current pagination offset",
    "products": "array of product objects with product_id, title, image_url, product_url, price, regular_price, description, tags, facets, and brand"
  },
  "sample": {
    "data": {
      "limit": 5,
      "total": 1026,
      "offset": 0,
      "products": [
        {
          "tags": [
            "cookware-in-stock",
            "college-cookware-electrics",
            "cookware-best-sellers"
          ],
          "brand": null,
          "price": 209.95,
          "title": "Cuisinart Chef's Classic Stainless Steel 11-Piece Cookware Set",
          "facets": [
            {
              "name": "avlIn12W",
              "values": [
                1208
              ]
            }
          ],
          "image_url": "https://assets.wsimgs.com/wsimgs/rk/images/dp/wcm/202617/0371/img2c.jpg",
          "product_id": "chef-classic-ss-11-piece-cookware-set",
          "description": "Inspired by the equipment used in professional French kitchens...",
          "product_url": "https://www.williams-sonoma.com/products/chef-classic-ss-11-piece-cookware-set/",
          "regular_price": 290
        }
      ]
    },
    "status": "success"
  }
}

About the Williams-Sonoma API

Endpoints and What They Return

The API provides three endpoints: search_products, browse_category, and get_product_details. All three return product objects sharing the same field set — product_id, title, image_url, product_url, price, regular_price, description, tags, facets, and brand. The price field reflects the current or sale price, while regular_price holds the pre-discount value, making it straightforward to detect marked-down items.

Search and Browse

search_products takes a required query string (e.g. 'cookware', 'espresso', 'knives') plus optional limit and offset integers for pagination. The response includes a total count of all matching products alongside the paginated products array. browse_category works the same way but takes a category_id slug instead — for example 'cookware-sets', 'electrics', or 'espresso-makers' — letting you enumerate all products within a specific department without a free-text query.

Product Detail

get_product_details accepts a product_id slug (e.g. 'wusthof-classic-chefs-knife') obtained from either of the listing endpoints and returns the full product record. This includes the facets array — structured attribute pairs such as material, color, or capacity — and the tags array containing category classification strings. The brand field is returned as a string or null, and description provides the full product copy as plain text.

Reliability & maintenanceVerified

The Williams-Sonoma API is a managed, monitored endpoint for williams-sonoma.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when williams-sonoma.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official williams-sonoma.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a Williams-Sonoma price tracker that monitors the gap between price and regular_price to surface discounted items.
  • Populate a kitchen equipment catalog by iterating browse_category over slugs like 'cookware-sets' and 'electrics'.
  • Power a product comparison tool using get_product_details to pull facets like material and capacity side by side.
  • Sync Williams-Sonoma product images and descriptions into an internal PIM using image_url and description fields.
  • Build a keyword-driven shopping assistant that queries search_products and returns ranked results with pricing.
  • Aggregate brand-level product listings by filtering the brand field across paginated search_products results.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Williams-Sonoma offer an official developer API?+
Williams-Sonoma does not publish a public developer API or API documentation for third-party access to its product catalog.
What does the `facets` field contain in a product response?+
The facets field is an array of objects, each with a name and values key. These represent structured product attributes — things like material, finish, or item dimensions — that Williams-Sonoma surfaces alongside the product listing. The exact facets vary by product type.
How does pagination work across `search_products` and `browse_category`?+
Both endpoints accept limit (number of results to return) and offset (number of results to skip). The response always includes a total field representing the full match count, so you can calculate how many pages exist and iterate through them systematically.
Does the API return customer reviews or ratings for products?+
Not currently. The API covers pricing, descriptions, images, tags, facets, and brand data. Customer review text and star ratings are not included in any of the three endpoints. You can fork this API on Parse and revise it to add a reviews endpoint if that data is needed.
Can I filter `search_products` results by brand or price range directly in the request?+
The search_products endpoint accepts only a query string plus pagination parameters — there are no built-in filter parameters for brand, price range, or facet values. Filtering on those fields requires post-processing the returned brand, price, and facets fields client-side. You can fork this API on Parse and revise it to add server-side filter parameters.
Page content last updated . Spec covers 3 endpoints from williams-sonoma.com.
Related APIs in EcommerceSee all →
wine.com API
Search and browse wines on Wine.com to discover detailed information including pricing, ratings, and product metadata across thousands of selections. Find top-rated wines, browse current sales, and access comprehensive details on any wine to make informed purchasing decisions.
westelm.com API
Search West Elm's furniture and home décor catalog by keyword, browse autocomplete suggestions, and filter results by price, style, color, and other attributes. Sort products by relevance, price, or rating and paginate through results.
wholefoodsmarket.com API
Search for grocery products, browse weekly sales, and find store locations at Whole Foods Market. Returns pricing, availability, ingredients, and nutritional information.
wayfair.com API
Browse and search Wayfair's product catalog. Retrieve product details by SKU or URL, explore daily sales and promotions, browse categories, and filter products by keyword, price, and physical dimensions.
lowes.com API
Search and browse products from Lowe's, including product listings by category, detailed product information, and pricing. Retrieve comprehensive details on specific items to compare options and make informed purchasing decisions.
zabars.com API
Search and browse Zabar's gourmet food products with autocomplete suggestions and detailed item information including pricing and availability. Get paginated results to easily discover specialty foods, wines, and delicacies from their curated selection.
woolworths.co.za API
Browse Woolworths South Africa's food categories and search for specific products while accessing detailed nutritional information and weight-based pricing. Find store locations across the country by province and suburb to check availability and plan your shopping trips.
walmart.com API
Retrieve product data from Walmart.com including pricing, descriptions, availability, reviews, and category listings. Access real-time product information to search by keyword, look up items by ID or URL, and browse department categories.