Skip to content
    ↑↓ to choose · Enter to open

    · 17 min read

    1stDibs Scraper: 24 Data Fields, Up to 1,000 Free Results/Month (2026)

    By CrawlerBros Engineering Team

    Each record carries 24 output fields, providing price, seller, creator, and period data for high-end marketplace items. Every 1,000 results costs $5.00 on the free-plan price, and Apify's free plan includes $5.00 of monthly usage, covering up to 1,000 results of this Actor. This Actor suits those needing structured marketplace data; it is not for those needing private buyer contact details, which the records do not include.

    Try it: open 1stDibs Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try 1stDibs Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of 1stDibs Scraper a month, before run-start charges and platform usage.

    1stDibs Scraper was last updated on 2026-08-10. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 700,550 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run 1stDibs Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The maxItems control directly affects your bill as per-result charges apply to each item written to the dataset. To manage costs, set includeItemDetails to false for initial runs and use a small item cap to reduce result count and platform usage until your configuration is verified.

    How do you run 1stDibs Scraper from the API?

    The schema marks 1 of its 21 controls as required: mode. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~1stdibs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search"
    }
    
    run = client.actor("crawlerbros~1stdibs-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search"
    }
    
    const run = await client.actor('crawlerbros~1stdibs-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.

    Which 1stDibs Scraper inputs matter, and which can you skip?

    The mode control, which determines whether you search by keyword or browse a category, is a required setting. Most users should start by setting only the mode, keyword or category, and maxItems. For a first run, leave other facet filters like period or style blank to observe the broad category results.

    • mode (string): What to scrape. Default: "search".
    • keyword (string): Search term - e.g. rolex watch, mid century chair, oil painting. Default: "rolex watch".
    • category (string): Category to browse. Default: "jewelry-watches".
    • period (string): Filter by era, using 1stDibs' own facet taxonomy. Only applies in Browse by category mode against categories that support it (all except New Arrivals and Saturday Sale, where it's ignored). Cannot be combined with style, material, or origin in Browse by category mode (the site drops the filters when combined as path segments) - if any of those are also set, they're ignored in favor of period. Default: "".
    • location (string): Filter by seller/item location, using 1stDibs' own "Item Ships From" facet. Browse by category mode only - ignored in Search mode. Not supported for the New Arrivals or Saturday Sale categories (ignored there). Cannot be combined with period, style, material, or origin in Browse by category mode (the site drops the filters when combined as path segments) - if any of those are also set, location is ignored in favor of it. Default: "".
    • style (string): Filter by design style, using 1stDibs' own facet taxonomy. Only applies in Browse by category mode against Furniture, Jewelry & Watches, and Art categories (and their subcategories) - ignored for New Arrivals, Saturday Sale, Fashion, and Fashion - Handbags, which don't support it. Not every style applies to every category (e.g. Louis XV is furniture-only, Edwardian is jewelry-only, Abstract is art-only) - if the chosen style doesn't apply to the chosen category, it's ignored. Cannot be combined with period or origin in Browse by category mode (the site drops both filters when combined as path segments) - if either is also set, style is ignored in favor of it. Cannot be combined with location either - if both are set, style wins. Default: "".
    • material (string): Filter by material, using 1stDibs' own facet taxonomy. Only applies in Browse by category mode against Furniture (and its subcategories) and Art - ignored for New Arrivals, Saturday Sale, Jewelry & Watches, and Fashion, which don't support it. Not every material applies to every category. Cannot be combined with period, style, or origin in Browse by category mode (the site drops the whole category scope when combined as path segments) - if any of those are also set, material is ignored. Cannot be combined with location either - if both are set, material wins. Default: "".
    • origin (string): Filter by the item's country/region of manufacture, using 1stDibs' own "Place of Origin" facet - distinct from location, which is where the seller ships from. Applies in both Search and Browse by category modes. In Browse by category mode only Furniture (and its Seating/Lighting/Tables subcategories) and Fashion (and Fashion - Handbags) support it - ignored for New Arrivals, Jewelry, Jewelry & Watches, Art, and Saturday Sale, which don't. Cannot be combined with period, style, or material in Browse by category mode (the site drops the whole category scope when combined as path segments) - if any of those are also set, origin is ignored. Cannot be combined with location either - if both are set, origin wins. Cannot be combined with gender - if both are set, gender wins. Default: "".
    • gender (string): Filter by gender, using 1stDibs' own facet taxonomy. Only applies in Browse by category mode against Jewelry, Jewelry - Watches, Fashion, and Fashion - Handbags - ignored for New Arrivals, Furniture, Art, and Saturday Sale, which don't support it. Cannot be combined with period, location, style, material, or origin in Browse by category mode (the site 404s or drops the whole category scope when combined as path segments) - if any of those are also set, they're ignored in favor of gender. Default: "".
    • color (string): Filter by item color, using 1stDibs' own facet taxonomy. Applies in both Search and Browse by category modes. In Browse by category mode only Furniture (and its Seating/Lighting/Tables subcategories), Art, and Fashion (and Fashion - Handbags) support it - ignored for New Arrivals, Jewelry, Jewelry - Watches, and Saturday Sale, which don't. Unlike period/location/style/material/gender, color is a plain query filter and can be freely combined with any of them. Default: "".
    • onSaleOnly (boolean): Only return items with a live markdown (1stDibs' own "On Sale" facet). Applies in both Search and Browse by category modes and freely combines with every other filter - except the New Arrivals category, which doesn't support it (ignored there). Default: false.
    • returnableOnly (boolean): Only return items eligible for free returns (1stDibs' own "Returnable" facet). Applies in both Search and Browse by category modes, against every category (including New Arrivals and Saturday Sale), and freely combines with every other filter. Default: false.

    The other 9 controls, with their defaults, are listed in the input schema on 1stDibs Scraper on Apify.

    Fixed-choice controls: mode accepts search (Search by keyword), browseCategory (Browse by category); category accepts 11 values (default jewelry-watches), including jewelry-watches (Jewelry - Watches), new-arrivals (New Arrivals), furniture, furniture-seating (Furniture - Seating); period accepts 19 values (default ""), including "" (Any period), 18th-century-and-earlier (18th Century and Earlier), 18th-century (18th Century), 19th-century (19th Century); location accepts 16 values (default ""), including "" (Any location), europe, usa-north-america (USA), canada-north-america (Canada); style accepts 40 values (default ""), including "" (Any style), abstract, abstract-expressionist (Abstract Expressionist), art-deco (Art Deco); material accepts 37 values (default ""), including "" (Any material), acrylic, animal-skin (Animal Skin), bamboo; origin accepts 9 values (default ""), including "" (Any origin), european (Europe), italian (Italy), asian (Asia); gender accepts "" (Any gender), mens (Men's), womens (Women's); color accepts 15 values (default ""), including "" (Any color), beige, black, blue.

    What does 1stDibs Scraper return?

    The returned records are suitable for inventory tracking and catalog enrichment, including specific fields like the creator and itemUrl.

    • itemId: string - 1stDibs internal item ID
    • title: string - Item title / description
    • price: number - Listed price, converted to the requested currency (falls back to USD if that item has no conversion on file)
    • currency: string - Currency the price field is denominated in
    • discountPercent: integer - Percent markdown off the original price, when the item is on sale (e.g. Saturday Sale, or scattered markdowns on regular listings) - omitted for full-price items
    • category: string - Item sub-category (e.g. "Chairs", "Wrist Watches")
    • categoryCode: string - 1stDibs internal category code
    • vertical: string - Top-level vertical (furniture, jewelry, art, fashion)
    • creator: string - Designer / manufacturer / brand, when documented
    • period: string - Era or creation date (e.g. "1960s", "Contemporary")
    • sellerName: string - Dealer / gallery name
    • country: string - Seller's country
    • isSold: boolean - Whether the item has already sold
    • hasVideo: boolean - Whether the listing includes a seller-uploaded video walkthrough
    • dimensions: string - Height/width/depth, when the dealer documents them - populated on every run, no includeItemDetails required (overwritten by a richer imperial+metric string when includeItemDetails is enabled)
    • imageUrl: string - Primary item image URL
    • itemUrl: string - Direct link to the item on 1stDibs
    • images: array - Full photo gallery for the item, in the dealer's own display order (only with includeItemDetails: true)
    • description: string - Full item description (only with includeItemDetails: true)
    • condition: string - Condition summary, e.g. "Good; Repaired. Wear consistent with age and use." (only with includeItemDetails: true)
    • materials: string - Materials and techniques, e.g. "Bentwood" (only with includeItemDetails: true)
    • placeOfOrigin: string - Country/region the item was made in (only with includeItemDetails: true)
    • referenceNumber: string - 1stDibs reference number (only with includeItemDetails: true)
    • specifications: object - Category-specific attributes the item documents - e.g. ringSize, metal, stone, stoneCut for jewelry, or medium, movementAndStyle for art (only with includeItemDetails: true, only present when the item documents such specs)

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open 1stDibs Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Set mode to browseCategory and choose furniture-seating to ensure the category-specific facets are available.
    2. Set currency to USD or EUR and verify that the price and currency fields in the output match your selection.
    3. Toggle includeItemDetails to true if your deliverable requires the full description and the specifications object.
    4. Select a single facet like period set to mid-20th-century rather than combining it with style to avoid the site dropping filters.
    5. Run an initial test with maxItems set to 10 to inspect the dimensions field and ensure it meets your formatting needs.
    6. Check the isSold boolean in the initial results to determine if you need to filter out historical sales.
    7. Input a specific keyword like rolex watch while in search mode if you are targeting specific models instead of browsing.
    8. Increase maxItems up to 5000 for a full production run once the data structure is verified.

    How do you apply it? Three worked playbooks

    These are 1stDibs Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Antique & vintage dealers

    Outcome: Track competitor pricing and inventory across furniture, jewelry, art, and fashion

    Configure: mode: "browseCategory", category: "furniture", sortBy: "newest", includeItemDetails: true

    Working method: Execute a category browse for furniture sorted by newest to identify recent inventory from other galleries. Compare the sellerName and price fields against your internal benchmarks to track market movement. Review the condition field in the extended data to ensure price comparisons are based on similar item quality.

    Deliverable: A competitor dataset featuring pricing, dealer names, and item condition reports.

    Stop condition: The run returns zero items for a category known to have high daily turnover.

    Use case 2: Interior designers

    Outcome: Source period-accurate furniture and decor filtered by style, era, and material

    Configure: mode: "browseCategory", category: "furniture-lighting", period: "1960s", includeItemDetails: true

    Working method: Browse a specific sub-category like furniture-lighting while setting the period to a decade like 1920s or 1960s. Use the dimensions field in the extended details to verify that the item fits specific spatial requirements. Collate the images array from the dataset to build a visual mood board for client approval.

    Deliverable: A spreadsheet of sourced items with physical dimensions and high-resolution image links.

    Stop condition: The period field in the output records does not match the requested decade facet.

    Use case 3: E-commerce catalog enrichment

    Outcome: Pull structured listing data (price, dimensions, condition, images) into your own catalog

    Configure: mode: "search", keyword: "cartier tank", includeItemDetails: true, maxItems: 100

    Working method: Search for specific models like cartier tank to gather uniform listing data across different sellers. Extract the referenceNumber and specifications object to map into your internal inventory management system. Use the full description field to populate local product pages with authentic historical context.

    Deliverable: A CSV file containing reference numbers, detailed specifications, and full photo galleries.

    Stop condition: The referenceNumber field is omitted from more than 40 percent of the results.

    What breaks, and how do you design around it?

    If you reach the 5,000-item return limit for maxItems, consider breaking your task into multiple runs by using different minPrice and maxPrice ranges. When multiple mutually exclusive filters (period, style, material, location, origin, gender) are set in Browse by category mode, the Actor applies one based on precedence: gender, then period, then style, then material, then origin, then location, ignoring the others.

    When should you not use 1stDibs Scraper?

    Do not use this Actor if you need to aggregate multiple antique sites in one execution. If your primary need is a different interface for high-end items, 1stDibs Luxury Antiques Scraper is a related alternative. For sourcing from other marketplaces, Pamono Vintage & Antique Design Scraper or Chairish Furniture Scraper cover inventory this Actor cannot reach. If your research is specific to the Danish market, DBA.dk Scraper is better for local second-hand listings. Use this Actor only when 1stDibs is the required source for vetted dealer inventory.

    What should you check before trusting the output?

    • Verify that the price field is a number and matches the denomination in the currency field.
    • Ensure description and images array are present only when includeItemDetails is set to true.
    • Check the specifications object for non-null values like ringSize when scraping the jewelry category.
    • Filter the dataset by isSold if your application requires real-time inventory only.
    • Confirm that the creator field is populated if you are targeting specific designers or brands.
    • Monitor the total record count and alert if a run returns zero items for a broad category like art.

    None of this proves a record is correct. It gives a scheduled 1stDibs Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the cost per result for the 1stDibs Scraper?

    The free-plan price is $0.005 per result, which comes to $5.00 per 1,000 results. Apify also bills for the platform usage consumed during the run. Note that the run-start fee is charged every time a run starts, whether or not it returns results, while the per-result charge applies only to items written to your dataset.

    How can I test this Actor before committing to a paid plan?

    Apify's free plan includes $5.00 of monthly usage with no credit card. This covers up to 1,000 results of this Actor at the standard rate. You can use this to run small batches and verify that fields like specifications and creator meet your requirements before scaling up your data collection.

    Why are some fields like referenceNumber missing?

    Only fields with real data are included in each record; the scraper omits empty fields. Additionally, specific fields like referenceNumber, condition, and the full images array only appear if you set includeItemDetails to true. This optional setting fetches each item's product page, which increases the run time and platform usage.

    Can I filter by both item location and manufacture origin?

    While both controls exist, they serve different purposes. Location filters by the seller's shipping country, while origin filters by where the item was made. In browse mode, these facets are often mutually exclusive on the site. If both are set, the Actor follows the precedence rules in the schema and will prioritize origin over location.

    Is it possible to track items that have already sold?

    Yes, 1stDibs often displays historical listings. Each result includes an isSold boolean field. This allows appraisers and researchers to analyze historical pricing trends by including sold items in their dataset, or allows dealers to filter them out to focus on active competition.

    Where to go next

    When you are ready to run it, open 1stDibs Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the 1stDibs Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-29.

    • Actor last updated by its maintainers on 2026-08-10.

    • Run outcome figures cover the 30 day public window ending 2026-09-29.

    • 1stDibs Scraper on Apify

    Featured actors

    1stDibs Scraper

    Scrape 1stDibs - the leading online marketplace for antique, vintage, and contemporary furniture, jewelry & watches, art, and fashion. Search by keyword or browse by category and get item details including price, seller, condition, and images.

    Run on Apify ↗