# Tokopedia Reviews Scraper (`lergassy/tokopedia-reviews-scraper`) Actor

Extract product reviews from any Tokopedia shop. Get rating, review text, buyer name, date, reviewed product, review photos and videos, and seller replies, filtered by star rating or sorted by recency. Export data, run via API, schedule runs, or integrate with other tools.

- **URL**: https://apify.com/lergassy/tokopedia-reviews-scraper.md
- **Developed by:** [Matvey](https://apify.com/lergassy) (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.05 / 1,000 reviews

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**Tokopedia Reviews Scraper** extracts product reviews from any shop on [Tokopedia](https://www.tokopedia.com), Indonesia's largest e-commerce marketplace — **without the official Tokopedia API**, login, or cookies. Paste a shop URL and get every review as structured **Tokopedia data**: star rating, review text, buyer, date, the product reviewed, photos and videos, and the seller's reply.

Runs read Tokopedia's own data endpoint instead of rendering pages in a browser, so thousands of reviews finish in minutes. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.

### What is Tokopedia Reviews Scraper?

Tokopedia Reviews Scraper is a no-code tool to **scrape Tokopedia reviews** for a whole shop at once. Give it one or more shop URLs, pick a sort order (newest, most helpful, highest or lowest rating) and an optional filter (star rating, or only reviews with photos), and set how many reviews you need. Results come back as clean JSON, downloadable as CSV or Excel.

- **Any shop, any volume**: official stores and regular sellers, 10 reviews or 10,000.
- **Full review fields**: rating, text, buyer name, date, product name and URL, review photos and videos, seller reply and reply date, helpful votes.
- **Filters and sorting** built in.
- **Fast and cheap**: no browser, no proxies needed for small runs.

### What data can Tokopedia Reviews Scraper extract?

| Field | Example |
|---|---|
| `rating` | 5 |
| `reviewText` | sangat wangi dan bagus, rekomendasi |
| `reviewerName` | Q\*\*\*b |
| `reviewTime` | Hari ini |
| `productName` | Makarizo Advisor Hair Recovery Vitamin |
| `productUrl` | https://www.tokopedia.com/makarizo-advisor/… |
| `sellerReply` | Terima kasih atas ulasannya! |
| `reviewImages` | \["https://images.tokopedia.net/…"] |
| `reviewVideos` | \[] |
| `shopName`, `shopID`, `totalReviews` | Makarizo Advisor, 7494500774502172946, 10000 |

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

The Actor uses Apify's **pay-per-event** pricing: you pay only for the review and shop records saved to your dataset — nothing per run or per page. Error rows are never charged.

| Event | Price | Per 1,000 |
|---|---|---|
| Review | $0.0015 | **$1.50** |
| Shop record (name, total reviews) | $0.002 | **$2** |

The Actor uses lightweight HTTP requests, so compute cost is negligible even for large shops. The **Apify Free plan** ($5 monthly credit) covers roughly 3,000 reviews a month. Bronze, Silver and Gold Store tiers get a discount on top.

### How to scrape Tokopedia reviews

1. Open any shop on Tokopedia and copy its URL, for example `https://www.tokopedia.com/makarizo-advisor`.
2. Paste it into **Tokopedia shop URLs**. Add several shops if you like.
3. Set **Max reviews per shop**, choose **Sort reviews by**, and optionally **Filter by rating** (or *With photo/video only*).
4. Click **Start**, then export from the **Storage** tab as JSON, CSV, or Excel.

### ⬇️ Input

[![Tokopedia Reviews Scraper input form on Apify](https://raw.githubusercontent.com/lergassy/apify-actor-assets/main/tokopedia/tokopedia-reviews-scraper-input-form.png)](https://console.apify.com/sign-up)

```json
{
    "startUrls": ["https://www.tokopedia.com/makarizo-advisor"],
    "maxReviewsPerShop": 500,
    "reviewsSort": "recent",
    "ratingFilter": "all"
}
```

| Field | Required | Description |
|---|---|---|
| `startUrls` | yes | Tokopedia shop URLs (`tokopedia.com/{shop-name}`) |
| `maxReviewsPerShop` | no | Default 200 |
| `reviewsSort` | no | `recent`, `helpful`, `highest`, `lowest` |
| `ratingFilter` | no | `all`, `5`…`1`, or `with_media` |

#### Scrape only negative Tokopedia reviews

Set `ratingFilter` to `1` or `2` to pull complaints only — useful for quality monitoring and competitor research.

### ⬆️ Output

[![Tokopedia reviews dataset preview: shop, rating, review text, buyer, date, product](https://raw.githubusercontent.com/lergassy/apify-actor-assets/main/tokopedia/tokopedia-reviews-scraper-output-table.png)](https://console.apify.com/sign-up)

One review per dataset item, plus one shop record (`type: "shop"`) per URL with the shop's total review count.

```json
{
    "type": "review",
    "shopName": "Makarizo Advisor",
    "rating": 5,
    "reviewText": "sangat baik dan wangi sekali rekomendasi",
    "reviewerName": "Q***b",
    "reviewTime": "Hari ini",
    "productName": "Makarizo Advisor Hair Recovery Vitamin",
    "productUrl": "https://www.tokopedia.com/makarizo-advisor/…",
    "sellerReply": "",
    "reviewImages": ["https://images.tokopedia.net/img/…"],
    "totalLikes": 0
}
```

### Use cases for Tokopedia review data

#### Seller and brand monitoring

Watch your own shop's reviews and reply times; schedule daily runs and get alerted on 1–2 star reviews.

#### Competitor research

Compare what buyers praise and complain about across competing shops in your category.

#### Indonesian-language sentiment analysis

Feed structured Bahasa Indonesia reviews into sentiment models and dashboards.

#### Product-quality reports for agencies

Build reputation reports for e-commerce clients without manual copy-paste.

### Integrations and Tokopedia reviews API

Run the Actor from code with the [Apify API](https://docs.apify.com/api/v2) and the JavaScript or Python client, or without code via Google Sheets, Slack, n8n, Make, Zapier, and webhooks. It also works with LangChain, LlamaIndex, and the Apify MCP server for AI agents.

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lergassy/tokopedia-reviews-scraper").call(run_input={
    "startUrls": ["https://www.tokopedia.com/makarizo-advisor"],
    "maxReviewsPerShop": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["rating"], item["reviewText"])
```

### 🤖 For AI Agents & LLM Apps

Compact reference for agents calling this Actor through the [Apify MCP server](https://mcp.apify.com) or the Apify API (`lergassy/tokopedia-reviews-scraper`).

**Purpose:** returns the product reviews of any Tokopedia store — Indonesia's
largest marketplace — as one row per review, with the seller's replies attached.
Use it to answer "what do buyers complain about in this shop", "which products get
the worst ratings" and "does this seller answer complaints".

**Minimal input:**

```json
{ "startUrls": ["https://www.tokopedia.com/makarizo-advisor"], "maxReviewsPerShop": 100 }
```

**Output:** one row per review — `type`, `shopID`, `shopName`, `shopUrl`,
`reviewId`, `rating`, `reviewText`, `reviewTime`, `reviewerName`, `reviewerId`,
`isAnonymous`, `totalLikes`, `sellerReply`, `sellerReplyTime`, `productName`,
`productUrl`, `productId`, `productImage`, `reviewImages`, `reviewVideos`. The
dataset also carries one `shop` row per store with `totalReviews` and
`reviewsScraped`, which is how you tell a store with few reviews from a run that
hit its cap.

**Behaviors an agent should know:**

- Input is store URLs, not product URLs or search queries. The Actor resolves the
  store id from the URL and walks the store's whole review feed.
- `maxReviewsPerShop` defaults to 200 and is the only real cost control. A store
  with 10,000 reviews will happily return all of them if you raise it.
- `ratingFilter` narrows to a single star rating or to `with_media` (reviews that
  carry photos or video); `reviewsSort` chooses `recent`, `helpful`, `highest` or
  `lowest`. Filter through these rather than post-filtering rows, so the cap is
  spent on rows you want.
- Review text is written by Indonesian shoppers and is mostly in Indonesian, often
  with slang and abbreviations. Translate before sentiment scoring.
- Buyer names arrive masked (`R***a`) when the reviewer chose to stay anonymous;
  `isAnonymous` marks those rows.
- No login and no API key: the Actor reads the store's own review endpoint.

### ❓ FAQ

#### Is it legal to scrape Tokopedia reviews?

The Actor extracts only publicly visible review data; Tokopedia's robots.txt explicitly allows crawling review pages, and no private buyer data is collected. Review the site's terms and consult a lawyer for your specific use case.

#### Can I use Tokopedia Reviews Scraper with the Apify API?

Yes — see the **API** tab for ready snippets in JavaScript, Python, and cURL.

#### Can I use it through an MCP server?

Yes. Connect the Apify MCP server and your AI agent can call this Actor as a tool.

#### Can I integrate it with other apps?

Yes — Google Sheets, Slack, n8n, Make, Zapier, webhooks, or any HTTP client.

#### Which shops work?

Any Tokopedia shop URL of the form `tokopedia.com/{shop-name}` — official stores and regular sellers.

#### The reviews are in Indonesian. Can I translate them?

The Actor returns original text; add a translation step or an LLM in your workflow.

#### Do I need proxies?

Small runs work without them. For large volumes keep Apify Proxy enabled (on by default).

#### Can I scrape product listings and prices too?

Not with this Actor — it is focused on reviews. A Tokopedia products and prices scraper is planned; request it in the Issues tab.

### Your feedback

Missing a field or hitting an error? Open an issue in the **Issues** tab — requests are welcome and shipped fast. If the Actor saved you time, a review helps other sellers find it.

### You might also like

| Actor | What it does |
|---|---|
| [Agoda Reviews Scraper](https://apify.com/lergassy/agoda-reviews-scraper) | Hotel reviews from Agoda, including the Booking.com reviews shown on Agoda |
| [Google Flights Scraper](https://apify.com/lergassy/google-flights-scraper) | Flight prices, airlines, stops and times by route and dates |
| [New Business Leads Monitor](https://apify.com/lergassy/us-business-filings) | Daily feed of newly registered US businesses and funded startups, with phone, email and lead score |
| [Email & Phone Verifier](https://apify.com/lergassy/email-phone-verifier) | Checks e-mails and phone numbers in bulk: deliverability, throwaway and role flags, numbering plan, US state and time zone |

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more Tokopedia shop links — open a shop on <a href='https://www.tokopedia.com' target='_blank'>Tokopedia</a> and copy its address. Example: <code>https://www.tokopedia.com/makarizo-advisor</code>

## `maxReviewsPerShop` (type: `integer`):

Limit how many reviews are scraped per shop

## `reviewsSort` (type: `string`):

Order in which reviews are scraped

## `ratingFilter` (type: `string`):

Only scrape reviews with a given star rating, or only reviews that include photos/videos

## `proxyConfiguration` (type: `object`):

Proxy settings. Recommended for larger runs.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.tokopedia.com/makarizo-advisor"
  ],
  "maxReviewsPerShop": 200,
  "reviewsSort": "recent",
  "ratingFilter": "all",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `reviews` (type: `string`):

One row per product review of a Tokopedia store: rating, text, buyer, date, reviewed product, attached photos and videos, and the seller's reply. Plus one summary row per shop.

# 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 = {
    "startUrls": [
        "https://www.tokopedia.com/makarizo-advisor"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lergassy/tokopedia-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": ["https://www.tokopedia.com/makarizo-advisor"] }

# Run the Actor and wait for it to finish
run = client.actor("lergassy/tokopedia-reviews-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.tokopedia.com/makarizo-advisor"
  ]
}' |
apify call lergassy/tokopedia-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hRgERnbhKcw8v3LaO/builds/0U55QdoEO6CyxsK7f/openapi.json
