# Surplex Scraper — Europe Industrial Auctions​‌​ (`rastriq/surplex-auction-scraper`) Actor

Convert surplex.com auction activity into commercial intelligence: live bids, lot metadata and full attributes across industrial assets. Surface motivated sellers, benchmark realised prices and trigger sales outreach aligned to active auction windows.

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

## Pricing

from $1.90 / 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

### What data can you scrape from Surplex?

Surplex is Europe's leading online auction platform for industrial machinery and equipment, running 400+ auctions per year across 25+ countries. This Actor extracts structured data from all active auction lots.

#### Output fields

Each lot includes:

- **Lot details**: title, category, brand, model, year of manufacture, condition, serial number
- **Auction data**: auction ID, bidding status, bid count, closing date
- **Pricing**: current price, starting price, currency
- **Location**: country, city, delivery terms
- **Seller info**: company name, contact email
- **Media**: image URLs (up to 20 per lot)
- **Metadata**: platform ID, slug, publication date

#### Key features

- **Two access modes**: Public catalog (no login, ~22 fields) or Authenticated (post-auction data + private documents)
- **Two detail levels**: Summary only (fast, ~12 fields from listing pages) or Full detail (~22 fields with per-lot data)
- **Full category coverage**: 8 root categories including Construction, Metalworking, Woodworking, Logistics, Food & Pharma, Plastics, Tools, and Retail & Office
- **Proxy support**: Residential proxies recommended for reliable access

#### Use cases

- **Equipment valuation**: Track realized auction prices to benchmark machinery values
- **Procurement intelligence**: Monitor auctions for specific machinery types across Europe
- **Market analysis**: Analyze supply volume, pricing trends, and geographic distribution of industrial equipment
- **Sales outreach**: Identify motivated sellers during active auction windows

#### Input configuration

| Parameter | Description | Default |
|-----------|-------------|---------|
| Access Mode | Public catalog or Authenticated | Public catalog |
| Detail Level | Summary only or Full detail | Full detail |
| Max Items | Limit total items (0 = unlimited) | 0 |
| Filter Category | Filter by category name | All |
| Filter Country | Filter by country code | All |
| Start URLs | Override with specific auction/lot URLs | Auto-discover |

#### Tips

- Start with **Public catalog + Full detail** mode — it covers most use cases without authentication
- Use **residential proxies** for best reliability
- The actor auto-discovers all active auctions via Surplex's category tree
- Run on schedule to track new lots as auctions open

#### Cost estimate

Average run scrapes ~2,000–5,000 lots in 15–30 minutes using 512 MB RAM (~$0.10–$0.25 on Apify platform).

### Related Scrapers by Rastriq

