# Selling Antiques Scraper - UK Antiques Marketplace (`lulzasaur/sellingantiques-scraper`) Actor

Scrape SellingAntiques.co.uk, the UK's largest antiques dealer marketplace (~100k listings). Search keywords or crawl categories for title, dealer, category, period, GBP price, status, images and URL. Optional detail mode adds description, materials, dimensions and more.

- **URL**: https://apify.com/lulzasaur/sellingantiques-scraper.md
- **Developed by:** [lulz bot](https://apify.com/lulzasaur) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 antique 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Selling Antiques Scraper - UK Antiques Marketplace Data

Scrape **[SellingAntiques.co.uk](https://www.sellingantiques.co.uk/)**, the UK's largest online antiques dealer marketplace with roughly **100,000 live listings** from hundreds of vetted UK antiques dealers — plus a sold archive of 400,000+ items.

Search by keyword, crawl any category (clocks, furniture, silver, ceramics, art...), or harvest the sold archive. Every record includes the title, dealer, category, period/dateline, GBP price and listing status.

### What you get

Fast listing-grid mode (default) returns for each antique:

| Field | Example |
|---|---|
| `itemId` | `1229449` |
| `title` | `Handley & Moore, London, Georgian Long Case / Grandfather Clock. Circa 1810.` |
| `price` / `priceText` / `currency` | `5500` / `£5,500` / `GBP` |
| `period` | `18th century` |
| `category` / `categoryUrl` | `clocks` / `https://www.sellingantiques.co.uk/antique-clocks/` |
| `dealer` / `dealerUrl` | `FJ & RD Story Antique Clocks` / dealer profile URL |
| `status` / `sold` | `APPROVED YESTERDAY` or `SOLD 3 HOURS AGO` / `false` / `true` |
| `imageUrl`, `url` | primary photo + listing URL |

With **Scrape detail pages** enabled, each item is enriched from the listing page's structured data:

- `description` — full dealer description
- `material`, `color`, `style`, `objectType` (e.g. `Mahogany, Brass, Glass`, `Georgian`, `Longcase Clocks`)
- `widthCm`, `heightCm`, `depthCm` — dimensions in centimetres
- `images` — all photos (up to 30)
- `availability` — In Stock / Sold
- `sku`, `categoryPath` (e.g. `Antiques > Clocks`)

### Input

```json
{
    "searchQueries": ["georgian clock", "oak dresser"],
    "startUrls": [{ "url": "https://www.sellingantiques.co.uk/antique-clocks/" }],
    "maxItems": 100,
    "scrapeDetails": false
}
```

- **searchQueries** — keywords searched across the whole marketplace.
- **startUrls** — optional listing URLs: category pages (`/antique-clocks/`, `/antique-silver/`...), keyword filters (`/filter/?keyword=oak`), or the sold archive (`/allsold.asp`).
- **maxItems** — cap on total records (0 = unlimited).
- **scrapeDetails** — visit each listing for full details (one extra request per item).

No proxy is required.

### Example record

```json
{
    "itemId": "1229449",
    "title": "Handley & Moore, London, Georgian Long Case / Grandfather Clock. Circa 1810.",
    "price": 5500,
    "priceText": "£5,500",
    "currency": "GBP",
    "period": "18th century",
    "category": "clocks",
    "dealer": "FJ & RD Story Antique Clocks",
    "dealerUrl": "https://www.sellingantiques.co.uk/story",
    "status": "APPROVED YESTERDAY",
    "sold": false,
    "imageUrl": "https://www.sellingantiques.co.uk/photosnew/dealer_story/dealer_story_full_1786724442516-6319289588.jpg",
    "url": "https://www.sellingantiques.co.uk/1229449/handley-moore-london-georgian-long-case-grandfather-clock-circa-1810/",
    "source": "sellingantiques.co.uk"
}
```

### Use cases

- **Price intelligence** — track asking prices for antique clocks, furniture, silver, jewellery and art across UK dealers.
- **Sold-price research** — mine the 400k+ item sold archive for realised-demand signals by category and period.
- **Dealer monitoring** — follow specific dealers' new stock and sell-through.
- **Sourcing & arbitrage** — find underpriced pieces by period, material or style for resale.
- **Market datasets** — build datasets of period furniture and decorative arts with dimensions and materials.

### Notes

- Prices are dealer asking prices in GBP; some listings show `POA` (price on application), in which case `price` is `null`.
- The `status` pill reflects marketplace activity (`APPROVED X DAYS AGO` on live listings, `SOLD X HOURS AGO` in the sold archive).
- This actor scrapes only publicly available listing data. Use responsibly and respect the website's terms of service.

# Actor input Schema

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

Keywords to search on SellingAntiques.co.uk (e.g. 'georgian clock', 'oak dresser', 'art deco lamp'). Each query is searched across all ~100k live listings.

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

Optional sellingantiques.co.uk listing URLs to crawl instead of (or in addition to) keyword search. Examples: https://www.sellingantiques.co.uk/antique-clocks/ (category), https://www.sellingantiques.co.uk/filter/?keyword=oak (search), https://www.sellingantiques.co.uk/allsold.asp (sold archive).

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

Maximum number of listings to scrape per run across all queries/URLs (0 = unlimited).

## `scrapeDetails` (type: `boolean`):

Visit each listing's detail page to add full description, materials, colour, dimensions (cm), style, object type, all images and stock availability. Slower (one extra request per item).

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

Proxy settings. The site serves plain HTML without a proxy, so none is needed by default.

## Actor input object example

```json
{
  "searchQueries": [
    "georgian clock"
  ],
  "maxItems": 48,
  "scrapeDetails": 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 = {
    "searchQueries": [
        "georgian clock"
    ],
    "maxItems": 48
};

// Run the Actor and wait for it to finish
const run = await client.actor("lulzasaur/sellingantiques-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": ["georgian clock"],
    "maxItems": 48,
}

# Run the Actor and wait for it to finish
run = client.actor("lulzasaur/sellingantiques-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": [
    "georgian clock"
  ],
  "maxItems": 48
}' |
apify call lulzasaur/sellingantiques-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lulzasaur/sellingantiques-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/mP0NI3acRx1kYLGxU/builds/XFQhiiAzz00oviqxO/openapi.json
