# Auctionet Scraper (`crawlergang/auctionet-scraper`) Actor

Scrape Auctionet - Scandinavia's largest online auction platform. Search lots by keyword, browse by category, or fetch completed/upcoming auctions. Extracts lot title, estimate, current bid, bid count, category, auction end time, and images.

- **URL**: https://apify.com/crawlergang/auctionet-scraper.md
- **Developed by:** [Crawler Gang](https://apify.com/crawlergang) (community)
- **Categories:** Automation, E-commerce, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 11 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 results

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

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

## Auctionet Scraper

Extract auction lot data from **Auctionet** — Scandinavia's largest online auction platform with over 500 partner auction houses. Search for specific items, browse by category, or fetch completed auctions — all without needing an account or API key.

### What data does it return?

Each auction lot record includes:

| Field | Description |
|---|---|
| `lotId` | Unique lot identifier on Auctionet |
| `title` | Full lot title |
| `description` | Lot description (HTML stripped) |
| `condition` | Item condition notes |
| `category` | Category path (e.g., `Clocks & Watches/Wristwatches`) |
| `lotUrl` | Direct link to the lot page |
| `endsAt` | Auction end date/time (ISO 8601) |
| `reserveMet` | Whether the reserve price has been met (`true`/`false`) |
| `estimateLow` | Lower estimate in SEK |
| `estimateHigh` | Upper estimate in SEK (when available) |
| `currentBid` | Current highest bid in SEK |
| `bidsCount` | Total number of bids |
| `imageUrl` | Primary lot image URL (full size) |
| `imageUrlFull` | Full-size image URL |
| `imageUrlMedium` | Medium-size image URL |
| `scrapedAt` | UTC timestamp when the record was collected |

### Input options

| Parameter | Type | Description |
|---|---|---|
| `mode` | Select | `search` — keyword search; `byCategory` — browse by category; `endedAuctions` — search completed auctions |
| `query` | String | Keyword to search for (required for `search` and `endedAuctions` modes). Default: `vintage watch` |
| `category` | Select | Category to browse (for `byCategory` mode): Art, Clocks & Watches, Furniture, Jewellery, Silver & Metals, Vintage Fashion, Ceramics, Books, Collectables, Coins & Medals, Carpets & Textiles, Glass |
| `minEstimate` | Integer | Minimum estimate value in SEK (optional filter) |
| `maxEstimate` | Integer | Maximum estimate value in SEK (optional filter) |
| `maxItems` | Integer | Maximum records to return (1–5000, default: 50) |

### Example use cases

- **Find vintage watches**: mode=`search`, query=`vintage Rolex`
- **Browse silver items**: mode=`byCategory`, category=`silver-metals`
- **Research sold prices**: mode=`endedAuctions`, query=`art nouveau jewelry`
- **Track Nordic art sales**: mode=`byCategory`, category=`art`

### FAQ

**Is an account or API key required?**
No. Auctionet provides a public JSON search API that this scraper uses directly.

**What currency are estimates in?**
Estimates are in SEK (Swedish Krona) by default, as Auctionet is primarily a Scandinavian platform.

**How many results can I get?**
Up to 5,000 results per run. Auctionet returns 48 lots per page and the scraper paginates automatically.

**What auction categories are available?**
Art, Clocks & Watches, Furniture, Jewellery & Gemstones, Silver & Metals, Vintage & Designer Fashion, Ceramics & Porcelain, Books, Collectables, Coins/Medals/Stamps, Carpets & Textiles, Glass.

**Can I search completed auctions?**
Yes — use `mode=endedAuctions` with a keyword to find items that have already sold.

# Actor input Schema

## `mode` (type: `string`):

What to fetch from Auctionet.

## `query` (type: `string`):

Keyword(s) to search for (used in mode=search and mode=endedAuctions).

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

Category to browse (mode=byCategory).

## `minEstimate` (type: `integer`):

Only emit lots with estimate at or above this value (in SEK).

## `maxEstimate` (type: `integer`):

Only emit lots with estimate at or below this value (in SEK).

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

Maximum number of auction lots to return.

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

Optional proxy. Use Apify Automatic (free datacenter tier) if the site blocks direct requests.

## Actor input object example

```json
{
  "mode": "search",
  "query": "vintage watch",
  "category": "clocks-watches",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `lots` (type: `string`):

Dataset containing all scraped Auctionet auction lots.

# 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 = {
    "mode": "search",
    "query": "vintage watch",
    "category": "clocks-watches",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlergang/auctionet-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 = {
    "mode": "search",
    "query": "vintage watch",
    "category": "clocks-watches",
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlergang/auctionet-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 '{
  "mode": "search",
  "query": "vintage watch",
  "category": "clocks-watches",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawlergang/auctionet-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/OcGFIRigElYTktokG/builds/PNyEuD2J5PS9xIaYb/openapi.json
