chairish.com APIchairish.com ↗
Access Chairish listings, seller profiles, buyer reviews, and category browsing via API. Search products, get full details, and retrieve shop data.
curl -X GET 'https://api.parse.bot/scraper/0140bca7-e5fb-4079-85b9-6029f2932dcd/search_products?page=1&query=chair' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword with optional pagination. Returns an array of product listings with basic info including title, price, image, and taxonomy.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search keyword (e.g. 'chair', 'modern rugs') |
{
"type": "object",
"fields": {
"items": "array of product objects with id, title, price, url, taxonomy, is_purchasable, dealer_guid, image, dimensions",
"total_count": "integer total number of results, or null if unavailable"
},
"sample": {
"data": {
"items": [
{
"id": "35566308",
"url": "https://www.chairish.com/product/35566308/vintage-tiny-walnut-and-chintz-slipper-chairs-with-attached-down-cushions-a-pair",
"image": "https://chairish-prod.freetls.fastly.net/image/product/master/ea852e3f-e206-4c83-826a-7bbe9e873104/vintage-tiny-walnut-and-chintz-slipper-chairs-with-attached-down-cushions-a-pair-9963?aspect=fit&width=320&height=320",
"price": "1500",
"title": "Vintage Tiny Walnut and Chintz Slipper Chairs With Attached Down Cushions - A Pair",
"taxonomy": "Furniture/Seating/Accent Chairs/Slipper Chairs",
"dimensions": null,
"dealer_guid": "9xg66v",
"is_purchasable": true
}
],
"total_count": null
},
"status": "success"
}
}About the chairish.com API
The Chairish API covers 7 endpoints for searching and browsing vintage and pre-owned furniture, art, and decor listings on Chairish.com. The get_product_details endpoint returns 9 fields per listing including price, brand, images, availability status, category path, and linked seller info. Additional endpoints handle category browsing, shop profiles, buyer reviews, and autocomplete suggestions.
Product Search and Category Browsing
The search_products endpoint accepts a query string and an optional page integer, returning an array of listing objects each containing id, title, price, url, taxonomy, is_purchasable, dealer_guid, image, and dimensions. The total_count field tells you the overall result size for pagination planning. The list_category_products endpoint works the same way but scopes results to a category slug such as furniture, art, rugs, or lighting.
Product Details
get_product_details requires both a product_id (available from search or category results) and a slug (the URL path segment). The response adds fields not present in list views: brand, description, category path, an images array, availability status (e.g. instock), and a seller object containing the seller's name, URL, and ID. This seller ID feeds directly into get_seller_profile and the dealer_guid from list results feeds into get_seller_reviews.
Seller Profiles and Reviews
get_seller_profile takes a shop slug and returns the shop's name, location, description, and an items array of active listings with the same fields as search results. get_seller_reviews uses the short alphanumeric dealer_guid (not the slug) and returns paginated reviews objects with rating, content, author, date, purchased_item, and purchased_item_url, plus aggregate total_reviews and average_rating strings.
Shop Discovery and Autocomplete
search_shops accepts a keyword and returns matching shops with their id, name, and url. search_suggestions takes a partial term and returns choices objects that include display, url, and boolean flags is_maker, is_shop, and optionally is_official_shop. These two endpoints are useful for building type-ahead interfaces or resolving shop slugs before fetching full profiles.
- Aggregate Chairish listings by category to build a curated vintage furniture discovery feed.
- Track price and availability changes on specific products using
get_product_detailswithproduct_idandavailability. - Research seller reputation by pulling
average_ratingand paginatedreviewsfromget_seller_reviews. - Build a type-ahead search experience using
search_suggestionswithis_shopandis_official_shopflags. - Compile seller inventory lists by calling
get_seller_profileand reading theitemsarray withpriceanddimensions. - Cross-reference
dealer_guidfrom search results to match listings to their verified buyer review histories. - Populate a comparison tool with product
brand,category,images, andpricefromget_product_details.
| 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 Chairish have an official public developer API?+
What is the difference between the `shop_id` used in `get_seller_profile` and the one used in `get_seller_reviews`?+
get_seller_profile takes a shop slug (e.g. vintage-home-decor), which you can obtain from get_product_details via seller.id or from search_shops results. get_seller_reviews requires a short alphanumeric dealer_guid (e.g. abc123), which is returned in the dealer_guid field of search_products and list_category_products result objects. Using a slug where a GUID is expected, or vice versa, will not return results.Does the API expose sold or archived listings, not just active inventory?+
availability field in get_product_details reflects current stock status (e.g. instock), but sold-out or historical listings are not covered. You can fork this API on Parse and revise it to add an endpoint targeting sold item data if that coverage matters for your use case.Can I filter search results by price range, condition, or ship-to location?+
search_products and list_category_products accept only a query string and a page integer. Filtering by price, condition, or shipping region is not currently supported as endpoint parameters. You can fork this API on Parse and revise the search endpoint to add those filter parameters.How reliable is `total_count` across endpoints?+
total_count field is documented as an integer or null across search_products, list_category_products, and get_seller_profile. When the source does not surface a count, the field returns null rather than zero, so callers should handle both cases when building pagination logic.