# Picclick Product Search Scraper (`stealth_mode/picclick-product-search-scraper`) Actor

Scrape product listings from PicClick.com and its international domains (.fr, .de, etc.). Collect 24+ fields per item including pricing, seller info, condition, images, and shipping details — perfect for price monitoring, market research, and inventory aggregation.

- **URL**: https://apify.com/stealth\_mode/picclick-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Developer tools, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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.
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

## PicClick Marketplace Search Scraper: Extract Auction & Listing Data Globally

***

### What Is PicClick?

PicClick is a global online marketplace aggregator and search platform that indexes millions of listings from eBay and other auction/fixed-price sites across multiple countries and domains (picclick.fr, picclick.de, picclick.com, etc.). It enables buyers to search, compare, and purchase items across regions in a unified interface. For data professionals, researchers, and resellers, manually extracting item details from search results is tedious and error-prone — the **PicClick Marketplace Search Scraper** automates bulk data collection from search result pages.

***

### Overview

The **PicClick Search Scraper** extracts product listings from PicClick search results pages, converting auction and fixed-price item data into structured, machine-readable records. It is ideal for:

- **Price analysts** monitoring competitive pricing across regions and categories
- **Resellers** sourcing inventory trends and pricing strategies
- **Market researchers** studying auction dynamics and product availability
- **Data aggregators** building multi-source product feeds
- **E-commerce platforms** enriching catalog data with marketplace comparisons

Strengths include multi-domain support (all PicClick country sites), flexible item-per-URL limits, and robust error handling to ensure collection continuity even when certain pages fail.

***

### Input Format

The scraper accepts a JSON configuration specifying search parameters and collection preferences:

```json
{
  "urls": [
    "https://picclick.fr/Image-son/?q=lips"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
```

#### Input Parameters Explained

| Parameter | Type | Purpose | Example |
|---|---|---|---|
| `urls` | Array | PicClick search result page URLs to scrape | `["https://picclick.fr/Image-son/?q=lips", "https://picclick.de/..."]` |
| `ignore_url_failures` | Boolean | Continue scraping if individual URLs fail | `true` (recommended for bulk operations) |
| `max_items_per_url` | Integer | Maximum items collected per search page | `200` (typical: 20–500) |

#### URL Format & Scope

Valid URLs must be **PicClick search result pages**, not direct item listings. Examples across domains:

- `https://picclick.fr/Image-son/?q=lips` (French, audio/image category)
- `https://picclick.de/Elektronik/?q=smartphone` (German, electronics)
- `https://picclick.com/Antiques/?q=vintage` (US/English, antiques)
- `https://picclick.it/Moda/?q=shoes` (Italian, fashion)

The scraper extracts all items displayed on the page up to the `max_items_per_url` limit. Pagination is not automatic — include multiple page URLs if needed (e.g., page 1, page 2).

> **Note:** URLs should end in `?q=searchterm` or category paths without trailing `/`. Regional domains (.fr, .de, .it, .es, etc.) are fully supported.

***

### Output Format

**Sample output**

