# Catawiki Scraper (`rastriq/catawiki-scraper`) Actor

Scrape auction listings from Catawiki (catawiki.com) — classic motorcycles, modern classics, automobilia, and more. Extract bid prices, auction end times, makes, models, and lot details. Uses stealth browser for anti-bot bypass.

- **URL**: https://apify.com/rastriq/catawiki-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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

## Catawiki Scraper — Auction Listings for Motorcycles, Automobilia & More

Extract auction listings from **Catawiki** (catawiki.com) — Europe's largest curated online auction platform. Catawiki Scraper covers **Classic Motorcycles**, **Modern Classics**, **Automobilia**, and other vehicle categories. Scrape current bids, makes, models, years, and lot metadata. Export to JSON, CSV, or Excel.

> 🚀 **Try it free** — your first $5 of usage is on Apify. No credit card required.
>
> 🚗 Looking for **Classic Cars**? Use [Catawiki Cars Scraper](https://apify.com/rastriq/catawiki-cars-scraper) instead.

### 📌 What is Catawiki Scraper?

**Catawiki Scraper** is an unofficial Catawiki data extractor that collects structured auction listings across multiple vehicle and collectible categories. While [Catawiki Cars Scraper](https://apify.com/rastriq/catawiki-cars-scraper) focuses on classic cars, Catawiki Scraper covers everything else in the automotive auction world.

Catawiki hosts weekly curated auctions of classic motorcycles (Honda, Ducati, BMW, Yamaha), modern classics, and automobilia (signs, models, memorabilia). Catawiki Scraper captures all active lots with full pricing and metadata in a structured format ready for analysis.

Use Catawiki Scraper to:

- 🏍️ **Track classic motorcycle prices** — monitor bidding on Honda CB750s, Ducatis, BMWs, and rare vintage bikes
- 📊 **Analyze the automobilia market** — track collectibles, signs, models, and memorabilia pricing trends
- 🔍 **Research modern classics** — find undervalued lots across emerging collectible segments
- 🔄 **Automate weekly data collection** — schedule runs aligned with Catawiki's auction calendar and get notified via webhook

### 📋 What data does Catawiki Scraper extract?

**Catawiki Scraper** returns structured data with the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique Catawiki lot identifier |
| `title` | string | Full lot title (Brand - Model - Spec - Year) |
| `brand` | string | Manufacturer or brand name (parsed from title) |
| `model` | string | Model name and specs (parsed from title) |
| `model_year` | integer | Year of manufacture |
| `price` | number | Current bid amount in listing currency |
| `price_currency` | string | ISO 4217 currency code (EUR, GBP, USD) |
| `current_bid` | number | Current highest bid |
| `status` | string | Auction status (e.g. "Current bid", "Upcoming") |
| `bid_count` | integer | Number of bids placed |
| `favorites` | integer | Number of users who favorited this lot |
| `auction_end` | string | Time remaining or auction end date |
| `reserve` | boolean | Whether the lot has a reserve price |
| `auction_id` | string | Catawiki auction event identifier |
| `description` | string | Lot subtitle — condition, location, displacement |
| `image_url` | string | URL of the lot's main image |
| `url` | string | Direct link to the lot on Catawiki |
| `scraped_at` | string | ISO 8601 extraction timestamp |

> 💡 Fields like `bid_count` and `expert_estimate` depend on auction status and may not be available for all listings.

### 🚀 How to use Catawiki Scraper

Extracting Catawiki auction data takes under two minutes:

1. **Create a free Apify account** at [apify.com](https://apify.com) — your first $5 is free
2. **Open Catawiki Scraper** in Apify Console or click **Try for free** on this page
3. **Pick a category** — default is `440` (Classic Motorcycles). Other options: `441` (Modern Classics), `442` (Automobilia), `708` (Cars, Motorcycles & Automobilia)
4. **Optionally filter by make** — e.g. "Honda", "Ducati", "Vespa"
5. **Click Save & Start** and wait 30–60 seconds
6. **Download your results** in JSON, CSV, Excel, or XML — or access them via the Apify API

#### Supported categories

| Category ID | Name |
|-------------|------|
| `440` | Classic Motorcycles (default) |
| `441` | Modern Classics |
| `442` | Automobilia |
| `708` | Cars, Motorcycles & Automobilia (all) |

> 🚗 For Classic Cars (category `439`), use the dedicated [Catawiki Cars Scraper](https://apify.com/rastriq/catawiki-cars-scraper).

### ⚙️ Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrls` | array | ❌ | — | Paste any Catawiki URL(s) — search results, category pages, or auction pages. If provided, overrides the category dropdown |
| `category` | string | ❌ | `"440"` | Dropdown: Classic Motorcycles, Modern Classics, Automobilia, or All. Only used when `startUrls` is empty |
| `make` | string | ❌ | — | Filter by make/brand (client-side). Example: `"Honda"`, `"Ducati"`, `"Vespa"` |
| `max_items` | integer | ❌ | `30` | Maximum listings to extract. `0` = no limit |
| `max_pages` | integer | ❌ | `3` | Maximum pages to scrape per URL. Each page has ~10–16 listings |
| `proxyConfiguration` | object | ❌ | Residential | Proxy settings. Residential proxies strongly recommended |
| `delay_min` | number | ❌ | `1.0` | Minimum delay between page loads (seconds) |
| `delay_max` | number | ❌ | `3.0` | Maximum delay between page loads (seconds) |

**Example 1 — Scrape by category (easiest):**

```json
{
  "category": "440",
  "make": "Honda",
  "max_items": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

**Example 2 — Scrape by URL (paste from browser):**

```json
{
  "startUrls": [
    "https://www.catawiki.com/en/a/t/187-classic-motorcycle-auction",
    "https://www.catawiki.com/en/s?q=ducati+monster"
  ],
  "max_items": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### 📦 Output example

Each result is a structured JSON object. Here's a sample from a real run:

```json
{
  "id": "105542405",
  "listing_type": "auction",
  "url": "https://www.catawiki.com/en/l/105542405-ajs-7r-boy-racer-350-cc-1950",
  "title": "AJS - 7R - Boy Racer - 350 cc - 1950",
  "brand": "AJS",
  "model": "7R - Boy Racer - 350 cc",
  "model_year": 1950,
  "price": 8000,
  "price_currency": "EUR",
  "current_bid": 8000,
  "status": "Current bid",
  "favorites": 43,
  "auction_end": "11 hours left",
  "reserve": true,
  "auction_id": "1260970",
  "image_url": "https://assets.catawiki.nl/assets/2026/6/7/0/c/7/0c79e3cb.jpg",
  "description": "Condition: Very good - Registration papers: Customs documents",
  "scraped_at": "2026-08-03T06:24:06Z",
  "source": "catawiki.com"
}
```

Download results in **JSON, CSV, Excel, XML, or HTML** from the Output tab, or pull them programmatically using the Apify API.

### 💰 How much does it cost to use Catawiki Scraper?

Catawiki Scraper runs on Apify's standard **Compute Unit (CU)** pricing. A typical run extracting ~20 listings consumes approximately 0.03 CUs and takes about 30 seconds.

| Scenario | Listings | Estimated cost |
|----------|----------|---------------|
| Quick test | 10–20 | < $0.01 |
| Weekly monitoring | 50–100 | ~$0.05 |
| Full category sweep | 200+ | ~$0.20 |

> 💡 **Tip**: Your first $5 of platform credit is free — enough for hundreds of test runs.

Is scraping Catawiki free? Your free Apify credit covers roughly 500+ auction listings at no cost.

### 🔗 Related Rastriq Actors

Explore the full [Rastriq portfolio](https://apify.com/rastriq) on Apify Store:

| Actor | Description |
|-------|-------------|
| [Catawiki Cars Scraper](https://apify.com/rastriq/catawiki-cars-scraper) | Scrape classic car auction listings from Catawiki |
| [Collecting Cars Scraper](https://apify.com/rastriq/collecting-cars-scraper) | Extract listings from Collecting Cars online auctions |
| [Classic-Trader Scraper](https://apify.com/rastriq/classic-trader-scraper) | Scrape premium classic car listings from Classic-Trader |
| [Car and Classic Scraper](https://apify.com/rastriq/carandclassic-scraper) | Extract vintage and classic car listings from Car and Classic |
| [AutoScout24 Scraper](https://apify.com/rastriq/autoscout24-scraper) | Scrape European car listings from AutoScout24 |

### ❓ Frequently Asked Questions

#### Is scraping Catawiki legal?

Catawiki Scraper only accesses **publicly available data** on Catawiki — information visible to any visitor without logging in. The scraper respects rate limiting and applies reasonable delays between requests to avoid overloading Catawiki's servers.

As with any data collection activity, you are responsible for ensuring your use case complies with applicable laws (GDPR, CCPA) and Catawiki's Terms of Service. For guidance, see [Apify's blog on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Does Catawiki Scraper require a Catawiki account?

No. Catawiki Scraper works entirely with **public auction data** and does not require any account, login, or API credentials.

#### Why are some prices missing?

Catawiki loads bid prices dynamically via WebSocket for upcoming auctions that haven't opened for bidding yet. Prices are available for lots with active bidding ("Current bid" status).

#### What proxy configuration should I use?

Catawiki uses Akamai bot protection. **Residential proxies are strongly recommended** for reliable results. The scraper uses Camoufox (stealth Firefox) to bypass anti-bot detection.

#### How do I integrate Catawiki Scraper with my workflow?

Catawiki Scraper integrates natively with Make (Integromat), Zapier, Google Sheets, webhooks, and the full Apify API. See the API tab for ready-to-use code snippets in Python, Node.js, and more.

#### I found a bug or my run failed. Where do I report it?

Please open an issue in the **Issues tab** on this page. Include your input configuration and the run ID so we can investigate quickly.

# Actor input Schema

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

Paste any Catawiki URL — search results (<code>/en/s?q=rolex</code>), category pages (<code>/en/c/299-watches</code>), or auction pages.<br><br>Leave empty to use the Category selector instead.

## `category` (type: `string`):

Catawiki auction category. Only used when <b>Catawiki URLs</b> is empty.<br>For Classic Cars use <a href='https://apify.com/rastriq/catawiki-cars-scraper' target='_blank'>Catawiki Cars Scraper</a>.

## `make` (type: `string`):

Filter results by keyword (client-side). Leave empty for all.<br>Example: <code>Rolex</code>, <code>Picasso</code>, <code>Honda</code>

## `max_items` (type: `integer`):

Maximum number of listings to extract. <code>0</code> = no limit. Start with <b>20</b> for a quick test.

## `max_pages` (type: `integer`):

Max pages to scrape per URL. <code>0</code> = no limit. Each page has ~10–15 listings.

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

Residential proxies strongly recommended — Catawiki uses Akamai anti-bot.

## `delay_min` (type: `number`):

Minimum pause between page loads to avoid detection.

## `delay_max` (type: `number`):

Maximum pause between page loads.

## Actor input object example

```json
{
  "startUrls": [],
  "category": "85",
  "make": "",
  "max_items": 20,
  "max_pages": 2,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "delay_min": 1,
  "delay_max": 3
}
```

# Actor output Schema

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

Auction listings with prices, brands, models, and auction details from Catawiki categories.

# 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": [],
    "category": "85",
    "make": "",
    "max_items": 20,
    "max_pages": 2,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/catawiki-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": [],
    "category": "85",
    "make": "",
    "max_items": 20,
    "max_pages": 2,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/catawiki-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": [],
  "category": "85",
  "make": "",
  "max_items": 20,
  "max_pages": 2,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call rastriq/catawiki-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/D6lcNJ7Us9f8F4hmC/builds/59QtODfm2MTYvmUry/openapi.json
