# 1stDibs Listings Scraper (`piotrv1001/1stdibs-listings-scraper`) Actor

The 1stDibs Listings Scraper extracts product listings and enriched profiles from 1stdibs.com, capturing names, prices in 10 currencies, brand, condition, dimensions, materials, period, style, images, and seller profiles — ideal for luxury market research, price tracking, and competitor analysis.

- **URL**: https://apify.com/piotrv1001/1stdibs-listings-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 product listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 🚀 1stDibs Listings Scraper

Easily extract product listings and full item details from **[1stDibs](https://www.1stdibs.com/)**, the
luxury marketplace for furniture, art, jewelry, and fashion. The **1stDibs Listings Scraper** turns any
1stDibs category page into structured data for market research, price tracking, competitor and seller
analysis, and catalog building.

### ✨ Features

- 🏷️ **Comprehensive Item Data**: Name, price, brand, condition, category, availability, full
  description, and high-resolution images.
- 💱 **Multi-Currency Pricing**: Every item's price in all 10 supported currencies (USD, EUR, GBP, CHF,
  AUD, CAD, MXN, DKK, SEK, NOK).
- 📐 **Rich Specifications**: Exact dimensions (inches **and** centimeters), materials, creators
  (designer + manufacturer), style, period, and place of origin.
- 🧑‍💼 **Seller Profiles**: Storefront company, location, tenure, total orders, rating, and listing-view
  metrics.
- 🪶 **Two Modes**: Pull shallow listings cheaply, or visit each detail page for the full record.
- ⚡ **Fast & Reliable**: Pure HTTP scraping — no proxy required, robots-compliant pagination.

### 🛠️ How It Works

1. **Enter Start URLs** – Provide one or more 1stDibs category / listing page URLs (e.g.
   `https://www.1stdibs.com/furniture/seating/chairs/`).
2. **Choose Depth** – By default the scraper returns fast, listing-only data. Turn on **Scrape item
   detail pages** for the full record (dimensions, materials, seller profile, multi-currency prices …).
3. **Run the Scraper** – Start the process and download structured product data from the dataset as
   JSON, CSV, Excel, or HTML.

### ⚙️ Input

| Field                | Type    | Description                                                                  |
| -------------------- | ------- | ---------------------------------------------------------------------------- |
| `startUrls`          | array   | 1stDibs category / listing pages to scrape. Each is paginated automatically. |
| `maxItems`           | integer | Maximum number of item records to save (default `50`, `0` = unlimited).      |
| `scrapeItemDetails`  | boolean | Visit detail pages for the full record. Off = listing-grid fields only.      |
| `proxyConfiguration` | object  | Optional proxy. Not required for 1stDibs.                                    |

Example input:

```json
{
    "startUrls": [{ "url": "https://www.1stdibs.com/furniture/seating/chairs/" }],
    "maxItems": 200,
    "scrapeItemDetails": true
}
````

### 📊 Sample Output Data

The scraper provides structured JSON output with full item details. Example:

```json
[
    {
        "itemId": "f_50232092",
        "url": "https://www.1stdibs.com/furniture/seating/chairs/marcel-breuer-cesca-chair-.../id-f_50232092/",
        "name": "Marcel Breuer Cesca Chair in Chrome and Straw, Signed Gavina, Italy, 1960s",
        "price": 889.52,
        "currency": "USD",
        "availability": "InStock",
        "brand": "Gavina, Marcel Breuer",
        "category": "Chairs",
        "condition": "UsedCondition",
        "productionDate": "Mid-20th Century",
        "creationDate": "1960s",
        "period": "Mid-20th Century",
        "style": "Mid-Century Modern",
        "placeOfOrigin": "Italy",
        "materials": ["Chrome", "Metal", "Rattan", "Straw", "Wood"],
        "creators": ["Marcel Breuer", "Gavina"],
        "dimensions": ["Height: 31.11 in (79 cm)", "Width: 18.51 in (47 cm)", "Depth: 21.26 in (54 cm)"],
        "referenceNumber": "1stDibs: LU3067350232092",
        "ratingValue": 5,
        "reviewCount": 147,
        "listingViewsLast6Months": 16,
        "images": ["https://a.1stdibscdn.com/...master.jpeg?width=768"],
        "priceByCurrency": [{ "price": 750, "currency": "EUR", "availability": "InStock" }],
        "seller": {
            "company": "Italian Design 900 srls",
            "location": "Roma, Italy",
            "establishmentYear": 1990,
            "monthsOnPlatform": 104,
            "totalOrders": 2017,
            "isDistinguished": false
        },
        "scrapedAt": "2026-06-03T12:10:34.544Z"
    }
]
```

### 💰 Pricing

This Actor uses the **Pay Per Event** model — you only pay for the data you extract, with no monthly fee
and no separate compute or proxy charges. Shallow listings are billed cheaply; full detail records are
billed at a higher rate, so you control cost by choosing the depth you need.

| Event             | When it fires                                               | Price per 1,000 |
| ----------------- | ----------------------------------------------------------- | --------------- |
| `product-listing` | A shallow listing row (**Scrape item detail pages** is off) | **$1.00**       |
| `item-detail`     | A full detail record (**Scrape item detail pages** is on)   | **$5.00**       |

Use **Max items** and the run's charge limit to cap your spend — the Actor stops as soon as the limit is
reached. New Apify accounts include free monthly credits, enough to try the Actor at no cost.

Start extracting luxury marketplace data with the **1stDibs Listings Scraper** today! 🚀

# Actor input Schema

## `startUrls` (type: `array`):

1stDibs category / listing pages to scrape, e.g. https://www.1stdibs.com/furniture/seating/chairs/ . Each URL is paginated automatically.

## `maxItems` (type: `integer`):

Maximum number of item records to save to the dataset. Set to 0 for unlimited.

## `scrapeItemDetails` (type: `boolean`):

Visit each item's detail page for the full record (condition, dimensions, materials, period, style, multi-currency prices, all images, and the seller profile). When off, only the listing-grid fields are saved (faster, cheaper).

## `proxyConfiguration` (type: `object`):

Proxy settings. Not required for 1stDibs — enable only if you hit rate limiting at high volume.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.1stdibs.com/furniture/seating/chairs/"
    }
  ],
  "maxItems": 50,
  "scrapeItemDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.1stdibs.com/furniture/seating/chairs/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/1stdibs-listings-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.1stdibs.com/furniture/seating/chairs/" }] }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/1stdibs-listings-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.1stdibs.com/furniture/seating/chairs/"
    }
  ]
}' |
apify call piotrv1001/1stdibs-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=piotrv1001/1stdibs-listings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "1stDibs Listings Scraper",
        "description": "The 1stDibs Listings Scraper extracts product listings and enriched profiles from 1stdibs.com, capturing names, prices in 10 currencies, brand, condition, dimensions, materials, period, style, images, and seller profiles — ideal for luxury market research, price tracking, and competitor analysis.",
        "version": "0.0",
        "x-build-id": "TyzYSwmb7DxyPAtDn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/piotrv1001~1stdibs-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-piotrv1001-1stdibs-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/piotrv1001~1stdibs-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-piotrv1001-1stdibs-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/piotrv1001~1stdibs-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-piotrv1001-1stdibs-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "1stDibs category / listing pages to scrape, e.g. https://www.1stdibs.com/furniture/seating/chairs/ . Each URL is paginated automatically.",
                        "default": [
                            {
                                "url": "https://www.1stdibs.com/furniture/seating/chairs/"
                            }
                        ],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of item records to save to the dataset. Set to 0 for unlimited.",
                        "default": 50
                    },
                    "scrapeItemDetails": {
                        "title": "Scrape item detail pages",
                        "type": "boolean",
                        "description": "Visit each item's detail page for the full record (condition, dimensions, materials, period, style, multi-currency prices, all images, and the seller profile). When off, only the listing-grid fields are saved (faster, cheaper).",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Not required for 1stDibs — enable only if you hit rate limiting at high volume.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