```json
{
  "item_id": "v1|336070702142|0",
  "title": "Ray-Ban Meta Wayfarer reconditionnées (Gen 1), Noir Mat / Transitions®, Gen S G1",
  "leaf_category_ids": [
    "184645"
  ],
  "categories": [
    {
      "category_id": "184645",
      "category_name": "Casques VR autonomes"
    },
    {
      "category_id": "293",
      "category_name": "Image, son"
    },
    {
      "category_id": "183067",
      "category_name": "Réalité virtuelle"
    }
  ],
  "image": {
    "image_url": "https://i.ebayimg.com/images/g/z-AAAeSwDWVodn9A/s-l225.jpg"
  },
  "price": {
    "value": "245.00",
    "currency": "EUR"
  },
  "item_href": "https://api.ebay.com/buy/browse/v1/item/v1%7C336070702142%7C0",
  "seller": {
    "username": "meta_store_eu",
    "feedback_percentage": "96.4",
    "feedback_score": 927,
    "seller_account_type": "BUSINESS"
  },
  "condition": "Reconditionné par la marque",
  "condition_id": "2000",
  "thumbnail_images": [
    {
      "image_url": "https://i.ebayimg.com/images/g/z-AAAeSwDWVodn9A/s-l1600.jpg"
    }
  ],
  "shipping_options": [
    {
      "shipping_cost_type": "FIXED",
      "shipping_cost": {
        "value": "0.00",
        "currency": "EUR"
      }
    }
  ],
  "buying_options": [
    "FIXED_PRICE"
  ],
  "item_affiliate_web_url": "https://www.ebay.fr/itm/336070702142?hash=item4e3f5ff43e%3Ag%3Az-AAAeSwDWVodn9A&amdata=enc%3AAQALAAAA4ACCtXRWQnOEpyOqnQQ8KGZ92sX2VYHOjeIv1GopK1qGDLLCLqVuOmSwh6QgyL3x3LOXz%2BYdRUDJ781CbGuJnMnFhu2LmPTKDIPuDaBSN1%2FOhGAPs600h23tPHthDnWLJfog1XV37Ov9r5AyQHwXJ02fVg8vR%2FnudzoIpb%2FAph8Wh8e%2FdhooXxEnE4AyiCLTl86gmwXY5pY%2FHIyG%2F8tAxguxiPdi9NHO0ReHoYVGezw5312ylqOrUSD9RJBJUOH8B5jQyUCAj69fgu3xLytAG%2FSHsUVlBG9gvRBihrfE6SgL&mkevt=1&mkcid=1&mkrid=709-53476-19255-0&campid=5338722076&customid=&toolid=10049",
  "item_web_url": "https://www.ebay.fr/itm/336070702142?hash=item4e3f5ff43e:g:z-AAAeSwDWVodn9A&amdata=enc%3AAQALAAAA4ACCtXRWQnOEpyOqnQQ8KGZ92sX2VYHOjeIv1GopK1qGDLLCLqVuOmSwh6QgyL3x3LOXz%2BYdRUDJ781CbGuJnMnFhu2LmPTKDIPuDaBSN1%2FOhGAPs600h23tPHthDnWLJfog1XV37Ov9r5AyQHwXJ02fVg8vR%2FnudzoIpb%2FAph8Wh8e%2FdhooXxEnE4AyiCLTl86gmwXY5pY%2FHIyG%2F8tAxguxiPdi9NHO0ReHoYVGezw5312ylqOrUSD9RJBJUOH8B5jQyUCAj69fgu3xLytAG%2FSHsUVlBG9gvRBihrfE6SgL",
  "item_location": {
    "postal_code": "59****",
    "country": "NL"
  },
  "adult_only": false,
  "legacy_item_id": "336070702142",
  "available_coupons": false,
  "item_origin_date": "2025-07-17T01:24:53.000Z",
  "item_creation_date": "2025-07-17T01:24:53.000Z",
  "top_rated_buying_experience": false,
  "priority_listing": true,
  "watch_count": 1,
  "listing_marketplace_id": "EBAY_FR",
  "from_url": "https://picclick.fr/Image-son/"
}
```

Each item in the scrape results includes 24 comprehensive fields:

#### Item Identification

| Field | Meaning | Example |
|---|---|---|
| `Item ID` | Unique identifier within PicClick/marketplace | `"324891234567"` |
| `Legacy Item ID` | Previous or alternate item ID format | `"LG324891234567"` |
| `Listing Marketplace ID` | Source marketplace code (eBay, etc.) | `"ebay"` |
| `Title` | Product name and primary description | `"Vintage Sony Walkman - Condition: Fair"` |

#### Categorization

| Field | Meaning | Example |
|---|---|---|
| `Leaf Category IDs` | Most specific category identifiers | `["6000", "6001"]` |
| `Categories` | Full category path (human-readable) | `"Electronics > Portable Audio > Walkmen"` |

#### Pricing & Condition

| Field | Meaning | Example |
|---|---|---|
| `Price` | Current item price in listing currency | `"€25.99"` or `"$45.00"` |
| `Condition` | Item state (New, Used, Refurbished, For Parts) | `"Used"` |
| `Condition ID` | Numeric condition code | `"3000"` (typically 3000–5000 range) |

#### Visual & Media

| Field | Meaning | Example |
|---|---|---|
| `Image` | Primary/main product image URL | `"https://cdn.picclick.fr/img/324891.jpg"` |
| `Thumbnail Images` | Array of additional image URLs | `["img1.jpg", "img2.jpg", "img3.jpg"]` |

