# Invaluable Scraper — Auction Lots, Estimates & Sold Prices (`hipersoft/invaluable-scraper`) Actor

Scrape auction lots from Invaluable: upcoming lots with estimates, current bid and bid count, and past auction results with sold (hammer) prices. Art, jewelry, watches, coins, collectibles, furniture. Auction house, date, location, image. Export CSV/JSON.

- **URL**: https://apify.com/hipersoft/invaluable-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.001 / lot

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Invaluable Scraper: Auction Lots, Estimates and Sold Prices

**Invaluable Scraper** extracts auction lots from **Invaluable**, one of the world's largest online marketplaces for **fine art, antiques, jewelry, watches, coins, collectibles, furniture and decorative arts**, with thousands of auction houses in the **US, UK, Europe and Asia**. Collect **upcoming lots** with **low and high estimates, current bid and bid count**, or **past auction results** with **sold (hammer) prices** for price research. For every lot you get the **title, description, lot number, category, subcategory, artist, estimates, current bid, sold price, currency, auction house, location, country, sale type (live / timed / online-only), auction date and image**. Search by **keyword**, filter by **category, country, auction house and price**, and export to **CSV, Excel or JSON**. Ideal for **collectors, dealers, appraisers, art market analysts, watch and coin traders, and resellers**.

### What does Invaluable Scraper do?

- 🔨 **Upcoming lots**: estimates, current bid and number of bids.
- 💰 **Past results**: sold prices for price history and appraisals.
- 🖼️ **All categories**: art, jewelry, watches, coins, collectibles, furniture, Asian art and more.
- 🏛️ **Auction house** details: name, location, country.
- 🔎 **Keyword search** with category, country, house and price filters.
- 📦 **Large result sets** split automatically to collect everything.

### What data can you scrape from Invaluable?

| Field | Description |
|---|---|
| Lot | Lot ref, lot number, title, description, link, image |
| Classification | Category, subcategory, artist |
| Prices | Low estimate, high estimate, current bid, bid count, sold price, currency |
| Auction | Status, auction house, location, country, sale type, online-only, date (UTC and local) |

### Use cases for auction data

- **Collectors**: track upcoming lots and bid levels for items you want.
- **Dealers and resellers**: compare estimates and hammer prices to price inventory.
- **Appraisers**: build comparables from past auction results.
- **Market analysts**: study price trends for artists, watch references, coins and categories.
- **Auction houses**: benchmark competitors' estimates and sell-through.

### How to scrape Invaluable

1. Click **Try for free** to open Invaluable Scraper in Apify Console.
2. Enter **search keywords** and choose **upcoming lots**, **past results** or both.
3. Optionally add **categories**, **countries**, **auction houses** and a **price range**.
4. Click **Start** and download the lots as **CSV, Excel or JSON**.

### Input

#### Example input

```json
{
  "searchQueries": ["rolex submariner", "patek philippe"],
  "lotStatus": "past",
  "soldOnly": true,
  "countries": ["United States of America", "Switzerland"],
  "minPrice": 5000,
  "maxItems": 1000
}
```

| Field | Description |
|---|---|
| **Search keywords** | Empty = all lots matching filters. |
| **Lots** | upcoming, past, both. |
| **Past results: sold only** | Keep only lots with a sold price. |
| **Categories / Countries / Auction houses** | Optional filters. |
| **Min / max price** | Estimate (upcoming) or sold price (past). |
| **Max lots** | 0 = no limit. |

### Output

#### Sold lot example

```json
{
  "status": "sold",
  "lotRef": "01CC4E68F5",
  "lotNumber": "142",
  "title": "Rolex Submariner Date 'Full Gold Bluesy'",
  "url": "https://www.invaluable.com/auction-lot/rolex-submariner-date-full-gold-bluesy-142-c-01cc4e68f5",
  "category": "Jewelry",
  "estimateLow": 40000,
  "estimateHigh": 45000,
  "soldPrice": 25500,
  "currency": "USD",
  "auctionHouse": "California Auctioneers",
  "country": "United States of America",
  "saleType": "Live",
  "auctionDate": "2026-10-04T17:00:00.000Z"
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `status` | string | upcoming, closed, sold, passed / not reported. |
| `lotRef`, `lotNumber`, `title`, `description`, `url`, `imageUrl` | string | Lot. |
| `category`, `subcategory`, `artist` | string | Classification. |
| `estimateLow`, `estimateHigh`, `currentBid`, `bidCount`, `soldPrice`, `currency` | mixed | Prices. |
| `auctionHouse`, `houseRef`, `location`, `country`, `saleType`, `onlineOnly` | mixed | Auction house and sale. |
| `auctionDate`, `auctionDateLocal`, `catalogRef` | string | Auction. |
| `search`, `scrapedAt` | string | Source info. |

### How much does it cost?

Invaluable Scraper uses **pay-per-lot** pricing: a small fixed price per lot, with automatic discounts on higher Apify plans. See the **Pricing** tab for the exact price.

### More collectibles and auction data

- [Fanatics Collect Scraper](https://apify.com/hipersoft/fanaticscollect-scraper): trading card auctions.
- [Collecting Cars Scraper](https://apify.com/hipersoft/collectingcars-scraper): collector cars and watches.
- [Bid on Equipment Scraper](https://apify.com/hipersoft/bidonequipment-scraper): equipment auctions.

### FAQ

**Are sold prices available for all past lots?**
Only when the auction house publishes the result. Turn off "sold only" to include lots without a published price.

**Which currency are prices in?**
Each lot is in its auction house's currency (`currency` field).

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate Invaluable Scraper with other apps?**
Invaluable Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape Invaluable?**
The scraper only collects publicly listed lot information. You are responsible for using the data in line with Invaluable's terms and applicable law.

### Related Actors

- [Fanatics Collect Scraper](https://apify.com/hipersoft/fanaticscollect-scraper)
- [Collecting Cars Scraper](https://apify.com/hipersoft/collectingcars-scraper)

### Notes

Original clean-room implementation. Returns only public data. Not affiliated with Invaluable.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords, e.g. rolex submariner, banksy, tiffany lamp, morgan silver dollar, chinese porcelain. Leave empty for all lots matching the filters.

## `lotStatus` (type: `string`):

Upcoming lots (live estimates and bids) or past auction results (sold prices).

## `soldOnly` (type: `boolean`):

For past results, keep only lots with a published sold price.

## `categories` (type: `array`):

Optional top categories, e.g. Jewelry, Fine Art, Furniture, Collectibles, Asian Art & Antiques, Decorative Art, Coins, Money & Stamps.

## `countries` (type: `array`):

Optional, e.g. United States of America, United Kingdom, France, Germany, Switzerland.

## `auctionHouses` (type: `array`):

Optional exact auction house names.

## `minPrice` (type: `integer`):

Upcoming: minimum low estimate. Past: minimum sold price (lot currency).

## `maxPrice` (type: `integer`):

Upcoming: maximum low estimate. Past: maximum sold price.

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

Stop after this many lots (0 = no limit; large searches are split automatically).

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

Not needed in most cases.

## Actor input object example

```json
{
  "searchQueries": [
    "rolex submariner"
  ],
  "lotStatus": "upcoming",
  "soldOnly": true,
  "maxItems": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The results as dataset items.

# 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 = {
    "searchQueries": [
        "rolex submariner"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/invaluable-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 = { "searchQueries": ["rolex submariner"] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/invaluable-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "rolex submariner"
  ]
}' |
apify call hipersoft/invaluable-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/invaluable-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BfKHSbU1nSuUWcsvq/builds/GP4y3sMe7w4W6mPRJ/openapi.json
