# Smart Product Scraper (`devnaz/smart-product-scraper`) Actor

Extract data from ANY e-commerce product in less than 2 seconds

- **URL**: https://apify.com/devnaz/smart-product-scraper.md
- **Developed by:** [DevnaZ](https://apify.com/devnaz) (community)
- **Categories:** E-commerce, Developer tools, AI
- **Stats:** 47 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

## 🛒 Smart Product Scraper - Universal E-commerce Product Scraper

**Extract data from ANY e-commerce product in less than 2 seconds!**

Smart Product Scraper is the universal solution to automatically extract product information from any e-commerce website. One tool for all your product scraping needs.

### 🎯 What This Actor Does

Smart Product Scraper automatically extracts all important information from e-commerce products:

- Product name
- Full description
- Price (with currency)
- Images
- Brand
- And much more...

**The magic?** No configuration required. You provide the product URL, the Actor does the rest.

### ✨ Why Choose Smart Product Scraper?

#### 🌍 **Universal - One Tool for All Sites**

Works on 95%+ of e-commerce sites without configuration:

- Shopify, WooCommerce, PrestaShop stores
- Marketplaces (eBay, Fnac, Cdiscount, AliExpress...)
- Custom e-commerce sites
- Stores of all sizes

**One Actor to replace dozens of specific scrapers!**

#### ⚡ **Fast - Results in 2 Seconds**

Get your data in record time:

- Less than 2 seconds per product
- Batch processing to scrape hundreds of products simultaneously
- Data available immediately

#### 🎯 **Intelligent - Maximum Extraction**

Our system analyzes each page with multiple techniques to guarantee the most complete extraction possible:

- If one technique doesn't find the price, another will
- Automatic combination of results for complete data
- 95% success rate at no additional cost

#### 💰 **Economical - Free Mode Included**

- **Free mode**: 95% success rate, $0 additional cost
- **AI mode** (optional): For the 5% most complex sites (~$0.001/product)

You choose whether to pay for AI or stay in free mode.

### 📊 Extracted Data

For each product, you receive:

| Data | Description |
|------|-------------|
| **name** | Product name |
| **description** | Full description |
| **price** | Price (number) |
| **currency** | ISO currency code (EUR, USD, GBP, CHF...) |
| **priceFormatted** | Formatted price with symbol |
| **brand** | Product brand |
| **images** | List of image URLs |
| **url** | Scraped product URL |
| **scrapeTimeMs** | Extraction time in milliseconds |
| **scrapedAt** | Extraction date and time (ISO 8601) |

### 🚀 How to Use?

#### Example 1: Scrape a single product

```json
{
  "productUrls": [
    "https://example-shop.com/product-123"
  ]
}
```

That's it! Run the Actor and retrieve the data.

#### Example 2: Scrape multiple products in parallel

```json
{
  "productUrls": [
    "https://shop-a.com/product-456",
    "https://shop-b.com/product-789",
    "https://shop-c.com/product-abc",
    "https://shop-d.com/product-def"
  ],
  "batchSize": 10
}
```

**batchSize** controls how many products are scraped simultaneously. The higher the number, the faster.

#### Example 3: Enable AI for difficult sites

```json
{
  "productUrls": [
    "https://difficult-site.com/product-xyz"
  ],
  "llmFallback": {
    "enabled": true,
    "provider": "claude",
    "apiKey": "your-api-key"
  }
}
```

AI intervenes **only** if free methods fail.

### ⚙️ Parameter Configuration

#### **productUrls** (REQUIRED)

List of product URLs to extract.

**Type**: List of URLs
**Example**:

```json
{
  "productUrls": [
    "https://shop-a.fr/product-1",
    "https://shop-b.com/product-2",
    "https://shop-c.net/product-3"
  ]
}
```

#### **batchSize** (optional)

Number of products scraped at the same time.

**Type**: Number (1 to 50)
**Default**: 10
**Recommendations**:

- **1-5**: Slow or protected sites
- **10-20**: Normal usage (recommended)
- **30-50**: Fast sites, large quantity

**Example**:

```json
{
  "productUrls": ["..."],
  "batchSize": 20
}
```

#### **llmFallback** (optional)

Enables artificial intelligence if free methods fail.

**Default**: Disabled (free, 95% success)

**Example**:

```json
{
  "llmFallback": {
    "enabled": true,
    "provider": "claude",
    "apiKey": "sk-ant-xxx..."
  }
}
```

**Available providers**:

- **claude**: Fast and economical (~$0.001/product)
- **openai**: Cheapest (~$0.0008/product)
- **diffbot**: Most accurate (~$0.003/product)

#### **proxyConfig** (optional)

Enables proxies if your IP is blocked.

**Default**: No proxy (recommended)

**Proxy types**:

- **none**: No proxy (free)
- **apify-datacenter**: Apify datacenter proxy
- **apify-residential**: Apify residential proxy (more expensive)
- **custom**: Your own proxies

**Example with Apify proxy**:

```json
{
  "proxyConfig": {
    "type": "apify-datacenter"
  }
}
```

**Example with your proxies**:

```json
{
  "proxyConfig": {
    "type": "custom",
    "customProxies": [
      "http://user:pass@proxy1.com:8080/",
      "http://user:pass@proxy2.com:8080/"
    ]
  }
}
```

### 📤 Results Format

#### ✅ Successful extraction

```json
{
  "url": "https://example-shop.com/premium-headphones",
  "success": true,
  "name": "Wireless Noise-Cancelling Headphones",
  "description": "Premium wireless headphones with active noise cancellation, 30-hour battery life, and superior sound quality...",
  "images": [
    "https://example-shop.com/images/headphones-black.jpg",
    "https://example-shop.com/images/headphones-silver.jpg"
  ],
  "brand": "AudioTech",
  "price": 299.99,
  "currency": "USD",
  "priceFormatted": "299.99 $",
  "scrapeTimeMs": 1856,
  "scrapedAt": "2025-11-05T08:11:30.186Z"
}
```

#### ❌ Failed extraction

```json
{
  "url": "https://invalid-site.com/product",
  "success": false,
  "error": "All extraction methods failed",
  "scrapeTimeMs": 1543,
  "scrapedAt": "2025-11-05T08:15:22.456Z"
}
```

### 💼 Use Cases

#### 1. 📊 Competitive Monitoring

Monitor your competitors' prices automatically:

```json
{
  "productUrls": [
    "https://competitor-a.com/product-X",
    "https://competitor-b.com/product-X",
    "https://competitor-c.com/product-X"
  ],
  "batchSize": 20
}
```

Schedule the Actor to run daily and receive updated prices.

#### 2. 📦 Catalog Creation

Build your product catalog from multiple suppliers:

```json
{
  "productUrls": [
    "https://supplier-a.com/product-1",
    "https://supplier-a.com/product-2",
    "https://supplier-b.com/product-3",
    "https://supplier-b.com/product-4"
  ],
  "batchSize": 10
}
```

#### 3. 💰 Market Price Analysis

Compare prices for the same product across different sites:

```json
{
  "productUrls": [
    "https://marketplace-a.com/product-abc",
    "https://marketplace-b.com/product-abc",
    "https://marketplace-c.com/product-abc",
    "https://marketplace-d.com/product-abc"
  ],
  "batchSize": 15
}
```

#### 4. 🚀 Dropshipping

Track your suppliers' prices and stocks in real-time:

```json
{
  "productUrls": [
    "https://wholesaler-a.com/item-12345",
    "https://wholesaler-b.com/item-67890"
  ],
  "batchSize": 5,
  "proxyConfig": {
    "type": "apify-residential"
  }
}
```

#### 5. 🔍 Product Research

Collect product information for your analyses or databases:

```json
{
  "productUrls": [
    "https://shop-a.com/product-new-1",
    "https://shop-b.com/product-new-2",
    "https://shop-c.com/product-new-3"
  ],
  "batchSize": 10
}
```

### 📈 Performance

| Metric | Value |
|--------|-------|
| **Speed** | < 2 seconds/product |
| **Success rate (free)** | 95% |
| **Success rate (with AI)** | ~100% |
| **Compatible sites** | 95%+ of e-commerce |
| **Free mode cost** | $0 |
| **AI mode cost** | ~$0.001/product |

#### Real Examples

| Site | Time | Result |
|------|------|--------|
| Shopify Store | 2.2s | ✅ Complete success |
| WooCommerce Site | 2.8s | ✅ Complete success |
| Custom Marketplace | 1.9s | ✅ Complete success |

### 🌍 Compatible Sites

Smart Product Scraper works on **95%+ of e-commerce sites**:

#### By platform

- ✅ Shopify (all stores)
- ✅ WooCommerce (WordPress)
- ✅ PrestaShop
- ✅ Magento
- ✅ BigCommerce
- ✅ Custom sites

#### By site type

- ✅ Online stores
- ✅ Marketplaces
- ✅ Wholesale sites
- ✅ Dropshipping sites
- ✅ Product catalogs

### 💡 Usage Tips

#### ✅ For best results

1. **Start with free mode**
   - 95% success rate at no cost
   - Enable AI only if necessary

2. **Adjust batch size**
   - Start with 10
   - Increase if everything works well
   - Reduce in case of timeout

3. **Don't use proxy by default**
   - Enable only if blocked
   - Prefer datacenter before residential (cheaper)

4. **Test with a few URLs first**
   - Verify that data is correct
   - Then launch in bulk

#### ❌ To avoid

- ❌ Using proxies for no reason (unnecessary cost)
- ❌ Enabling AI without testing free mode
- ❌ Setting batch size too high from the start
- ❌ Scraping invalid URLs

### 🎁 Bonus: Automation

#### Automatic Scheduling

Configure the Actor to run automatically:

- Every hour
- Every day at 9am
- Every week
- Custom

**Use case**: Daily update of competitor prices in your database.

#### Integrations

Connect Smart Product Scraper to your tools:

- **Webhooks**: Send data to your API
- **Zapier**: Automate your workflows
- **Make** (Integromat): Create complex scenarios
- **Google Sheets**: Direct export of results
- **API**: Integrate into your application

### 🎯 Ready to Start?

1. **Prepare your URLs** of products to scrape
2. **Configure the input** (or use default values)
3. **Run the Actor**
4. **Retrieve your data** in JSON

**It's that simple!**

***

**Smart Product Scraper - The universal solution to extract product data from any e-commerce site** 🚀

# Actor input Schema

## `productUrls` (type: `array`):

List of product URLs to scrape. Works on Shopify, WooCommerce, PrestaShop, marketplaces, and most e-commerce sites.

## `batchSize` (type: `integer`):

Number of URLs scraped simultaneously. Higher = faster but more memory. Recommended: 10-20.

## `llmFallback` (type: `object`):

LLM fallback configuration if standard methods fail. Disabled by default (free, 95% success rate).

## `proxyConfig` (type: `object`):

Proxy configuration. Default: no proxy (direct connection - recommended). Use proxy only if your IP is blocked.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.example.com/product.html"
  ],
  "batchSize": 10,
  "llmFallback": {
    "enabled": false,
    "provider": "none",
    "apiKey": ""
  },
  "proxyConfig": {
    "type": "none"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "productUrls": [
        "https://www.example.com/product.html"
    ],
    "llmFallback": {
        "enabled": false,
        "provider": "none",
        "apiKey": ""
    },
    "proxyConfig": {
        "type": "none"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("devnaz/smart-product-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 = {
    "productUrls": ["https://www.example.com/product.html"],
    "llmFallback": {
        "enabled": False,
        "provider": "none",
        "apiKey": "",
    },
    "proxyConfig": { "type": "none" },
}

# Run the Actor and wait for it to finish
run = client.actor("devnaz/smart-product-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 '{
  "productUrls": [
    "https://www.example.com/product.html"
  ],
  "llmFallback": {
    "enabled": false,
    "provider": "none",
    "apiKey": ""
  },
  "proxyConfig": {
    "type": "none"
  }
}' |
apify call devnaz/smart-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,devnaz/smart-product-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/WulIA1Hd00hLLMQgV/builds/qFHM62jjfp9uWy24W/openapi.json
