1stDibs Listings Scraper
Pricing
Pay per event
1stDibs Listings Scraper
Scrape public 1stDibs furniture, art, jewelry, fashion, and decor listings with prices, sellers, creators, materials, dimensions, and images.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape public luxury furniture, art, jewelry, fashion, and decor listings from 1stDibs search, category, and product pages. Export titles, prices, dealers, locations, creators, materials, dimensions, condition notes, period, style, descriptions, and images for market research.
What does 1stDibs Listings Scraper do?
1stDibs Listings Scraper turns public 1stdibs.com pages into a structured dataset. Give it search URLs, category URLs, detail URLs, or simple keywords, and it collects listing records that are ready for CSV, Excel, JSON, API, or database workflows.
It is designed for public marketplace intelligence. The actor does not require a 1stDibs account and does not access private buyer, seller, or checkout data.
Who is it for?
- ๐๏ธ Vintage furniture dealers tracking competing chairs, tables, lighting, and decor.
- ๐ผ๏ธ Art and antiques researchers comparing public asking prices and listing descriptions.
- ๐ Jewelry resellers monitoring luxury and designer inventory.
- ๐งพ Appraisers collecting comparable public listings for valuation notes.
- ๐ท๏ธ Pricing analysts building historical snapshots of high-end marketplace supply.
- ๐ Interior design sourcing teams exporting candidate pieces for client mood boards.
Why use this actor?
Manual 1stDibs research is slow because each listing can contain rich attributes: price, creator, material, period, place of origin, dimensions, condition, seller, and image assets. This actor automates the repetitive collection step so your team can focus on analysis.
What data can you extract from 1stDibs?
| Field | Description |
|---|---|
listingUrl | Canonical public listing URL |
listingId | 1stDibs listing identifier when present |
title | Listing title |
priceUsd | USD price when visible in structured offer data |
prices | Currency-to-price map when multi-currency offers are present |
seller | Dealer, seller, creator, or maker text when visible |
location | Dealer/listing location |
creator | Designer, creator, manufacturer, or maker |
category | Listing category text |
materials | Materials and techniques |
dimensions | Dimensions text |
condition | Condition notes |
period | Period field |
style | Style field |
placeOfOrigin | Place of origin |
dateOfManufacture | Date of manufacture |
description | Public description |
imageUrls | Listing image URLs |
sourceUrl | Search, category, or detail URL that produced the row |
How much does it cost to scrape 1stDibs listings?
This actor uses pay-per-event pricing: a small $0.005 start event plus a formula-derived per-listing event. BRONZE users pay $0.000063448 per extracted listing, with lower per-listing prices on higher Apify tiers. A 1,000-listing BRONZE run is about $0.068 before any platform-side free allowances or tier differences.
Input options
You can use any combination of these inputs:
startUrlsโ public 1stDibs search, category, or listing URLs.keywordsโ search terms such aschair,Italian mirror, orCartier bracelet.categoryโ choose all departments, furniture, art, jewelry, or fashion for keyword searches.maxItemsโ maximum listing rows to save.maxPagesโ maximum pagination pages per search/category URL.includeDetailsโ open each listing page for richer price and specification fields.
Example input
{"keywords": ["chair"],"category": "furniture","maxItems": 25,"maxPages": 2,"includeDetails": true}
Search URL examples
{"startUrls": [{ "url": "https://www.1stdibs.com/search/furniture/?q=chair" },{ "url": "https://www.1stdibs.com/furniture/seating/chairs/" }],"maxItems": 50,"maxPages": 3,"includeDetails": true}
Detail URL example
{"startUrls": [{ "url": "https://www.1stdibs.com/furniture/seating/chairs/superb-antique-morris-chair-sikes-chair-co/id-f_43016952/" }],"maxItems": 1,"includeDetails": true}
Output example
{"listingUrl": "https://www.1stdibs.com/furniture/seating/chairs/example/id-f_123456/","listingId": "f_123456","title": "Example Vintage Lounge Chair","priceUsd": 4200,"priceCurrency": "USD","seller": "Example Dealer","location": "New York, NY","creator": "Example Designer","category": "Mid-20th Century Chairs","materials": ["Leather", "Walnut"],"dimensions": "Height: 32 in Width: 28 in Depth: 30 in","condition": "Good","period": "Mid-20th Century","style": "Mid-Century Modern","placeOfOrigin": "United States","description": "Public listing description...","mainImageUrl": "https://a.1stdibscdn.com/example.jpg","sourceType": "search","searchQuery": "chair","scrapedAt": "2026-06-09T00:00:00.000Z"}
How to scrape 1stDibs in 5 steps
- Open the actor on Apify.
- Add a 1stDibs search URL or enter one or more keywords.
- Choose a category and set a small
maxItemsvalue for your first run. - Keep
includeDetailsenabled if you need prices, dimensions, and condition notes. - Start the run and download the dataset as CSV, Excel, JSON, or XML.
Tips for better results
- Use specific keywords like
Italian brass lampinstead of onlylamp. - Use category URLs when you want broad inventory monitoring.
- Use detail URLs when you need a small set of known listings enriched.
- Increase
maxPagesgradually for large research jobs. - Turn off
includeDetailsfor faster lightweight discovery runs.
Common use cases
- ๐งฎ Build price comparison sheets for luxury furniture.
- ๐ Monitor new supply in a category over time.
- ๐งโโ๏ธ Collect comparable listings for appraisal research.
- ๐ผ๏ธ Analyze material, period, and style language in art and antiques listings.
- ๐ Feed listing URLs into alerting or enrichment workflows.
Integrations
Use the dataset with:
- Google Sheets or Excel for manual review.
- BI dashboards for price and category monitoring.
- Internal appraisal tools for comparable listing libraries.
- CRM workflows for sourcing and dealer research.
- Apify integrations such as webhooks, Make, Zapier, and scheduled runs.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/1stdibs-listings-scraper').call({keywords: ['chair'],category: 'furniture',maxItems: 25,includeDetails: true,});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/1stdibs-listings-scraper').call(run_input={'keywords': ['chair'],'category': 'furniture','maxItems': 25,'includeDetails': True,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~1stdibs-listings-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"keywords":["chair"],"category":"furniture","maxItems":25,"includeDetails":true}'
MCP usage
Connect this actor to Claude Desktop or Claude Code through Apify MCP:
$claude mcp add apify-1stdibs "https://mcp.apify.com/?tools=automation-lab/1stdibs-listings-scraper"
Claude Desktop JSON configuration:
{"mcpServers": {"apify-1stdibs": {"url": "https://mcp.apify.com/?tools=automation-lab/1stdibs-listings-scraper"}}}
Direct MCP URL:
https://mcp.apify.com/?tools=automation-lab/1stdibs-listings-scraper
Example prompts:
- "Scrape 25 1stDibs furniture listings for Italian chairs and summarize price ranges."
- "Collect public 1stDibs detail data for these listing URLs and make a comparison table."
- "Find common materials and periods in the exported 1stDibs dataset."
Scheduling
For monitoring workflows, schedule the actor daily, weekly, or monthly. Keep the same keyword/category inputs and compare new datasets over time to spot new inventory, removed listings, or price changes.
Data quality notes
1stDibs may hide prices for some listings or show "price upon request" style pages. In those cases, priceUsd can be null. Detail enrichment usually improves field coverage because listing pages expose more structured product data than search cards.
Performance notes
The actor is HTTP-only and does not launch a browser. Runs with detail enrichment make one extra request per listing. If you only need URLs and titles, disable includeDetails for faster runs.
Limits and caveats
- Only public pages are scraped.
- Availability and price can change after a run.
- Some seller/contact fields may be absent from public HTML.
- Images are public CDN URLs and may include transformed sizes.
- Website markup can change; report issues if important fields disappear.
Legality
This actor collects publicly available listing information. You should use the data responsibly, respect applicable laws and 1stDibs terms, avoid personal-data misuse, and consult legal counsel for regulated or high-risk use cases.
FAQ and troubleshooting
Why are some prices missing?
Some 1stDibs listings do not expose a public price or only show price information in certain contexts. Keep includeDetails enabled to maximize price extraction.
Why did I receive fewer items than requested?
The source page may have fewer public listings than your limit, or duplicate listings may appear across pages and get de-duplicated by URL.
Why is my run slower with detail enrichment?
Detail enrichment opens each listing page to capture richer data. Disable includeDetails when you only need search-card discovery.
Related scrapers
Explore other marketplace and ecommerce scrapers from Automation Lab:
- https://apify.com/automation-lab/etsy-scraper
- https://apify.com/automation-lab/ebay-sold-listings-scraper
- https://apify.com/automation-lab/chairish-scraper
- https://apify.com/automation-lab/poshmark-sold-listings-scraper
Changelog
- 0.1.0 โ Initial public-listing scraper for 1stDibs search, category, keyword, and detail URLs.