# 2dehands.be Scraper (`lexis-solutions/2dehands-be-scraper`) Actor

Scrape listings from 2dehands.be - including titles, prices, seller info, locations, and images. Ideal for market analysis, price tracking, and classifieds aggregation. Fast, structured, and customizable extraction from Belgium’s leading secondhand marketplace.

- **URL**: https://apify.com/lexis-solutions/2dehands-be-scraper.md
- **Developed by:** [Lexis Solutions](https://apify.com/lexis-solutions) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 29 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$29.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

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

![2dehands.be Scraper](https://i.ibb.co/k27s42VP/Captura-desde-2025-07-30-21-35-35.png)

### What does 2dehands.be Scraper do?

2dehands.be Scraper helps you search and extract structured listing data from **2dehands.be**, Belgium's leading classifieds marketplace for second-hand goods, vehicles, real estate, jobs, and services.

You can extract listing details such as titles, prices (with both formatted and raw cents), descriptions, image galleries, seller profiles, breadcrumb categories, and geo-coordinates. 2dehands.be Scraper supports a REST API which gives you access to the extracted dataset, enables you to download it in various formats, and use it in other applications.

It supports keyword searches (`/q/...`), category browsing (`/l/...`), and individual listing pages (`/v/...`). The scraper paginates through results automatically and stops at the configured `maxItems` per start URL.

### What data can I extract from 2dehands.be with a web scraper?

With this web scraping tool, you can extract the following data from 2dehands.be:

<table>
<tr>
<td>💼 Listing title</td>
<td>💰 Price (formatted + cents)</td>
</tr>
<tr>
<td>🆔 Listing ID</td>
<td>💱 Currency</td>
</tr>
<tr>
<td>📝 Full description</td>
<td>📊 Breadcrumb categories</td>
</tr>
<tr>
<td>🖼️ Image gallery</td>
<td>🖼️ Primary image</td>
</tr>
<tr>
<td>👤 Seller name & ID</td>
<td>🏷️ Seller account type</td>
</tr>
<tr>
<td>🔗 Seller profile URL</td>
<td>🌐 Listing URL</td>
</tr>
<tr>
<td>📍 City & country</td>
<td>🗺️ Latitude & longitude</td>
</tr>
</table>

### Why scrape 2dehands.be?

2dehands.be is Belgium's most-used classifieds platform, hosting millions of listings across electronics, vehicles, real estate, fashion, hobbies, and more. Listings expose pricing, seller, and location data that powers a wide range of analytics and market-research products.

- Track pricing trends and depreciation curves on second-hand goods
- Monitor inventory and seller activity in specific categories
- Research competitor pricing for resale/refurbished marketplaces
- Build datasets of regional supply, demand, and average sale prices
- Power dashboards for car/electronics dealers and recommerce companies
- Identify high-volume sellers and Admarkt (paid) listings
- Support insurance, valuation, and trade-in pricing models

### How to use 2dehands.be Scraper?

2dehands.be Scraper is designed for an easy and fast start even if you've never extracted data from websites before. Here's how you can extract data from 2dehands.be with this web scraping tool:

1. Create a free Apify account using your email.
2. Open 2dehands.be Scraper on the Apify platform.
3. Click on the **Try for free** button.
4. Enter the start URLs for keyword searches, category pages, or individual listings.
5. Click on the **Start** button and wait for the data to be extracted.
6. Download your data in JSON, XML, CSV, Excel, or HTML.

### Input

The actor accepts the following input parameters:

- `startUrls` (array of objects) — **Required**. URLs to start with. You can mix keyword search, category, and listing detail URLs.
- `maxItems` (integer) — Maximum number of listings to scrape **per start URL**. Default: `5`.
- `proxyConfiguration` (object) — Proxy configuration. Default is no proxy because the scraper uses a public REST API; enable an Apify Proxy if you run very large jobs.

#### Supported URL Types

**Keyword search:**

- `https://www.2dehands.be/q/samsung`
- `https://www.2dehands.be/q/iphone%2015`

**Category browsing:**

- `https://www.2dehands.be/l/auto-s/volkswagen/`
- `https://www.2dehands.be/l/computers-en-software/monitoren/`

**Individual listing pages:**

- `https://www.2dehands.be/v/telecommunicatie/mobiele-telefoons-samsung/m2391833601-smartphone-samsung-s24`

Example input:

```json
{
    "startUrls": [
        { "url": "https://www.2dehands.be/q/samsung" },
        { "url": "https://www.2dehands.be/l/auto-s/volkswagen/" }
    ],
    "maxItems": 5,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
}
```

#### Note: The startUrls field is required

### Output

The scraped data will be saved as a dataset. Each item represents a single listing. You can choose in what format to download your data: JSON, JSONL, HTML table, CSV, Excel spreadsheet, or NDJSON.

Example output structure:

```json
{
    "url": "https://www.2dehands.be/v/telecommunicatie/mobiele-telefoons-samsung/m2391833601-smartphone-samsung-s24",
    "searchUrl": "https://www.2dehands.be/q/samsung",
    "itemId": "2391833601",
    "title": "smartphone samsung S24",
    "price": "€ 340",
    "priceCents": 34000,
    "priceCurrency": "EUR",
    "description": "Samsung s24 in perfecte staat met kabel en bookcase...",
    "primaryImage": "https://images.2dehands.com/api/v1/hz-twh-pro-listing/images/ce41cb62-4a0c-4d2a-b67b-9e00dd872a58?rule=ecg_mp_eps$_86.jpg",
    "images": [
        "https://images.2dehands.com/api/v1/hz-twh-pro-listing/images/ce41cb62-4a0c-4d2a-b67b-9e00dd872a58?rule=ecg_mp_eps$_86.jpg",
        "https://images.2dehands.com/api/v1/hz-twh-pro-listing/images/104a943a-507d-4814-8f4d-10f05ae5139f?rule=ecg_mp_eps$_86.jpg"
    ],
    "categories": ["Telecommunicatie", "Mobiele telefoons | Samsung"],
    "sellerInfo": {
        "id": 37748587,
        "name": "wally blust",
        "identity": "RegularPaid",
        "pageUrl": "https://www.2dehands.be/u/wally-blust/37748587/"
    },
    "location": {
        "city": "Brasschaat",
        "country": "België",
        "countryCode": "BE",
        "latitude": 51.309508665842,
        "longitude": 4.5004240174312
    }
}
```

#### Notes and Limitations

- The actor relies on the structure of the 2dehands.be website. If the website structure changes, the actor may need to be updated.
- Please comply with the 2dehands.be terms of service when using this actor.
- The default configuration runs **without a proxy**. Enable Apify Proxy in the input if you encounter IP rate-limits on very large jobs.
- `maxItems` is enforced **per start URL**, not globally — running 5 start URLs with `maxItems: 10` yields up to 50 records.
- When using a proxy, requests can originate from different locations, so the number of results may differ compared to non-proxy runs.

#### 🔍 Looking to Scrape more Marketplaces?

In addition to this actor, you can explore our suite of dedicated scrapers tailored for other popular online marketplaces. Each scraper is optimized for its target site to ensure accurate, efficient, and high-performance data extraction.

| Scraper                                                              | Country     | Description                                                                                                                                          |
| -------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Otto.de Scraper](https://apify.com/lexis-solutions/otto-de-scraper) | Germany     | Extract product listings, pricing, and seller information from Otto.de — Germany's largest online retailer for new and refurbished consumer goods.   |
| [Alibaba Scraper](https://apify.com/lexis-solutions/alibaba-scraper) | Global / CN | Pull supplier products, MOQ, pricing tiers, and company profiles from Alibaba — perfect for B2B sourcing intelligence and competitor benchmarking.   |

Explore these solutions to expand your data collection capabilities across marketplace and classifieds websites.

***

👀 p.s.

Got feedback or need an extension?

Lexis Solutions is a [certified Apify Partner](https://apify.com/partners). We can help you with custom solutions or data extraction projects.

Contact us over [Email](mailto:scraping@lexis.solutions) or [LinkedIn](https://www.linkedin.com/company/lexis-solutions)

### Support Our Work 💝

If you're happy with our work and scrapers, you're welcome to leave us a company review [here](https://apify.com/partners/find/lexis-solutions/review) and a review for any scrapers you're subscribed to. It takes less than a minute but means a lot to us!

### Image Credit

Image credit: [2dehands.be](https://www.2dehands.be/)

# Actor input Schema

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

URLs to start with. Supports search pages (e.g. https://www.2dehands.be/q/samsung), category pages (e.g. https://www.2dehands.be/l/auto-s/volkswagen/), and individual listing detail pages (e.g. https://www.2dehands.be/v/...).

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

Maximum number of listings that will be scraped per start URL.

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

Select proxies to be used by your crawler. The default is no proxy because the scraper uses a public REST API that does not require IP rotation. Enable a proxy if you run very large jobs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.2dehands.be/q/samsung"
    }
  ],
  "maxItems": 5,
  "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 = {
    "startUrls": [
        {
            "url": "https://www.2dehands.be/q/samsung"
        }
    ],
    "maxItems": 5,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexis-solutions/2dehands-be-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": [{ "url": "https://www.2dehands.be/q/samsung" }],
    "maxItems": 5,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("lexis-solutions/2dehands-be-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 '{
  "startUrls": [
    {
      "url": "https://www.2dehands.be/q/samsung"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call lexis-solutions/2dehands-be-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lexis-solutions/2dehands-be-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/L3hdWgX7SgJ35plXU/builds/Ui6N2Cg47jRODNMFH/openapi.json