#### Seller & Transaction

| Field | Meaning | Example |
|---|---|---|
| `Seller` | Seller/merchant name and rating | `"TechDealer2023 (98.5%)"` |
| `Buying Options` | Available purchase methods | `"Buy It Now"` or `"Auction"` or `"Fixed Price"` |
| `Shipping Options` | Available shipping methods and costs | `"Standard Shipping: €5.99, Express: €12.99"` |
| `Top Rated Buying Experience` | Seller has top-rated feedback badge | `true` or `false` |

#### Item Details & Location

| Field | Meaning | Example |
|---|---|---|
| `Item Location` | Geographic location of the item | `"Paris, France"` or `"Berlin, Germany"` |
| `Item Href` | Direct link to the source listing | `"https://ebay.fr/itm/324891234567"` |
| `Item Web URL` | PicClick's URL for this item | `"https://picclick.fr/item/324891234567"` |
| `Item Affiliate Web URL` | PicClick affiliate-tracked URL | `"https://picclick.fr/aff/?item=324891234567"` |

#### Listing Attributes

| Field | Meaning | Example |
|---|---|---|
| `Adult Only` | Item is restricted to adult buyers | `true` or `false` |
| `Priority Listing` | Item has paid priority/featured placement | `true` or `false` |
| `Available Coupons` | Number of available discount codes | `2` |
| `Watch Count` | Number of users monitoring this item | `47` |

#### Timeline

| Field | Meaning | Example |
|---|---|---|
| `Item Origin Date` | When the item was originally created/minted (if applicable) | `"2015-03-20"` |
| `Item Creation Date` | When the listing was published | `"2024-01-15T14:32:00Z"` |

***

### How to Use

1. **Identify search URLs** — Go to PicClick (any domain) and search for products you want to analyze. Copy the full search result page URL.

2. **Prepare your input** — Create a JSON config with:
   - One or more search URLs in the `urls` array
   - Set `max_items_per_url` based on your data volume needs (20–500 recommended)
   - Enable `ignore_url_failures: true` for uninterrupted multi-URL runs

3. **Configure domain & region** — PicClick supports all regional domains (.fr, .de, .com, .it, .es, etc.). Mix URLs from different domains in the same run if needed.

4. **Start the scrape** — Execute the actor and monitor the progress log.

5. **Export & process** — Download results as JSON or CSV. Fields are consistently structured across all domains for easy downstream analysis.

#### Best Practices

- **Pagination:** If a search has 500+ items, create URLs for multiple pages (sort by newest or lowest price, then paste page 2, 3, etc.)
- **Category specificity:** Use narrower category searches (e.g., `/Electronics/Phones/`) for more relevant results
- **Error handling:** Set `ignore_url_failures: true` to skip broken or restricted pages without halting the run
- **Rate limiting:** Space out large runs to respect PicClick's server load; avoid hammering in rapid succession

***

### Use Cases & Business Value

- **Competitive pricing:** Track how competitor items and pricing evolve across regions
- **Trend analysis:** Identify hot product categories, seasonal demand, and supply shifts
- **Reseller optimization:** Monitor source costs to optimize arbitrage margins and inventory decisions
- **Market research:** Benchmark product availability, condition distribution, and seller ratings across PicClick domains
- **Multi-channel selling:** Aggregate competitor listings to inform own pricing and positioning strategies
- **Data enrichment:** Feed marketplace comparables into e-commerce platforms for buyer context

The **PicClick Search Scraper** transforms hours of manual search-and-collect work into minutes of automated data extraction, delivering clean, standardized item records ready for analysis, reporting, and integration.

***

### Conclusion

Whether you're a price analyst, reseller, or researcher, the **PicClick Marketplace Search Scraper** unlocks structured auction and fixed-price item data across global PicClick domains. With 24 detailed fields per item and robust multi-domain support, you gain the insights needed to stay competitive and informed in fast-moving online marketplaces.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://picclick.fr/Image-son/?q=lips"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://picclick.fr/Image-son/?q=lips"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/picclick-product-search-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 = {
    "urls": ["https://picclick.fr/Image-son/?q=lips"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/picclick-product-search-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 '{
  "urls": [
    "https://picclick.fr/Image-son/?q=lips"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/picclick-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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