Chairish Furniture & Decor Listings Scraper avatar

Chairish Furniture & Decor Listings Scraper

Pricing

Pay per event

Go to Apify Store
Chairish Furniture & Decor Listings Scraper

Chairish Furniture & Decor Listings Scraper

Search Chairish's curated vintage furniture, art, and antiques marketplace by keyword or category. One row per active listing with price, category, dimensions, and seller - built for resale comps and design sourcing. No login required; we handle the retries.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share


🎯 What this scrapes

Chairish is a curated resale marketplace for vintage and design furniture, art, lighting, and decor. This Actor runs your keyword or category searches against Chairish's own public search pages and maps every listing card into one clean row: price, category, dimensions, and seller, ready for a spreadsheet or a pricing model without opening a browser.

🔥 What we handle for you

  • 🔁 Retries with exponential backoff on 403 / 408 / 429 / 5xx and network errors - up to 5 attempts per page, Retry-After honoured.
  • 🔄 Browser fingerprint rotation - curl-cffi impersonates Chrome and Firefox TLS handshakes on every retry, defense-in-depth even though live recon found no fingerprint sensitivity on Chairish's search pages.
  • 🌐 Apify Proxy wired in from the start - shared datacenter pool by default, one click to switch groups if you ever need it.
  • 🧱 Fault-isolated pages - one malformed listing never takes down the rest of the page; a query that matches nothing still succeeds with zero rows.
  • 🧊 Clean, typed dataset rows - Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing - you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Vintage/design resale comps - price stock against live Chairish asks before listing elsewhere.
  • Interior designers sourcing pieces within a budget or category on a schedule.
  • Market research - track pricing trends for a design era, maker, or category.
  • Dealer/inventory monitoring - watch for newly listed pieces matching a keyword watchlist.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
queriesarrayyes['chairs', 'mid century desk']One or more free-text Chairish searches or category names, e.g. "chairs", "mid century desk", "sofas". Each query runs its own paginated…
maxPagesPerQueryintegerno2How many search-result pages to fetch per query before moving to the next query (48 listings per page). A page that yields zero listings stops that…
maxResultsPerQueryintegerno20Optional cap on how many listings to keep per query, across all its pages. Leave blank for no cap (everything up to maxPagesPerQuery x 48 listings/page).
proxyConfigurationobjectno{'useApifyProxy': True}Apify Proxy configuration. Defaults to Apify's shared datacenter pool - live recon found no anti-bot fingerprinting on Chairish's search pages. Switch…

Example input

{
"queries": [
"chairs",
"mid century desk"
],
"maxPagesPerQuery": 2,
"maxResultsPerQuery": 20,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
product_idstringChairish's own product ID.
titlestringListing title.
pricestringAsking price, normalised to dollars as a decimal string, e.g. "7450.00".
currencystringISO 4217 currency code ("USD" - Chairish is a US-dollar-only marketplace).
categorystringTaxonomy path, e.g. "Furniture/Seating/Accent Chairs/Swivel Chairs", when set.
dimensionsstringFreeform dimension string as shown on the listing card, when present.
on_salebooleanTrue when the listing is flagged as a public sale/markdown item.
seller_idstringOpaque Chairish dealer/seller GUID (not a public username), when present.
listing_urlstringCanonical Chairish listing URL.
image_urlstringPrimary listing photo URL, when present.
query_usedstringThe search query that produced this row.
pageintegerThe search-result page number that produced this row.
scraped_atstringISO-8601 UTC timestamp when this row was recorded.

Example output

{
"product_id": "37220689",
"title": "Vintage Leopard Velvet Swivel Chairs",
"price": "7450.00",
"currency": "USD",
"category": "Furniture/Seating/Accent Chairs/Swivel Chairs",
"dimensions": "29˝W × 21.75˝D × 32.25˝H",
"on_sale": false,
"seller_id": "xt2req",
"listing_url": "https://www.chairish.com/product/37220689/vintage-leopard-velvet-swivel-chairs",
"image_url": "https://chairish-prod.freetls.fastly.net/image/product/sized/1e9ddce1-9eec-468c-9efc-5841bcf23729/vintage-leopard-velvet-swivel-chairs-1035?aspect=fit&width=320&height=320",
"query_used": "chairs",
"page": 1,
"scraped_at": "2026-09-15T12:00:00.000Z"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.2One-off warm-up charge per run
item-result$0.0038Per unique dataset item

Example: 1 000 results at the rates above (including the $0.20 flat start fee) ≈ $4.00 total. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

  • Active listings only - this Actor scrapes the public search results, not sold/completed-sale history.
  • No per-listing detail-page enrichment (condition notes, seller ratings, full photo set) beyond what the search-results card already carries.
  • No structured facet filters (era, maker, material as distinct params) - everything folds into the free-text query string.
  • USD/.com storefront only - no other Chairish region variants in v1.
  • This is a thin-demand niche market - Chairish's own third-party scraper cluster is small, so expect a smaller comps universe than a mainstream marketplace.

❓ FAQ

Is this legal?

We only fetch what Chairish's public search page already serves to any visitor. Respect Chairish's Terms of Service before using the output commercially.

How do I search multiple keywords or categories at once?

Add each term as its own entry in the queries list - the Actor runs one paginated search per entry and merges the results into a single dataset.

Why did a query return zero rows?

Either nothing on Chairish matched that search, or the search genuinely has no results. The run still succeeds - an empty match isn't treated as a failure.

Can I get sold/completed listings instead of active ones?

Not in v1 - this Actor covers Chairish's public active-listing search only. Open an Issue if you need sold-comp data and we'll scope it.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.