# Shopee Mall Search Scraper (`xtracto/shopee-mall-search`) Actor

Search Shopee Mall (official certified brand stores only) by keyword. Returns up to 40 brand products per page with price, discount, rating, and seller info. Supports pagination for larger result sets.

- **URL**: https://apify.com/xtracto/shopee-mall-search.md
- **Developed by:** [xtractoo](https://apify.com/xtracto) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 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 Mall Search Scraper

Search Shopee Mall — certified brand stores only — by keyword and retrieve product cards with price, discount, rating, and seller info.

### Why use this actor

- **Official brand products only** — every result comes from a Shopee-certified brand store, no third-party resellers
- **No account or login required** — runs without any credentials
- **40 products per page** with automatic pagination for larger result sets
- **Stable JSON output** ready for price monitoring, competitor research, or database ingestion
- **Optional full detail enrichment** — add description, all variants, image gallery, and seller metrics per product
- **All major Shopee regions** — Indonesia, Malaysia, Thailand, Philippines, Singapore, and more

### How it works

1. You provide a search keyword (e.g. `"laptop gaming"`) and choose a country.
2. The actor fetches Shopee Mall search results — the same products that appear when you filter by "Official Store" on the Shopee website.
3. Every returned product is guaranteed to be from a certified brand store (`is_mall: true`).
4. Results stream into your dataset as structured JSON, ready to download as JSON, CSV, or Excel.
5. Enable **Fetch full product detail** to enrich each card with description, all price variants, and full image gallery — no browser or API keys needed.

### Input

```json
{
  "country": "id",
  "keyword": "laptop gaming",
  "sort": "relevancy",
  "maxProducts": 40,
  "fetchDetail": false,
  "delay": 1.0
}
````

| Field | Type | Description |
|---|---|---|
| `country` | string | Shopee regional site: `id` (default), `sg`, `my`, `th`, `ph`, `vn`, `br`, `tw`, `mx`, `co`, `cl` |
| `keyword` | string | **Required.** Search term for Shopee Mall products. |
| `sort` | string | `relevancy` (default), `sales`, `newest`, `price_asc`, `price_desc` |
| `maxProducts` | integer | Max products to return. Default: 40. Supports pagination beyond 40. |
| `fetchDetail` | boolean | Enrich each result with full product detail (description, variants, images). Default: `false`. |
| `delay` | number | Seconds between requests. Default: 1.0. |

### Output

```json
{
  "shop_id": 78730497,
  "item_id": 11325125821,
  "name": "LENOVO LOQ 15 - AMD RYZEN 7 7735HS RTX3050 6GB/ 16GB 512GB W11+OHS 15.6FHD 144HZ 100SRGB",
  "url": "https://shopee.co.id/LENOVO-LOQ-15-...-i.78730497.11325125821",
  "image_url": "https://down-id.img.susercontent.com/file/id-11134207-82252-mj543dwshbepce",
  "price": 12799000,
  "discount_pct": 57,
  "rating": 4.9,
  "sold_count": null,
  "location": "Jakarta Utara",
  "is_mall": true,
  "currency": "IDR",
  "original_price": null,
  "rating_count": null
}
```

| Field | Type | Description |
|---|---|---|
| `shop_id` | integer | Numeric seller shop ID |
| `item_id` | integer | Numeric product item ID |
| `name` | string | Product title |
| `url` | string | Full Shopee product URL |
| `image_url` | string | Primary product image URL |
| `price` | integer | Current price in local currency |
| `discount_pct` | integer | Discount percentage (e.g. `57` = 57% off), or `null` |
| `rating` | float | Average rating (0–5), or `null` |
| `sold_count` | integer | Units sold count, or `null` |
| `location` | string | Seller location (city/province), or `null` |
| `is_mall` | boolean | Always `true` — all results are Shopee Mall (official brand) products |
| `currency` | string | ISO currency code (e.g. `IDR`, `MYR`, `SGD`) |
| `original_price` | integer | Price before discount, or `null` |
| `rating_count` | integer | Number of reviews, or `null` |

When `fetchDetail: true`, each item is additionally enriched with `description`, `brand`, `models` (variants), `tier_variations`, `attributes`, `images[]`, `categories[]`, and `shop{}`.

### Other Shopee Actors

| Actor | What it does |
|---|---|
| [shopee-search](../shopee-search-act) | Keyword + category search across all sellers |
| [shopee-product-detail](../shopee-detail-act) | Full product detail by shop/item ID or URL |
| [shopee-shop](../shopee-shop-act) | All products from a specific Shopee shop |
| [shopee-campaign](../shopee-campaign) | Products from Shopee campaign microsites |
| [shopee-flash-sale](../shopee-flash-sale) | Current flash sale session products |
| [shopee-search-hint](../shopee-search-hint) | Keyword autocomplete suggestions |

# Actor input Schema

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

Shopee regional site. Full mall product cards (40 per page) are available for Indonesia (ID), Malaysia (MY), Thailand (TH), and Philippines (PH). Singapore (SG) has fewer official brand products (~7 per search). Other regions may return limited results.

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

Search term for Shopee Mall. Only products from official certified brand stores are returned.

## `sort` (type: `string`):

How to sort mall search results.

## `maxProducts` (type: `integer`):

Maximum number of products to return. 40 per page — higher values trigger automatic pagination.

## `fetchDetail` (type: `boolean`):

Enrich each product card with full data: description, brand, all variants, attributes, image gallery, and seller info. Uses more requests — recommended for small batches (≤20 products). Best results when running on Apify Cloud.

## `delay` (type: `number`):

Delay between HTTP requests in seconds.

## Actor input object example

```json
{
  "country": "id",
  "keyword": "laptop gaming",
  "sort": "relevancy",
  "maxProducts": 40,
  "fetchDetail": false,
  "delay": 1
}
```

# 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 = {
    "country": "id",
    "keyword": "laptop gaming",
    "sort": "relevancy",
    "maxProducts": 40,
    "fetchDetail": false,
    "delay": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/shopee-mall-search").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 = {
    "country": "id",
    "keyword": "laptop gaming",
    "sort": "relevancy",
    "maxProducts": 40,
    "fetchDetail": False,
    "delay": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/shopee-mall-search").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 '{
  "country": "id",
  "keyword": "laptop gaming",
  "sort": "relevancy",
  "maxProducts": 40,
  "fetchDetail": false,
  "delay": 1
}' |
apify call xtracto/shopee-mall-search --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopee Mall Search Scraper",
        "description": "Search Shopee Mall (official certified brand stores only) by keyword. Returns up to 40 brand products per page with price, discount, rating, and seller info. Supports pagination for larger result sets.",
        "version": "0.1",
        "x-build-id": "ZChT63tBC7xXPfkKz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~shopee-mall-search/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-shopee-mall-search",
                "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/xtracto~shopee-mall-search/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-shopee-mall-search",
                "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/xtracto~shopee-mall-search/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-shopee-mall-search",
                "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": [
                    "keyword"
                ],
                "properties": {
                    "country": {
                        "title": "Country",
                        "enum": [
                            "id",
                            "sg",
                            "my",
                            "th",
                            "ph",
                            "vn",
                            "br",
                            "tw",
                            "mx",
                            "co",
                            "cl"
                        ],
                        "type": "string",
                        "description": "Shopee regional site. Full mall product cards (40 per page) are available for Indonesia (ID), Malaysia (MY), Thailand (TH), and Philippines (PH). Singapore (SG) has fewer official brand products (~7 per search). Other regions may return limited results.",
                        "default": "id"
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Search term for Shopee Mall. Only products from official certified brand stores are returned."
                    },
                    "sort": {
                        "title": "Sort order",
                        "enum": [
                            "relevancy",
                            "sales",
                            "newest",
                            "price_asc",
                            "price_desc"
                        ],
                        "type": "string",
                        "description": "How to sort mall search results.",
                        "default": "relevancy"
                    },
                    "maxProducts": {
                        "title": "Max products",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of products to return. 40 per page — higher values trigger automatic pagination.",
                        "default": 40
                    },
                    "fetchDetail": {
                        "title": "Fetch full product detail",
                        "type": "boolean",
                        "description": "Enrich each product card with full data: description, brand, all variants, attributes, image gallery, and seller info. Uses more requests — recommended for small batches (≤20 products). Best results when running on Apify Cloud.",
                        "default": false
                    },
                    "delay": {
                        "title": "Request delay (seconds)",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "number",
                        "description": "Delay between HTTP requests in seconds.",
                        "default": 1
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
