# Shopee Scraper - Produk, Toko, Review (`nurtured_horn/shopee-scraper`) Actor

Scrape data dari Shopee Indonesia: detail produk, daftar produk toko, review, dan hasil pencarian. Mendukung 26 field per produk termasuk gambar, harga, rating, lokasi toko, dan lainnya.

- **URL**: https://apify.com/nurtured\_horn/shopee-scraper.md
- **Developed by:** [abi hanif](https://apify.com/nurtured_horn) (community)
- **Categories:** E-commerce
- **Stats:** 8 total users, 3 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

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

## Shopee Scraper - Apify Actor

Scrape data dari Shopee Indonesia secara otomatis. Mendukung:

- **Semua produk dari toko** - 26 field per produk termasuk gambar, harga, rating, lokasi
- **Detail produk individual** - informasi lengkap produk
- **Review produk** - rating, komentar, foto review
- **Hasil pencarian** - produk berdasarkan kata kunci

### Cara Penggunaan

1. Buka actor di Apify Console
2. Masukkan URL Shopee atau ID toko/produk
3. Pilih jumlah maksimal item
4. Jalankan actor

### Input

| Field | Tipe | Deskripsi |
|-------|------|-----------|
| scrapeType | select | Jenis scrape: shop, product, reviews, search |
| url | string | URL halaman Shopee |
| shopId | string | ID toko (alternatif dari URL) |
| itemId | string | ID produk (untuk product/reviews) |
| keyword | string | Kata kunci pencarian |
| maxItems | integer | Jumlah maksimal item (default: 200) |
| cookies | string | Cookie session Shopee (opsional) |

### Output

Dataset dengan struktur:

```json
{
  "id": 51258456298,
  "Shop ID": "898968219",
  "Product Name": "Kemeja Pria Premium",
  "Brand": "Not Available",
  "Price": "475000.00",
  "Price Before Discount": "0.00",
  "Currency": "IDR",
  "Discount": "0%",
  "Sold Count": 42,
  "Historical Sold": 124,
  "Liked Count": 109,
  "Comment Count": 46,
  "Rating Star": 4.91,
  "Rating Count": 92,
  "Category ID": "100011",
  "Shop Name": "Andys boutique",
  "Shop Location": "KAB. TEGAL",
  "All Images": "https://down-id.img.susercontent.com/file/... || ...",
  "Product URL": "https://shopee.co.id/product/.../...",
  "Shop URL": "https://shopee.co.id/shop/...",
  "Is Free Shipping": "No",
  "Is Flash Sale": "No",
  "Is Official Shop": "No",
  "Is Shopee Verified": "Yes",
  "Can Use COD": "No",
  "Item Status": "normal"
}
````

# Actor input Schema

## `scrapeType` (type: `string`):

Pilih jenis data yang ingin di-scrape

## `url` (type: `string`):

URL halaman Shopee yang ingin di-scrape (contoh: https://shopee.co.id/shop/123456 atau https://shopee.co.id/product/123/456 atau https://shopee.co.id/search?keyword=baju)

## `shopId` (type: `string`):

Langsung masukkan ID toko jika tahu (contoh: 898968219). Alternatif dari URL.

## `itemId` (type: `string`):

Langsung masukkan ID produk jika tahu (untuk scrape product/reviews). Alternatif dari URL.

## `keyword` (type: `string`):

Kata kunci untuk scrape pencarian (hanya untuk scrapeType=search)

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

Jumlah maksimal item yang akan di-scrape

## `cookies` (type: `string`):

Nilai cookie SPC\_EC atau SPC\_ST dari browser setelah login Shopee. Diperlukan untuk akses data toko lengkap. Cara dapatkan: buka Shopee.co.id, login, buka DevTools > Application > Cookies, cari 'SPC\_EC' atau 'SPC\_ST', copy nilainya.

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

Pengaturan proxy (gunakan Apify proxy untuk menghindari blokir)

## Actor input object example

```json
{
  "scrapeType": "shop",
  "maxItems": 200,
  "proxyConfig": {
    "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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nurtured_horn/shopee-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("nurtured_horn/shopee-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 '{}' |
apify call nurtured_horn/shopee-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopee Scraper - Produk, Toko, Review",
        "description": "Scrape data dari Shopee Indonesia: detail produk, daftar produk toko, review, dan hasil pencarian. Mendukung 26 field per produk termasuk gambar, harga, rating, lokasi toko, dan lainnya.",
        "version": "1.0",
        "x-build-id": "TFfv0hVlvPlISsspB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nurtured_horn~shopee-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nurtured_horn-shopee-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/nurtured_horn~shopee-scraper/runs": {
            "post": {
                "operationId": "runs-sync-nurtured_horn-shopee-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/nurtured_horn~shopee-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-nurtured_horn-shopee-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",
                "required": [
                    "scrapeType"
                ],
                "properties": {
                    "scrapeType": {
                        "title": "Jenis Scrape",
                        "enum": [
                            "shop",
                            "product",
                            "reviews",
                            "search"
                        ],
                        "type": "string",
                        "description": "Pilih jenis data yang ingin di-scrape",
                        "default": "shop"
                    },
                    "url": {
                        "title": "URL Shopee",
                        "pattern": "^(https?://)?shopee\\.co\\.id/.*",
                        "type": "string",
                        "description": "URL halaman Shopee yang ingin di-scrape (contoh: https://shopee.co.id/shop/123456 atau https://shopee.co.id/product/123/456 atau https://shopee.co.id/search?keyword=baju)"
                    },
                    "shopId": {
                        "title": "ID Toko (opsional)",
                        "pattern": "^\\d+$",
                        "type": "string",
                        "description": "Langsung masukkan ID toko jika tahu (contoh: 898968219). Alternatif dari URL."
                    },
                    "itemId": {
                        "title": "ID Produk (opsional)",
                        "pattern": "^\\d+$",
                        "type": "string",
                        "description": "Langsung masukkan ID produk jika tahu (untuk scrape product/reviews). Alternatif dari URL."
                    },
                    "keyword": {
                        "title": "Kata Kunci Pencarian",
                        "type": "string",
                        "description": "Kata kunci untuk scrape pencarian (hanya untuk scrapeType=search)"
                    },
                    "maxItems": {
                        "title": "Jumlah Maksimal",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Jumlah maksimal item yang akan di-scrape",
                        "default": 200
                    },
                    "cookies": {
                        "title": "Cookie Session (opsional)",
                        "type": "string",
                        "description": "Nilai cookie SPC_EC atau SPC_ST dari browser setelah login Shopee. Diperlukan untuk akses data toko lengkap. Cara dapatkan: buka Shopee.co.id, login, buka DevTools > Application > Cookies, cari 'SPC_EC' atau 'SPC_ST', copy nilainya."
                    },
                    "proxyConfig": {
                        "title": "Konfigurasi Proxy",
                        "type": "object",
                        "description": "Pengaturan proxy (gunakan Apify proxy untuk menghindari blokir)",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