- [Cyclica Scraper](https://apify.com/rastriq/cyclica-scraper)
- [Dozr Scraper](https://apify.com/rastriq/dozr-scraper)
- [Euroauctions Scraper](https://apify.com/rastriq/euroauctions-scraper)
- [Ironplanet Eu Scraper](https://apify.com/rastriq/ironplanet-eu-scraper)
- [Machineryzone Scraper](https://apify.com/rastriq/machineryzone-scraper)
- [Machineseeker Scraper](https://apify.com/rastriq/machineseeker-scraper)
- [Mascus Scraper](https://apify.com/rastriq/mascus-scraper)
- [Rbauction Scraper](https://apify.com/rastriq/rbauction-scraper)
- [Ritchiespecs Scraper](https://apify.com/rastriq/ritchiespecs-scraper)
- [Rockanddirt Scraper](https://apify.com/rastriq/rockanddirt-scraper)
- [Supralift Scraper](https://apify.com/rastriq/supralift-scraper)
- [Truck1 Scraper](https://apify.com/rastriq/truck1-scraper)

# Actor input Schema

## `data_freshness` (type: `string`):

<b>Preloaded (Open)</b>: instant access to our monthly snapshot of <b>open live auctions</b> — results in seconds, lower cost.<br><b>Preloaded (Bid History)</b>: instant access to our monthly snapshot of <b>closed auctions with full bid history</b> — ideal for market analysis and price benchmarking.<br><b>Live</b>: real-time scrape of surplex.com — always fresh, supports Open / Closed / Upcoming.

## `biddingStatus` (type: `string`):

Which auctions to scrape.<br><b>Open</b>: live auctions with active bidding (for price tracking).<br><b>Closed</b>: finished auctions with final prices (for market analysis).<br><b>Upcoming</b>: future auctions not yet open (for scouting).<br><br>ℹ️ Preloaded snapshot is only available for <b>Open</b>. Closed and Upcoming always run live.

## `runMode` (type: `string`):

Sample: fast test run, ~40s, 100 Construction & Earthmoving lots. Full: complete marketplace, all categories, respects maxItems if set (0 = unlimited). Custom: ignores presets, use all input fields directly.<br><br>ℹ️ Run mode only applies to <b>Live</b> mode. Preloaded ignores this field.

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

Max lots to return (0 = unlimited). In preloaded mode, applies after filters. In live mode, overridden by runMode if set.

## `cat_metalworking` (type: `boolean`):

CNC machines, lathes, milling, grinding, presses, lasers

## `cat_woodworking` (type: `boolean`):

Saws, planers, CNC routers, panel saws, edge banders

## `cat_construction` (type: `boolean`):

Excavators, wheel loaders, cranes, concrete mixers, dozers

## `cat_transport` (type: `boolean`):

Forklifts, trucks, trailers, pallet trucks, reach stackers

## `cat_agricultural` (type: `boolean`):

Tractors, harvesters, mowers, seeders, sprayers

## `cat_tools` (type: `boolean`):

Hand tools, power tools, workshop equipment

## `cat_more_industrial` (type: `boolean`):

Food processing, packaging, printing, plastics, recycling

## `cat_retail_office` (type: `boolean`):

Shop fittings, shelving, office furniture, electronics

## `brand_caterpillar` (type: `boolean`):

Construction & mining equipment

## `brand_komatsu` (type: `boolean`):

Construction & mining equipment

## `brand_liebherr` (type: `boolean`):

Cranes, excavators, concrete tech

## `brand_volvo` (type: `boolean`):

Construction equipment & trucks

## `brand_jcb` (type: `boolean`):

Backhoe loaders, excavators, telehandlers

## `brand_hitachi` (type: `boolean`):

Excavators, wheel loaders

## `brand_john_deere` (type: `boolean`):

Agricultural & construction equipment

## `brand_kubota` (type: `boolean`):

Compact excavators, tractors, utility vehicles

## `brand_linde` (type: `boolean`):

Forklifts & warehouse equipment

## `brand_still` (type: `boolean`):

Forklifts & warehouse equipment

## `brand_jungheinrich` (type: `boolean`):

Forklifts & warehouse equipment

## `brand_toyota` (type: `boolean`):

Forklifts & industrial equipment

## `brand_mazak` (type: `boolean`):

CNC lathes & machining centers

## `brand_jlg` (type: `boolean`):

Aerial work platforms, boom lifts

## `brand_genie` (type: `boolean`):

Aerial work platforms, scissor lifts

## `extraBrands` (type: `array`):

Type additional brand names (case-insensitive). The Actor matches them against Surplex's brand catalog automatically.<br><br><b>Popular brands by sector:</b><br><b>Metalworking:</b> DMG MORI, TRUMPF, Okuma, Haas, Amada, Bystronic, Reishauer, ABB, KUKA<br><b>Construction:</b> Bobcat, Bomag, Mecalac, Atlas, Case, Takeuchi, Doosan, Terex, Wacker Neuson<br><b>Transport:</b> Mercedes-Benz, MAN, Iveco, Renault, Ford, Volkswagen, Hyster<br><b>Agricultural:</b> Claas, Fendt, New Holland, Massey Ferguson, Husqvarna<br><b>Tools:</b> Bosch, Hilti, Makita, DeWalt<br><b>Aerial platforms:</b> Haulotte, Skyjack, Manitou

## `country_de` (type: `boolean`):

Largest Surplex market

## `country_nl` (type: `boolean`):

Second largest market

## `country_it` (type: `boolean`):

Southern European hub

## `country_be` (type: `boolean`):

Central European hub

## `country_fr` (type: `boolean`):

French market

## `country_ro` (type: `boolean`):

Eastern European market

## `country_pl` (type: `boolean`):

Eastern European market

## `country_cz` (type: `boolean`):

Central European market

## `country_at` (type: `boolean`):

Austrian market

## `country_hr` (type: `boolean`):

Croatian market

## `country_es` (type: `boolean`):

Spanish market

## `country_pt` (type: `boolean`):

Portuguese market

## `country_ch` (type: `boolean`):

Swiss market

## `includeBidHistory` (type: `boolean`):

Download the full bidding history per lot (buyer number, amount, timestamp). Useful for closed auctions analysis. Makes the run slower. Only applies in Live mode.

## `datasetName` (type: `string`):

Optional named dataset for accumulating data across runs (e.g. for time-series tracking of open auctions). Only applies in Live mode.

## `outputSchema` (type: `string`):

Select 'ftp28' to output canonical Spanish field names required for FTP-28 pipeline integration. In admin snapshot mode, FTP-28 is always used regardless of this setting.

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

Residential proxy recommended for large runs (1000+ lots).

## `_admin_snapshot` (type: `boolean`):

Internal flag. When true (and IS\_AUTHOR\_RUN=1 env var is set), scrapes BIDDING\_OPEN lots and writes them to the author's Named Dataset. Output tab will be empty — data goes to Storage > Datasets > surplex-scraper-YYYY-MM. Pointer KV is updated on completion.

## `_admin_snapshot_bid_history` (type: `boolean`):

Internal flag. When true (and IS\_AUTHOR\_RUN=1 env var is set), scrapes BIDDING\_CLOSED lots WITH bid history and writes them to the author's Named Dataset. Output tab will be empty — data goes to Storage > Datasets > surplex-bid-history-YYYY-MM. Pointer KV is updated on completion.

## Actor input object example

```json
{
  "data_freshness": "live",
  "biddingStatus": "BIDDING_OPEN",
  "runMode": "sample",
  "maxItems": 10,
  "cat_metalworking": false,
  "cat_woodworking": false,
  "cat_construction": false,
  "cat_transport": false,
  "cat_agricultural": false,
  "cat_tools": false,
  "cat_more_industrial": false,
  "cat_retail_office": false,
  "brand_caterpillar": false,
  "brand_komatsu": false,
  "brand_liebherr": false,
  "brand_volvo": false,
  "brand_jcb": false,
  "brand_hitachi": false,
  "brand_john_deere": false,
  "brand_kubota": false,
  "brand_linde": false,
  "brand_still": false,
  "brand_jungheinrich": false,
  "brand_toyota": false,
  "brand_mazak": false,
  "brand_jlg": false,
  "brand_genie": false,
  "extraBrands": [],
  "country_de": false,
  "country_nl": false,
  "country_it": false,
  "country_be": false,
  "country_fr": false,
  "country_ro": false,
  "country_pl": false,
  "country_cz": false,
  "country_at": false,
  "country_hr": false,
  "country_es": false,
  "country_pt": false,
  "country_ch": false,
  "includeBidHistory": true,
  "datasetName": "surplex-data",
  "outputSchema": "ftp28",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "_admin_snapshot": false,
  "_admin_snapshot_bid_history": 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 = {
    "data_freshness": "live",
    "runMode": "sample",
    "maxItems": 10,
    "cat_metalworking": false,
    "cat_woodworking": false,
    "cat_construction": false,
    "cat_transport": false,
    "cat_agricultural": false,
    "cat_tools": false,
    "cat_more_industrial": false,
    "cat_retail_office": false,
    "brand_caterpillar": false,
    "brand_komatsu": false,
    "brand_liebherr": false,
    "brand_volvo": false,
    "brand_jcb": false,
    "brand_hitachi": false,
    "brand_john_deere": false,
    "brand_kubota": false,
    "brand_linde": false,
    "brand_still": false,
    "brand_jungheinrich": false,
    "brand_toyota": false,
    "brand_mazak": false,
    "brand_jlg": false,
    "brand_genie": false,
    "country_de": false,
    "country_nl": false,
    "country_it": false,
    "country_be": false,
    "country_fr": false,
    "country_ro": false,
    "country_pl": false,
    "country_cz": false,
    "country_at": false,
    "country_hr": false,
    "country_es": false,
    "country_pt": false,
    "country_ch": false,
    "datasetName": "surplex-data",
    "outputSchema": "ftp28",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/surplex-auction-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 = {
    "data_freshness": "live",
    "runMode": "sample",
    "maxItems": 10,
    "cat_metalworking": False,
    "cat_woodworking": False,
    "cat_construction": False,
    "cat_transport": False,
    "cat_agricultural": False,
    "cat_tools": False,
    "cat_more_industrial": False,
    "cat_retail_office": False,
    "brand_caterpillar": False,
    "brand_komatsu": False,
    "brand_liebherr": False,
    "brand_volvo": False,
    "brand_jcb": False,
    "brand_hitachi": False,
    "brand_john_deere": False,
    "brand_kubota": False,
    "brand_linde": False,
    "brand_still": False,
    "brand_jungheinrich": False,
    "brand_toyota": False,
    "brand_mazak": False,
    "brand_jlg": False,
    "brand_genie": False,
    "country_de": False,
    "country_nl": False,
    "country_it": False,
    "country_be": False,
    "country_fr": False,
    "country_ro": False,
    "country_pl": False,
    "country_cz": False,
    "country_at": False,
    "country_hr": False,
    "country_es": False,
    "country_pt": False,
    "country_ch": False,
    "datasetName": "surplex-data",
    "outputSchema": "ftp28",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/surplex-auction-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 '{
  "data_freshness": "live",
  "runMode": "sample",
  "maxItems": 10,
  "cat_metalworking": false,
  "cat_woodworking": false,
  "cat_construction": false,
  "cat_transport": false,
  "cat_agricultural": false,
  "cat_tools": false,
  "cat_more_industrial": false,
  "cat_retail_office": false,
  "brand_caterpillar": false,
  "brand_komatsu": false,
  "brand_liebherr": false,
  "brand_volvo": false,
  "brand_jcb": false,
  "brand_hitachi": false,
  "brand_john_deere": false,
  "brand_kubota": false,
  "brand_linde": false,
  "brand_still": false,
  "brand_jungheinrich": false,
  "brand_toyota": false,
  "brand_mazak": false,
  "brand_jlg": false,
  "brand_genie": false,
  "country_de": false,
  "country_nl": false,
  "country_it": false,
  "country_be": false,
  "country_fr": false,
  "country_ro": false,
  "country_pl": false,
  "country_cz": false,
  "country_at": false,
  "country_hr": false,
  "country_es": false,
  "country_pt": false,
  "country_ch": false,
  "datasetName": "surplex-data",
  "outputSchema": "ftp28",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call rastriq/surplex-auction-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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