# Tokopedia Scraper – Product Search & Prices (`unnoted/tokopedia-product-search`) Actor

Search Tokopedia products by keyword: name, price in rupiah, original price and discount, rating, sold count, image, category and shop (name, city, Mall or Power Merchant). Filter by price, condition and shop type, sort by price or newest. Export JSON, CSV or Excel. No login needed. Unofficial.

- **URL**: https://apify.com/unnoted/tokopedia-product-search.md
- **Developed by:** [Unnoted](https://apify.com/unnoted) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Tokopedia Scraper – Product Search & Prices do?

Tokopedia Scraper collects the products Tokopedia shows for your search terms: name, price in rupiah, original price and discount, rating, sold count, image, category and the shop with its city and type, with filters for price, condition and shop type, as clean rows you can export or call by API.

Unofficial, not affiliated with Tokopedia.

**Main features:** search by keyword, up to 100,000 products per run, no login needed, export to JSON, CSV or Excel, and full API and scheduling support on Apify.

### What data can you get from Tokopedia?

Each product is one row with these fields:

| Field | Description |
|---|---|
| `productId` | Tokopedia product id (always filled) |
| `url` | Link to the product on Tokopedia (always filled) |
| `name` | Product name, as written by the shop (always filled) |
| `price` | Price in rupiah, after any discount |
| `priceText` | Price as the site shows it (e.g. Rp521.400) |
| `originalPrice` | Price before the discount, in rupiah; empty when there is no discount |
| `discountPercent` | Discount off the original price, in percent; empty when there is none |
| `currency` | Always IDR |
| `rating` | Average rating, 1 to 5; empty when the product has none yet |
| `soldCount` | Units sold, as a number; the site rounds large counts down (10rb+ becomes 10000); empty when it shows none |
| `soldText` | Sold count as the site shows it (e.g. 10rb+ terjual) |
| `imageUrl` | Product image, 300 × 300 |
| `category` | Top-level category (e.g. Olahraga) |
| `categoryPath` | Category path (e.g. olahraga/perlengkapan-lari/sepatu-lari-wanita) |
| `categoryId` | Tokopedia id of the top-level category |
| `shopId` | Tokopedia id of the shop |
| `shopName` | Shop name |
| `shopUrl` | Link to the shop on Tokopedia |
| `shopCity` | City the shop sends from (e.g. Jakarta Pusat) |
| `shopType` | mall (a Tokopedia Mall brand store), powerMerchantPro or regular |
| `isPreorder` | Whether the product is sold as a pre-order |
| `cashOnDelivery` | Whether the product can be paid cash on delivery (Bisa COD) |
| `isAd` | Whether the result is a sponsored placement |
| `position` | Position in the results (1 = first result) |
| `searchQuery` | The search term that found it |
| `scrapedAt` | When the product was collected (ISO 8601) |

### How to scrape Tokopedia with Tokopedia Scraper – Product Search & Prices

1. Open Tokopedia Scraper – Product Search & Prices on Apify and go to the **Input** tab.
2. In **Search terms**, enter `sepatu`.
3. In **Max products**, enter `60`.
4. Click **Start** and wait for the run to finish. A small run like this one takes under a minute.
5. Open the **Output** tab to see the results, or download them as JSON, CSV, Excel or HTML.

### Input

See the **Input** tab for every option. The fields:

| Field | Name | What it does | Default |
|---|---|---|---|
| `searchQueries` | Search terms | What to search for on Tokopedia, one per line, as you would type it in the search box (e.g. sepatu, iphone 15, beras 5kg). Indonesian terms give the most results. Each search gives up to 6,000 products. |  |
| `sort` | Sort by | Order of the results, as on Tokopedia. Options: `relevance` (Best match), `mostReviewed` (Most reviewed), `newest` (Newest first), `priceLow` (Price: low to high), `priceHigh` (Price: high to low). | `"relevance"` |
| `priceMin` | Min price (IDR) | Only products at or above this price, in rupiah. Leave empty for no minimum. |  |
| `priceMax` | Max price (IDR) | Only products at or below this price, in rupiah. Leave empty for no maximum. |  |
| `condition` | Condition | Only new or only used products. Options: `any` (Any), `new` (New), `used` (Used). | `"any"` |
| `shopType` | Shop type | Only products from Tokopedia Mall brand stores, Power Merchant Pro shops, or either. Options: `any` (Any shop), `mall` (Tokopedia Mall), `powerMerchantPro` (Power Merchant Pro), `mallOrPro` (Mall or Power Merchant Pro). | `"any"` |
| `highRatedOnly` | Rated 4 stars or more | Only products with a rating of 4 or 5 stars. | `false` |
| `maxItems` | Max products | Maximum number of products in total, across all searches. You pay only for products saved. | `100` |

Example input:

```json
{
  "searchQueries": [
    "sepatu"
  ],
  "maxItems": 60
}
```

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. One real result:

```json
{
  "productId": "11690069936",
  "url": "https://www.tokopedia.com/osfrans/lemari-rak-sepatu-serbaguna-kayu-susun-6-lunar-huga-4210-harga-pabrik-rss-05-cargo-6ff24",
  "name": "LEMARI RAK SEPATU SERBAGUNA KAYU SUSUN 6 LUNAR HUGA 4210 HARGA PABRIK - HUGA 4210, INSTANS",
  "price": 199900,
  "priceText": "Rp199.900",
  "originalPrice": null,
  "discountPercent": null,
  "currency": "IDR",
  "rating": null,
  "soldCount": null,
  "soldText": null,
  "imageUrl": "https://p16-images-sign-sg.tokopedia-static.net/tos-alisg-i-aphluv4xwc-sg/img/VqbcmM/2023/7/22/5693cdc8-a2a0-4bd4-b824-0f0bd193eb16.jpg~tplv-aphluv4xwc-white-pad-v1:300:300.jpeg?lk3s=97278606&x-expires=1791498253&x-signature=g2AUTIvb9rCN%2Fdx%2BKMycVBbjeZc%3D&x-signature-webp=4xbljFUVlyzxvqmPTp75eBu6hkQ%3D",
  "category": "Rumah Tangga",
  "categoryPath": "rumah-tangga/tempat-penyimpanan/tempat-sepatu-sandal",
  "categoryId": 984,
  "shopId": "1318431",
  "shopName": "Osfrans Home Living",
  "shopUrl": "https://www.tokopedia.com/osfrans",
  "shopCity": "Kab. Tangerang",
  "shopType": "powerMerchantPro",
  "isPreorder": false,
  "cashOnDelivery": false,
  "isAd": false,
  "position": 1,
  "searchQuery": "sepatu",
  "scrapedAt": "2026-10-08T21:24:13.646Z"
}
```

### How much does it cost to scrape Tokopedia?

Tokopedia Scraper – Product Search & Prices uses pay-per-event pricing: **$1.50 per 1,000 products** (Product). You pay only for products saved to the dataset; platform usage is included in the price. Each run also has Apify's standard start fee of a fraction of a cent.

| Products | Price |
|---|---|
| 100 | $0.15 |
| 1,000 | $1.50 |
| 10,000 | $15.00 |

Set **Max items** (and the run's maximum cost in the run options) to cap what a run can spend. The run stops when either limit is reached.

### Use cases

- **Price monitoring:** track the prices and discounts of a product across every shop that sells it in Indonesia.
- **Market research:** see which products sell most in a category, from sold counts and ratings.
- **Competitor tracking:** follow what Tokopedia Mall brand stores and Power Merchant Pro shops list and at what price.
- **Product sourcing:** find best-selling products and the cities their sellers ship from.
- **Catalogue and comparison sites:** feed fresh Tokopedia listings, images and prices into your own app.

### Tips

- Search in Indonesian, as buyers do on the site: sepatu, tas wanita, beras 5kg. English brand and model names work too.
- Sort by **Most reviewed** to see the products buyers trust most, or by price to find the cheapest offer.
- Each search returns up to 6,000 products. For more, split it with narrower terms or price ranges.
- Set **Shop type** to Tokopedia Mall to keep only brand stores.
- Products found by more than one search are saved once, so overlapping searches don't cost twice.

### FAQ

#### Is it legal to scrape Tokopedia?

Tokopedia Scraper – Product Search & Prices collects only data that Tokopedia shows publicly to every visitor, and it leaves out personal data such as private profiles and contact details. Our Actors are ethical and do not extract private user data. Results could still contain personal data in titles or descriptions written by uploaders. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You are responsible for how you use the data.

#### Can I use it through an API?

Yes. Every Apify Actor has an API: start runs, pass input and read results over HTTP, or use the JavaScript and Python clients. See the **API** tab on the Actor page for ready-made examples.

#### Can I schedule runs and connect other apps?

Yes. Use Apify **Schedules** to run Tokopedia Scraper – Product Search & Prices every hour, day or week, and integrations (Make, Zapier, Google Sheets, webhooks and more) to send the results where you need them.

#### Why did I get fewer results than expected?

The run stops at **Max items** or at the run's maximum cost, whichever comes first. Tokopedia may also return fewer results for rare search terms. Duplicates across search terms are saved once. Check the run's `RUN_SUMMARY` record in the key-value store for the inputs that returned nothing.

#### What if it stops working?

Sites change. We run a daily check of our own and fix breakages quickly. If something looks wrong, open an issue in the **Issues** tab with the run link and we'll look at it.

#### Are prices in rupiah?

Yes, every price is in Indonesian rupiah (IDR). price is what the product sells for now; originalPrice and discountPercent are filled when the shop runs a discount.

#### Why is soldCount a round number?

Tokopedia rounds large sold counts (100+, 10rb+ meaning 10 thousand, 1jt+ meaning 1 million). soldCount is that lower bound as a number, and soldText keeps the site's own wording.

#### What do the shop types mean?

mall is a Tokopedia Mall brand store, powerMerchantPro a shop with the Power Merchant Pro badge, and regular any other shop.

#### Can I get the full description or reviews?

Not in this Actor: it collects what the search results show. Open the product URL for the rest.

### Not included

No personal data: buyer and reviewer names, review texts and contact details are not collected. Product descriptions, variants and stock levels are not in the search results and are not included.

### More Actors from us

- [AliExpress Search Scraper – Products & Prices](https://apify.com/unnoted/aliexpress-product-search)
- [BBB Scraper – Business Ratings & Accreditation](https://apify.com/unnoted/bbb-business-search)
- [Bilibili Scraper – Video Search & Stats API](https://apify.com/unnoted/bilibili-video-scraper)
- [Bumeran Jobs Scraper – LATAM Job Listings](https://apify.com/unnoted/bumeran-job-listings)
- [Foundit Jobs Scraper – India Job Listings API](https://apify.com/unnoted/foundit-job-listings)
- [Google Jobs Scraper – Job Listings API](https://apify.com/unnoted/google-jobs-listings)
- [Google Play Reviews Scraper – App Reviews API](https://apify.com/unnoted/google-play-reviews-scraper)
- [Google Trends Scraper – Interest & Related Queries](https://apify.com/unnoted/google-trends-data)
- [Idealo Scraper – Price Comparison Data](https://apify.com/unnoted/idealo-price-search)
- [Kleinanzeigen Scraper – Listings & Prices](https://apify.com/unnoted/kleinanzeigen-listings-scraper)
- [Mercari Japan Scraper – Listings & Prices API](https://apify.com/unnoted/mercari-japan-search)
- [Resident Advisor Scraper – RA Event Listings](https://apify.com/unnoted/resident-advisor-events)
- [Sainsbury's Scraper – UK Grocery Prices](https://apify.com/unnoted/sainsburys-grocery-search)
- [Workday Jobs Scraper – Any Careers Site](https://apify.com/unnoted/workday-jobs-scraper)
- [Yandex Maps Scraper – Places & Business Data](https://apify.com/unnoted/yandex-maps-places)

***

**Kata kunci (keywords):** Tokopedia Scraper · cari produk Tokopedia · harga produk · jumlah terjual · riset pasar · data toko online · ekspor JSON CSV Excel

# Actor input Schema

## `searchQueries` (type: `array`):

What to search for on Tokopedia, one per line, as you would type it in the search box (e.g. sepatu, iphone 15, beras 5kg). Indonesian terms give the most results. Each search gives up to 6,000 products.

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

Order of the results, as on Tokopedia.

## `priceMin` (type: `integer`):

Only products at or above this price, in rupiah. Leave empty for no minimum.

## `priceMax` (type: `integer`):

Only products at or below this price, in rupiah. Leave empty for no maximum.

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

Only new or only used products.

## `shopType` (type: `string`):

Only products from Tokopedia Mall brand stores, Power Merchant Pro shops, or either.

## `highRatedOnly` (type: `boolean`):

Only products with a rating of 4 or 5 stars.

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

Maximum number of products in total, across all searches. You pay only for products saved.

## Actor input object example

```json
{
  "searchQueries": [
    "sepatu"
  ],
  "sort": "relevance",
  "condition": "any",
  "shopType": "any",
  "highRatedOnly": false,
  "maxItems": 60
}
```

# Actor output Schema

## `results` (type: `string`):

One item per product.

## `runSummary` (type: `string`):

Items saved, inputs done, and how complete each field was.

# 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 = {
    "searchQueries": [
        "sepatu"
    ],
    "maxItems": 60
};

// Run the Actor and wait for it to finish
const run = await client.actor("unnoted/tokopedia-product-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 = {
    "searchQueries": ["sepatu"],
    "maxItems": 60,
}

# Run the Actor and wait for it to finish
run = client.actor("unnoted/tokopedia-product-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "sepatu"
  ],
  "maxItems": 60
}' |
apify call unnoted/tokopedia-product-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,unnoted/tokopedia-product-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/9E7TUqxuEzh4krcIg/builds/Fd4bELjoJ96u6zTyQ/openapi.json
