# Tokopedia Scraper - Store | Search | Product (`tictechid/vanzi-tokopedia`) Actor

Extract comprehensive product data from Tokopedia, Indonesia's #1 e-commerce platform. Get prices, ratings, sales data, detailed product specs, and more in seconds with our fast, reliable scraper.

- **URL**: https://apify.com/tictechid/vanzi-tokopedia.md
- **Developed by:** [TicTech](https://apify.com/tictechid) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 43 total users, 6 monthly users, 100.0% runs succeeded, 2 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 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

## Tokopedia Scraper - Search & Product Details

Extract comprehensive product data from **Tokopedia**, Indonesia's #1 e-commerce platform. **The fastest Tokopedia scraper available** - scrape hundreds of products in seconds with our ultra-efficient search mode.

### 🚀 Why Choose This Scraper?

- ⚡ **Fastest Tokopedia Scraper** - Scrape hundreds of products in seconds (search mode)
- 🎯 **Two Modes** - Product search OR detailed individual product scraping
- 🔍 **Comprehensive Filters** - Price range, condition, shipping, ratings, shop type, offers, and more
- 📊 **Rich Data** - Extract prices, ratings, sales count, stock, variants, descriptions, and more
- 💰 **Ultra Efficient** - Minimal memory usage, blazing fast performance
- 🔄 **Smart Pagination** - Automatically handles multiple pages
- ✅ **Reliable** - Robust error handling, continues even if individual products fail

### ✨ What Can You Do?

#### 🔎 Mode 1: Product Search
- **Ultra-fast search** - Scrape hundreds of products in seconds
- Search Tokopedia globally for any product
- **Comprehensive Filters**: Price range, condition, shipping duration, ratings, and more
- **Sort by**: Price (low/high), Reviews, Newest, Most Relevant
- **Filter by**: Location, shop type (Mall/Power Merchant), COD/Discount offers
- **Advanced Options**: Recently added products, instant/same day delivery
- Find the best deals across all sellers with unmatched speed

#### 📦 Mode 2: Individual Product Details 
- Get comprehensive details for a single product
- Extract stock quantities and availability
- Get all variants (colors, sizes, etc.) with availability
- Full product descriptions
- Minimum order quantities
- Product condition (new/used)
- Etalase/category information
- Multiple product images

#### 📈 Use Cases
- **Price Monitoring**: Track product prices across stores
- **Market Research**: Analyze product trends and pricing
- **Competitor Analysis**: Monitor competitor products and pricing
- **Product Sourcing**: Find the best suppliers and deals
- **Inventory Tracking**: Monitor stock and sales performance
- **Lead Generation**: Find sellers in specific locations

### ⚠️ Important: One Mode at a Time

**You can only run ONE mode per execution:**
- ✅ Use `search` for Mode 1 (Product Search)
- ✅ Use `product_url` for Mode 2 (Individual Product)

❌ **Do NOT** provide multiple mode parameters in the same run (e.g., both `search` and `product_url`)

The scraper will automatically detect which mode to use based on the parameter you provide.

#### Required Input
You must provide either a `search` query or a `product_url`. The scraper will error if neither is provided.

### 📥 Input Parameters

#### Mode 1: Product Search

| Parameter | Required | Description | Example |
|-----------|----------|-------------|---------|
| `search` | Yes | Search query | `"laptop gaming"` |
| `limit` | No | Max products to scrape (0 = unlimited) | `20` |
| `sort_order` | No | Sort results | `"harga_terendah"` (lowest price) |
| `location` | No | Filter by seller location | `"dki_jakarta"` |
| `price_min` | No | Minimum price in Rupiah | `100000` (Rp100,000) |
| `price_max` | No | Maximum price in Rupiah | `5000000` (Rp5,000,000) |
| `condition` | No | Product condition: `"baru"` or `"bekas"` | `"baru"` |
| `shipping_duration` | No | Array of shipping options | `["instant", "same_day"]` |
| `recently_added_days` | No | Days since product added | `"7"`, `"14"`, `"30"`, `"90"` |
| `shop_tier` | No | Array of shop types | `["mall", "power_merchant"]` |
| `rating_minimum` | No | Minimum product rating | `"4"` (4+ stars) |
| `offers` | No | Array of special offers | `["cod", "discount"]` |
| `stock_status` | No | Stock availability | `"preorder"` or `"ready_stock"` |

#### Mode 2: Individual Product Details

| Parameter | Required | Description | Example |
|-----------|----------|-------------|---------|
| `product_url` | Yes | Single product URL to scrape | `https://www.tokopedia.com/asus-indonesia-official/product` |

#### Sort Order Options
- `paling_sesuai` - Most relevant
- `ulasan` - Best reviews
- `terbaru` - Newest
- `harga_tertinggi` - Highest price
- `harga_terendah` - Lowest price

#### Location Options

**Major Cities & Regions:**
- `dki_jakarta` - DKI Jakarta
- `jabodetabek` - Jakarta & surrounding areas (Bogor, Depok, Tangerang, Bekasi)
- `bandung` - Bandung
- `medan` - Medan
- `surabaya` - Surabaya
- `semarang` - Semarang
- `yogyakarta` - Yogyakarta
- `makassar` - Makassar
- `bali` - Bali
- `padang` - Padang
- `palangka_raya` - Palangka Raya

**Provinces:**
- `aceh` - Aceh
- `banten` - Banten
- `bengkulu` - Bengkulu
- `papua` - Papua

**Other Cities:**
- `ambon` - Ambon
- `balikpapan` - Balikpapan
- `bandar_lampung` - Bandar Lampung
- `banjar` - Banjar
- `banjarbaru` - Banjarbaru
- `banjarmasin` - Banjarmasin
- `batam` - Batam
- `batu` - Batu
- `bekasi` - Bekasi
- `bima` - Bima
- `binjai` - Binjai
- `bitung` - Bitung
- `blitar` - Blitar
- `bogor` - Bogor
- `cilegon` - Cilegon
- `cimahi` - Cimahi
- `cirebon` - Cirebon
- `depok` - Depok

**Note:** We can add more specific locations based on request. Contact us if you need a specific city or region not listed above.

### 💡 Example Inputs

#### Example 1: Search for Laptops - Cheapest First
```json
{
  "search": "laptop gaming",
  "limit": 30,
  "sort_order": "harga_terendah"
}
````

**Use Case**: Find the cheapest gaming laptops across all Tokopedia sellers.

***

#### Example 2: Best-Rated Products in Jakarta

```json
{
  "search": "sepatu",
  "limit": 20,
  "sort_order": "ulasan",
  "location": "dki_jakarta"
}
```

**Use Case**: Find top-rated shoes from Jakarta sellers only.

***

#### Example 3: Newest Electronics in Bali

```json
{
  "search": "smartphone",
  "limit": 15,
  "sort_order": "terbaru",
  "location": "bali"
}
```

**Use Case**: Monitor latest smartphone releases from Bali sellers.

***

#### Example 4: Search with Price Range Filter

```json
{
  "search": "laptop",
  "limit": 50,
  "price_min": 3000000,
  "price_max": 10000000,
  "sort_order": "harga_terendah"
}
```

**Use Case**: Find laptops in the Rp3,000,000 - Rp10,000,000 price range, sorted by lowest price first.

***

#### Example 5: New Products with Fast Shipping

```json
{
  "search": "smartphone",
  "limit": 30,
  "condition": "baru",
  "shipping_duration": ["instant", "same_day"],
  "recently_added_days": "7"
}
```

**Use Case**: Find brand new smartphones added in the last 7 days with instant or same-day delivery options.

***

#### Example 6: High-Rated Mall Products with Discount

```json
{
  "search": "headphone wireless",
  "limit": 25,
  "shop_tier": ["mall"],
  "rating_minimum": "4",
  "offers": ["discount"],
  "sort_order": "ulasan"
}
```

**Use Case**: Find discounted wireless headphones from official mall stores with 4+ star ratings, sorted by reviews.

***

#### Example 7: Comprehensive Filter Combination

```json
{
  "search": "sepatu olahraga",
  "limit": 40,
  "location": "dki_jakarta",
  "price_min": 200000,
  "price_max": 1000000,
  "condition": "baru",
  "shop_tier": ["mall", "power_merchant"],
  "rating_minimum": "4",
  "offers": ["cod", "discount"],
  "stock_status": "ready_stock",
  "sort_order": "harga_terendah"
}
```

**Use Case**: Advanced search for new sports shoes in Jakarta with price range Rp200K-1M, from Mall/Power Merchant stores, 4+ stars, COD available, discounted, ready stock, sorted by lowest price.

***

#### Example 8: Get Detailed Product Information (Mode 2)

```json
{
  "product_url": "https://www.tokopedia.com/storename/product-name"
}
```

**Use Case**: Extract comprehensive details including stock, all variants (colors, sizes), full description, minimum order, condition, and more from a specific product page.

### 📤 Output Data

#### Standard Fields (All Modes)

- `product_name` - Full product title
- `product_url` - Direct link to product page
- `store_name` - Seller/store name
- `image_url` - Product image URL
- `price` - Current price (e.g., "Rp1.699.999")
- `price_numeric` - Numeric price for sorting (e.g., 1699999)
- `rating` - Product rating (e.g., "4.9")
- `location` - Seller location (e.g., "Jakarta Selatan")
- `platform` - Always "tokopedia"

#### Additional Fields (Mode 1: Search Only)

- `discount_info` - Discount percentage (e.g., "34%")
- `search_query` - The search term used

#### Exclusive Fields (Mode 2: Individual Product Only)

- `stock` - Current available quantity (e.g., 71)
- `variants` - Array of variant options with availability
  ```json
  [
    {
      "type": "warna",
      "options": [
        {"name": "Putih", "available": true},
        {"name": "Hitam", "available": true},
        {"name": "Kuning", "available": false}
      ]
    }
  ]
  ```
- `description` - Full product description with specifications
- `min_order` - Minimum order quantity (e.g., "1 Buah")
- `condition` - Product condition ("Baru" or "Bekas")
- `etalase` - Product category/showcase name
- `rating_count` - Number of ratings (e.g., "17 rating")
- `images` - Array of all product images (high quality URLs)

### 📊 Example Output

#### Search Result (Mode 1)

```json
{
  "platform": "tokopedia",
  "product_id": "3596156778",
  "product_name": "Example Product Name",
  "product_url": "https://www.tokopedia.com/storename/product-slug",
  "image_url": "https://images.tokopedia.net/img/cache/700/...",
  "price": "Rp1.699.999",
  "price_numeric": 1699999,
  "discount_info": "15%",
  "rating": "5.0",
  "store_name": "Example Store",
  "location": "Jakarta Pusat",
  "category": "Electronics",
  "search_query": "laptop gaming"
}
```

#### Individual Product Details (Mode 2)

```json
{
  "platform": "tokopedia",
  "product_url": "https://www.tokopedia.com/storename/product-name",
  "product_name": "Example Product Name - Variant A",
  "price": "Rp43.900",
  "price_numeric": 43900,
  "stock": 71,
  "rating": "4.4",
  "rating_count": "17 rating",
  "items_sold": "80+",
  "condition": "Baru",
  "min_order": "1 Buah",
  "etalase": "Category Name",
  "store_name": "Example Store",
  "location": "Jakarta Barat",
  "description": "Product description with specifications...",
  "variants": [
    {
      "type": "warna",
      "options": [
        {"name": "White", "available": true},
        {"name": "Black", "available": true},
        {"name": "Gray", "available": true},
        {"name": "Red", "available": true},
        {"name": "Blue", "available": true},
        {"name": "Yellow", "available": false}
      ]
    },
    {
      "type": "ukuran",
      "options": [
        {"name": "S", "available": true},
        {"name": "M", "available": true},
        {"name": "L", "available": true},
        {"name": "XL", "available": false}
      ]
    }
  ],
  "images": [
    "https://images.tokopedia.net/img/cache/700/...",
    "https://images.tokopedia.net/img/cache/700/...",
    "https://images.tokopedia.net/img/cache/700/..."
  ],
  "image_url": "https://images.tokopedia.net/img/cache/700/..."
}
```

### ⚡ Performance

- **Speed**: Scrape hundreds of products in seconds (search mode)
- **Efficiency**: Ultra-fast performance with minimal resource usage
- **Memory**: ~150-200MB
- **Reliability**: Handles pagination, errors, and edge cases
- **Scalability**: Process thousands of products efficiently

### 🎯 Perfect For

- **E-commerce Businesses**: Monitor competitors and pricing
- **Market Researchers**: Analyze product trends and demand
- **Drop Shippers**: Find profitable products and suppliers
- **Price Comparison Sites**: Aggregate pricing data
- **Data Analysts**: Collect data for market analysis
- **Retailers**: Track inventory and pricing strategies

### 📋 Common Workflows

#### Workflow 1: Daily Price Monitoring

1. Set up scheduled runs (daily/hourly)
2. Scrape specific store or search query
3. Export data to Google Sheets/Database
4. Track price changes over time

#### Workflow 2: Market Research

1. Search for product categories
2. Sort by best reviews or most sold
3. Analyze pricing distribution
4. Identify market leaders

#### Workflow 3: Competitor Analysis

1. Search for competitor products
2. Compare product ranges and pricing
3. Monitor pricing strategies
4. Track new product launches

### 🔗 Integration

This Actor works seamlessly with:

- **Google Sheets** - Export data automatically
- **Zapier** - Trigger workflows on new data
- **Make (Integromat)** - Connect to 1000+ apps
- **Slack/Discord** - Get notifications
- **Databases** - PostgreSQL, MongoDB, etc.
- **Apify API** - Programmatic access

### ❓ FAQ

**Q: Can I scrape unlimited products?**\
A: Yes! Set `limit: 0` to scrape all products. Be mindful of Apify compute units.

**Q: How fast is the scraper?**\
A: Search mode can scrape hundreds of products in seconds - the fastest Tokopedia scraper available. Product mode processes individual products quickly with full detail extraction.

**Q: Does it support pagination?**\
A: Yes! Automatically follows "next page" links until limit is reached.

**Q: Can I filter by multiple locations?**\
A: Currently one location at a time. Contact us for custom multi-location support.

**Q: What if a product is missing data?**\
A: The scraper extracts all available data. Missing fields are simply omitted.

**Q: How often can I run this?**\
A: As often as needed! Set up scheduled runs for continuous monitoring.

### 🗺️ Custom Locations

Need a specific city or region that's not in our location list? We can add more specific locations based on request! Contact us with the location you need, and we'll add it to the scraper.

### 📞 Support

contact the maintainer through the issue tab or email us at contact@tictech.id

# Actor input Schema

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

Search for products on Tokopedia. When provided (and product\_url is empty), scraper will search Tokopedia and return top results. Example: 'laptop gaming'

## `product_url` (type: `string`):

Scrape detailed information from a single Tokopedia product page. Includes stock, variants, description, min order, condition, etalase, and more.

## `limit` (type: `integer`):

Maximum number of products to scrape. Set to 0 for unlimited scraping. Only applies to search mode.

## `sort_order` (type: `string`):

Sort search results. Options: 'paling\_sesuai' (most relevant), 'ulasan' (reviews), 'terbaru' (newest), 'harga\_tertinggi' (highest price), 'harga\_terendah' (lowest price). Leave empty for default sorting.

## `location` (type: `string`):

Filter search results by seller location. We can add more specific locations based on request. Contact us if you need a specific city or region not listed.

## `price_min` (type: `integer`):

Filter products with minimum price. Enter price in Indonesian Rupiah (without 'Rp' or commas). Example: 100000 for Rp100,000.

## `price_max` (type: `integer`):

Filter products with maximum price. Enter price in Indonesian Rupiah (without 'Rp' or commas). Example: 5000000 for Rp5,000,000.

## `condition` (type: `string`):

Filter by product condition. Options: 'baru' (new), 'bekas' (used), or leave empty for all conditions.

## `shipping_duration` (type: `array`):

Filter by shipping duration options. Select one or more options.

## `recently_added_days` (type: `string`):

Filter products by how recently they were added. Options: 7 days, 14 days, 30 days (1 month), 90 days (3 months).

## `shop_tier` (type: `array`):

Filter by shop type/tier. Select one or more options.

## `rating_minimum` (type: `string`):

Filter products with minimum rating. Currently only '4+' (4 stars and above) is supported by Tokopedia.

## `offers` (type: `array`):

Filter by special offers. Select one or more options.

## `stock_status` (type: `string`):

Filter by stock availability.

## Actor input object example

```json
{
  "search": "laptop gaming",
  "product_url": "https://www.tokopedia.com/storename/productname",
  "limit": 50,
  "sort_order": "",
  "location": "",
  "condition": "",
  "recently_added_days": "",
  "rating_minimum": "",
  "stock_status": ""
}
```

# 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": "",
    "product_url": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("tictechid/vanzi-tokopedia").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": "",
    "product_url": "",
}

# Run the Actor and wait for it to finish
run = client.actor("tictechid/vanzi-tokopedia").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": "",
  "product_url": ""
}' |
apify call tictechid/vanzi-tokopedia --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Tokopedia Scraper - Store | Search | Product",
        "description": "Extract comprehensive product data from Tokopedia, Indonesia's #1 e-commerce platform. Get prices, ratings, sales data, detailed product specs, and more in seconds with our fast, reliable scraper.",
        "version": "0.0",
        "x-build-id": "87nBVzKsdE3Rpb9Yg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tictechid~vanzi-tokopedia/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tictechid-vanzi-tokopedia",
                "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/tictechid~vanzi-tokopedia/runs": {
            "post": {
                "operationId": "runs-sync-tictechid-vanzi-tokopedia",
                "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/tictechid~vanzi-tokopedia/run-sync": {
            "post": {
                "operationId": "run-sync-tictechid-vanzi-tokopedia",
                "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 (Mode 1: Search Tokopedia)",
                        "type": "string",
                        "description": "Search for products on Tokopedia. When provided (and product_url is empty), scraper will search Tokopedia and return top results. Example: 'laptop gaming'"
                    },
                    "product_url": {
                        "title": "Product URL (Mode 2: Individual Product)",
                        "type": "string",
                        "description": "Scrape detailed information from a single Tokopedia product page. Includes stock, variants, description, min order, condition, etalase, and more."
                    },
                    "limit": {
                        "title": "Maximum Products to Scrape",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to scrape. Set to 0 for unlimited scraping. Only applies to search mode.",
                        "default": 50
                    },
                    "sort_order": {
                        "title": "Sort Order",
                        "enum": [
                            "",
                            "paling_sesuai",
                            "ulasan",
                            "terbaru",
                            "harga_tertinggi",
                            "harga_terendah"
                        ],
                        "type": "string",
                        "description": "Sort search results. Options: 'paling_sesuai' (most relevant), 'ulasan' (reviews), 'terbaru' (newest), 'harga_tertinggi' (highest price), 'harga_terendah' (lowest price). Leave empty for default sorting.",
                        "default": ""
                    },
                    "location": {
                        "title": "Location Filter",
                        "enum": [
                            "",
                            "dki_jakarta",
                            "jabodetabek",
                            "bandung",
                            "medan",
                            "surabaya",
                            "semarang",
                            "yogyakarta",
                            "makassar",
                            "bali",
                            "aceh",
                            "banten",
                            "bengkulu",
                            "papua",
                            "ambon",
                            "balikpapan",
                            "bandar_lampung",
                            "banjar",
                            "banjarbaru",
                            "banjarmasin",
                            "batam",
                            "batu",
                            "bekasi",
                            "bima",
                            "binjai",
                            "bitung",
                            "blitar",
                            "bogor",
                            "cilegon",
                            "cimahi",
                            "cirebon",
                            "depok",
                            "padang",
                            "palangka_raya"
                        ],
                        "type": "string",
                        "description": "Filter search results by seller location. We can add more specific locations based on request. Contact us if you need a specific city or region not listed.",
                        "default": ""
                    },
                    "price_min": {
                        "title": "Minimum Price (Rp)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter products with minimum price. Enter price in Indonesian Rupiah (without 'Rp' or commas). Example: 100000 for Rp100,000."
                    },
                    "price_max": {
                        "title": "Maximum Price (Rp)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter products with maximum price. Enter price in Indonesian Rupiah (without 'Rp' or commas). Example: 5000000 for Rp5,000,000."
                    },
                    "condition": {
                        "title": "Product Condition",
                        "enum": [
                            "",
                            "baru",
                            "bekas"
                        ],
                        "type": "string",
                        "description": "Filter by product condition. Options: 'baru' (new), 'bekas' (used), or leave empty for all conditions.",
                        "default": ""
                    },
                    "shipping_duration": {
                        "title": "Shipping Duration",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by shipping duration options. Select one or more options.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "instant",
                                "same_day"
                            ]
                        }
                    },
                    "recently_added_days": {
                        "title": "Recently Added (Days)",
                        "enum": [
                            "",
                            "7",
                            "14",
                            "30",
                            "90"
                        ],
                        "type": "string",
                        "description": "Filter products by how recently they were added. Options: 7 days, 14 days, 30 days (1 month), 90 days (3 months).",
                        "default": ""
                    },
                    "shop_tier": {
                        "title": "Shop Type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by shop type/tier. Select one or more options.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "mall",
                                "power_merchant"
                            ]
                        }
                    },
                    "rating_minimum": {
                        "title": "Minimum Rating",
                        "enum": [
                            "",
                            "4"
                        ],
                        "type": "string",
                        "description": "Filter products with minimum rating. Currently only '4+' (4 stars and above) is supported by Tokopedia.",
                        "default": ""
                    },
                    "offers": {
                        "title": "Special Offers",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by special offers. Select one or more options.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "cod",
                                "discount"
                            ]
                        }
                    },
                    "stock_status": {
                        "title": "Stock Status",
                        "enum": [
                            "",
                            "preorder",
                            "ready_stock"
                        ],
                        "type": "string",
                        "description": "Filter by stock availability.",
                        "default": ""
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
