# Back Market Listings Scraper (`piotrv1001/back-market-listings-scraper`) Actor

The Back Market Listings Scraper extracts electronics listings from Back Market, capturing product titles, current and original prices, condition grades, ratings, reviews, and images. Ideal for price monitoring, market research, and competitive analysis.

- **URL**: https://apify.com/piotrv1001/back-market-listings-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 product listings

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### 🔋 Back Market Listings Scraper

Easily extract **refurbished electronics listings from Back Market**. The **Back Market Listings Scraper** collects structured product data — prices, conditions, variants, sellers, ratings and specs — for **price monitoring, market research, and competitive analysis** of the refurbished tech market.

Just enter a **search keyword** (like `iphone` or `macbook pro`) or paste Back Market category/search URLs, pick a country, and get clean JSON you can download as **JSON, CSV, Excel, or HTML** — or pull straight from the [Apify API](https://docs.apify.com/api/v2). Schedule runs, set up monitoring, and integrate with your stack on the Apify platform.

### ✨ Features

-   🏷️ **Rich Product Data**: Titles, brand, model, category, refurbished price, original (new) price, condition grade, ratings, review counts, images and links.
-   🎚️ **Every Variant & Price** *(detail mode)*: Capture all condition, storage and color variants — each with its own price — in a single record.
-   🛒 **Seller & Offer Details** *(detail mode)*: Marketplace seller name, location, seller-since year, warranty, stock status, durability scores, units sold and full product description.
-   🔍 **Search or URL Based**: Start from a keyword or paste your own Back Market search and category URLs.
-   🌍 **Multi-Country**: Scrape the US, UK, France, Germany, Spain or Italy storefronts — with localized prices and currency.
-   ⚡ **Fast & Affordable**: Lightweight listing scans for high-volume price tracking, with an optional deep-detail mode when you need everything.

### 🛠️ How to use the Back Market Listings Scraper

1. **Enter a search keyword** (e.g. `iphone`) — or add one or more Back Market **search / category URLs**.
2. **Choose a country** for the storefront you want (US, UK, FR, DE, ES, IT).
3. *(Optional)* Toggle **Scrape full product details** to enrich each product with all variants, seller offer and specs.
4. **Set the max items** you want to collect.
5. **Run the Actor** and download your structured data, or grab it from the API.

### 📥 Input

| Field | Description |
| --- | --- |
| **Search query** | Keyword to search on Back Market (e.g. `iphone`, `macbook pro`). Ignored when Start URLs are set. |
| **Start URLs** | Back Market search or category pages to scrape (use instead of a keyword). |
| **Country / region** | Storefront to scrape: US, UK, France, Germany, Spain or Italy. |
| **Scrape full product details** | When on, enriches each product with all variants, prices, seller offer and specs. |
| **Max items** | Maximum number of products to collect (0 = no limit). |
| **Proxy configuration** | Optional proxy settings for large-scale runs. |

#### Example input

```json
{
    "search": "iphone",
    "country": "us",
    "scrapeDetails": true,
    "maxItems": 50
}
````

### 📊 Sample Output Data

Each product is saved as a structured JSON record. You can download the dataset in **JSON, CSV, Excel, or HTML**.

**Listing mode** (fast, lightweight):

```json
{
    "productId": "1cc63d15-bcc7-4068-b203-2ddcf6c74167",
    "title": "iPhone 16 • Unlocked",
    "brand": "apple",
    "model": "iphone 16",
    "category": "Smartphones",
    "price": 558,
    "priceNew": 729,
    "currency": "USD",
    "rating": 4.4,
    "reviewCount": 449,
    "image": "https://d2e6ccujb3mkqf.cloudfront.net/1cc63d15-...-1.jpg",
    "url": "https://www.backmarket.com/en-us/p/iphone-16"
}
```

**Detail mode** (full data, abbreviated):

```json
{
    "productId": "1cc63d15-bcc7-4068-b203-2ddcf6c74167",
    "title": "iPhone 16 • Unlocked",
    "brand": "Apple",
    "model": "iPhone 16",
    "condition": "Fair",
    "price": 558,
    "currency": "USD",
    "priceWhenNew": 729,
    "warranty": "1-year warranty",
    "inStock": true,
    "seller": {
        "name": "Verizon",
        "country": "United States",
        "city": "Fort Worth",
        "state": "TX",
        "sellerSince": "2021"
    },
    "rating": 4.4,
    "reviewCount": 449,
    "unitsSold": 1300,
    "variants": [
        { "group": "Condition", "label": "Good", "price": 587, "currency": "USD" },
        { "group": "Storage (GB)", "label": "256 GB", "price": 616, "currency": "USD" },
        { "group": "Color", "label": "Teal", "price": 561, "currency": "USD" }
    ],
    "images": ["https://d2e6ccujb3mkqf.cloudfront.net/1cc63d15-...-1.jpg"],
    "url": "https://www.backmarket.com/en-us/p/iphone-16"
}
```

### 🧾 Output data fields

| Field | Description |
| --- | --- |
| `productId` | Unique Back Market product ID |
| `title` / `fullTitle` / `subtitle` | Product name and descriptive variants |
| `brand` / `model` / `category` | Manufacturer, model and category |
| `condition` | Refurbished grade (Fair, Good, Excellent, Premium) *(detail)* |
| `price` / `currency` | Current refurbished price |
| `priceNew` / `priceWhenNew` | Price of the equivalent new device |
| `rating` / `reviewCount` | Average rating and number of reviews |
| `warranty` / `inStock` | Warranty length and availability *(detail)* |
| `seller` | Marketplace seller name, location and seller-since year *(detail)* |
| `variants` | Every condition / storage / color option with its price *(detail)* |
| `scores` / `unitsSold` | Durability & performance scores, units sold *(detail)* |
| `images` | Product image URLs |
| `description` | Full product description *(detail)* |
| `url` | Link to the product page |

### 💰 How much does it cost to scrape Back Market?

This Actor uses a **pay-per-result** model — you only pay for the data you get, with no monthly subscription:

| Event | Price (USD) | When |
| --- | --- | --- |
| **Product listing scraped** | $0.002 / product | Fast listing-level data |
| **Product detail scraped** | $0.008 / product | Full variants, seller & specs (detail mode) |

A typical run of **50 listings costs about $0.10**, and **50 full product details about $0.40**. New Apify accounts include **free monthly usage credits**, so you can start testing at no cost.

### 💡 Tips

- Keep **Scrape full product details** off for large-scale **price monitoring** — listing mode is faster and cheaper.
- Turn it **on** when you need every variant price, the seller, specs and the description.
- Use **Start URLs** to target a specific category landing page instead of a keyword search.
- Set a sensible **Max items** to control cost and runtime.
- **Schedule** the Actor to track price changes over time and feed dashboards via the API.

### ❓ FAQ

**Is scraping Back Market legal?**
This Actor collects only publicly available product information. As with any scraping, you are responsible for how you use the data and for complying with Back Market's Terms of Service and applicable laws. It does not collect personal data.

**Which countries are supported?**
United States, United Kingdom, France, Germany, Spain and Italy.

**Can I get all condition and price variants?**
Yes — enable **Scrape full product details** to capture every condition, storage and color variant with its own price.

**Do I need a proxy?**
No. Back Market can usually be scraped without a proxy; you can enable one for very large runs.

### 📨 Support

Found a bug or need a new field or country? Open an issue in the **Issues** tab — feedback and custom-solution requests are welcome.

# Actor input Schema

## `search` (type: `string`):

Keyword to search for on Back Market (e.g. "iphone", "macbook pro", "samsung galaxy"). Ignored when Start URLs are provided.

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

Back Market search or category pages to scrape. Use this instead of a search query to target specific categories or search results. Example: https://www.backmarket.com/en-us/search?q=macbook

## `country` (type: `string`):

Back Market storefront to scrape. Prices, availability and language depend on the selected country.

## `scrapeDetails` (type: `boolean`):

When enabled, each product is enriched with full details: every condition/storage/color variant and its price, the selected seller offer, specifications, scores, all images and the full description. When disabled, only fast listing-level data (title, price, rating, link) is collected.

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

Maximum number of products to scrape. Use 0 for no limit.

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

Proxy settings. Back Market can usually be scraped without a proxy; enable one only for very large runs.

## Actor input object example

```json
{
  "search": "iphone",
  "country": "us",
  "scrapeDetails": false,
  "maxItems": 50,
  "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 = {
    "search": "iphone"
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/back-market-listings-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 = { "search": "iphone" }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/back-market-listings-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 '{
  "search": "iphone"
}' |
apify call piotrv1001/back-market-listings-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Back Market Listings Scraper",
        "description": "The Back Market Listings Scraper extracts electronics listings from Back Market, capturing product titles, current and original prices, condition grades, ratings, reviews, and images. Ideal for price monitoring, market research, and competitive analysis.",
        "version": "0.0",
        "x-build-id": "cRcko2qZiRgISdGuE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/piotrv1001~back-market-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-piotrv1001-back-market-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/piotrv1001~back-market-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-piotrv1001-back-market-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/piotrv1001~back-market-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-piotrv1001-back-market-listings-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "search": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword to search for on Back Market (e.g. \"iphone\", \"macbook pro\", \"samsung galaxy\"). Ignored when Start URLs are provided."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Back Market search or category pages to scrape. Use this instead of a search query to target specific categories or search results. Example: https://www.backmarket.com/en-us/search?q=macbook",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "country": {
                        "title": "Country / region",
                        "enum": [
                            "us",
                            "gb",
                            "fr",
                            "de",
                            "es",
                            "it"
                        ],
                        "type": "string",
                        "description": "Back Market storefront to scrape. Prices, availability and language depend on the selected country.",
                        "default": "us"
                    },
                    "scrapeDetails": {
                        "title": "Scrape full product details",
                        "type": "boolean",
                        "description": "When enabled, each product is enriched with full details: every condition/storage/color variant and its price, the selected seller offer, specifications, scores, all images and the full description. When disabled, only fast listing-level data (title, price, rating, link) is collected.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to scrape. Use 0 for no limit.",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Back Market can usually be scraped without a proxy; enable one only for very large runs.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
