# \[Aug25] Backmarket Scraper - fast & flexible (`scrapegoats/backmarket-scraper`) Actor

Scrape product listings from Backmarket based on search terms or URLs, extracting details like title, price, condition and technical specifications.

- **URL**: https://apify.com/scrapegoats/backmarket-scraper.md
- **Developed by:** [ScrapeGoats](https://apify.com/scrapegoats) (community)
- **Categories:** E-commerce, News, Automation
- **Stats:** 27 total users, 0 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/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

## 🚀 Backmarket Scraper

Scrape structured data from Backmarket product listings, either via direct product search or by inputting specific product URLs. Perfect for extracting pricing, model, and condition data across multiple countries.

***

### 🧠 What It Does

This scraper lets you extract product listings from [Backmarket](https://www.backmarket.com) using one of two modes:

- A **list of search keywords** for a specific country (e.g., "iPhone 14" on the Irish Backmarket).
- A **list of product/search URLs** to scrape directly.

You can define how many results per search you'd like and use a proxy configuration for smoother and safer scraping.

***

### 🔧 Inputs

- **Function** (required):\
  Select the scraping mode:
  - `Extract from searchs list`
  - `Extract from URL list`

- **Searchs** *(optional)*:\
  Provide a list of keywords to search for on Backmarket.\
  Example: `["iPhone 14", "Macbook Pro"]`

- **Country** *(optional)*:\
  Choose the country site to scrape.\
  Example: `Ireland`, `France`, `United States`, etc.

- **URL List** *(optional)*:\
  Provide a list of full Backmarket URLs to scrape directly. You can include filters to the search.\
  ➡️ All the provided URLs need to be from the same country.\
  ➡️ The following countries are not supported for now: Japan, Sweden.\
  Example: `["https://www.backmarket.co.uk/en-gb/search?q=iphone+14#model=999%2520iPhone%252014%2520Plus", "https://www.backmarket.co.uk/en-gb/search?q=iphone+13"]`

- **Result limit per search** *(optional)*:\
  Set the maximum number of listings to retrieve for each search/URL.\
  Default is `100`.

- **Proxy configuration** *(optional)*:\
  Specify proxy usage to reduce blocking risks. Using the same country as Backmarket website is recommended for speed purposes.

***

### 🛠️ How to use

1. Select `Extract from searchs list`:
   - Choose a country (e.g., "Ireland").
   - Enter search terms like `["iPhone 14", "Macbook Pro"]`.
   - Define the max number of results per search (e.g., 50) if needed.

2. Or select `Extract from URL list`:
   - Paste a list of valid Backmarket URLs to scrape directly.
   - Define the max number of results per search (e.g., 50) if needed.

3. Proxy configuration *(Optional but **strongly recommended**)*
   - Enable proxy configuration to ensure reliable scraping.
   - Backmarket is protected by **Cloudflare**, and running the actor without proxies may result in blocked requests or the actor failing to run properly.

***

### 📤 Output Format

You’ll get structured product data like this (CSV or JSON):

```json
{
  "Search": "macbook pro 2020",
  "Product name": "MacBook Pro 13-inch (2020) - Apple M1 8-core and 8-core GPU - 8GB RAM - SSD 256GB - QWERTY - English",
  "Rating /5": 4.4,
  "Reviews": 467,
  "Selling Price": 444.0,
  "Price New": 1299.0,
  "Select the condition": {
    "Fair": 444.0,
    "Good": 500.0,
    "Excellent": 498.0
  },
  "Select a battery option": {
    "Standard battery": 444.0,
    "New battery": 575.0
  },
  "Select the processor": {
    "Apple M1 8-core - 8-core GPU": 444.0
  },
  "Select memory": {
    "8 GB": 444.0,
    "16 GB": 572.0
  },
  "Select storage": {
    "256 GB": 444.0,
    "512 GB": 456.0,
    "1000 GB": 637.0,
    "2000 GB": "Sold out"
  },
  "Select the colour": {
    "Space Gray": 444.0,
    "Silver": 465.0
  },
  "Technical specifications": {
    "Colour": "Space Gray",
    "Storage": "256 GB",
    "Memory": "8 GB",
    "Model": "MacBook Pro",
    "Graphics card": "8-core GPU",
    "OS": "macOS",
    "macbook_parent_title": "(13\", 2020, Apple M1)",
    "Company name": "Apple Inc.",
    "macbook_processor_series": "M1 series",
    "Retina": "Yes",
    "Storage type": "SSD",
    "Product ranking": "3",
    "Processor": "Apple M1 8-core",
    "Staff pick": "No",
    "IPS": "Yes",
    "Touch ID": "Yes",
    "Company email address": "support@apple.com",
    "Company postal address": "Hollyhill Industrial Estate, Hollyhill, Cork, Republic of Ireland",
    "Processor series": "M1 series",
    "HDMI output": "No",
    "Jack plug": "Yes",
    "Screen brightness": "400 nits brightness",
    "Card slot": "None",
    "Graphic card": "8-core GPU",
    "Maximum Operating System supported": "macOS Sequoia",
    "Screen type": "Retina display",
    "Speakers": "Stereo speakers with high dynamic range",
    "True Tone": "Yes",
    "Display Glass": "Standard display",
    "Bluetooth Version": "Bluetooth 5.0",
    "Release Date": "Late 2020",
    "Keyboard Language & Type": "QWERTY - English",
    "Compatible with latest Update": "Yes",
    "MacBook architecture": "64-bits",
    "Charger compatibility": "USB Type-C",
    "Front camera definition": "720p",
    "Neural engine": "16-core",
    "USB Type-C / Thunderbolt 4 ports": "2",
    "Manufacturer Ref": "A2338",
    "Pro-Motion": "No",
    "Resolution": "2560 x 1600",
    "Screen size (in)": "13",
    "SSD storage capacity (GB)": "256",
    "Touch Bar": "Yes",
    "Wi-Fi technology": "Wi-Fi 6 802.11ax",
    "Year of Release": "2020",
    "Brand": "Apple",
    "Weight": "1400 g",
    "Height": "1.56 cm",
    "Width": "30.41 cm",
    "Depth": "21.24 cm"
  }
}
```

***

### 🎯 Common Use Cases

- 🛒 Market price monitoring for refurbished tech.
- 📊 Data collection for resale/repricing analysis.
- 🌍 Competitive benchmarking across multiple countries.
- 💸 Runs fast, uses few resources
- 🔌 **Seamless integration** with **Apify** for scheduling, proxies, datasets and webhooks

***

### 🧑‍🤝‍🧑 The team

- 🐐 Developed and maintained by the **ScrapeGoats**.

- 💬 Feel free to contact us through Discord if you are interested in custom scrapers or if you have an idea you'd like us to develop and publish.

# Actor input Schema

## `function` (type: `string`):

function

## `searchs` (type: `array`):

Please enter the desired searchs.

## `url_list` (type: `array`):

Please enter the desired URLs.

## `country_input` (type: `string`):

Please select the country website to scrape.

## `limit_per_search` (type: `integer`):

Please enter the maximum number of results per search.

## `proxy_configuration` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "function": "country_and_keywords",
  "searchs": [
    "iphone 14",
    "macmini"
  ],
  "country_input": "United Kingdom",
  "limit_per_search": 10,
  "proxy_configuration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "function": "country_and_keywords",
    "searchs": [
        "iphone 14",
        "macmini"
    ],
    "country_input": "United Kingdom",
    "limit_per_search": 10,
    "proxy_configuration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapegoats/backmarket-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 = {
    "function": "country_and_keywords",
    "searchs": [
        "iphone 14",
        "macmini",
    ],
    "country_input": "United Kingdom",
    "limit_per_search": 10,
    "proxy_configuration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapegoats/backmarket-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 '{
  "function": "country_and_keywords",
  "searchs": [
    "iphone 14",
    "macmini"
  ],
  "country_input": "United Kingdom",
  "limit_per_search": 10,
  "proxy_configuration": {
    "useApifyProxy": true
  }
}' |
apify call scrapegoats/backmarket-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapegoats/backmarket-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/2MGUH23d6uSqme07A/builds/lws8SPwraX5rAljF4/openapi.json
