# Rakuten Japan Reviews Scraper (`piotrv1001/rakuten-japan-reviews-scraper`) Actor

Extract Rakuten Japan product and shop reviews with ratings, Japanese review text, dates, buyer names, helpful votes and photos. Filter by stars, collect photo reviews and monitor new feedback using known review IDs. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/piotrv1001/rakuten-japan-reviews-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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.

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

## Rakuten Japan Reviews Scraper

Collect **product and shop reviews from Rakuten Ichiba Japan** for customer feedback analysis, product research and reputation monitoring. Get original Japanese review text, star ratings, dates, buyer names, helpful votes and available photos in JSON, CSV or Excel.

### Features

- **Product and shop feedback:** process multiple product pages or review-page URLs in one run.
- **Newest reviews first:** collect recent feedback or work through review history.
- **Star filters:** focus on one-star complaints, five-star praise or all ratings.
- **Photo reviews:** collect product reviews containing customer photos.
- **Incremental monitoring:** stop at review IDs from an earlier run.
- **Controlled collection:** set overall and per-product/shop limits, with duplicate removal within a run.

### How it works

1. Add Rakuten Japan product URLs, product-review URLs or shop-review URLs.
2. Choose a review limit and optional filters.
3. Run the scraper and export the dataset. The **Run summary** explains why each target stopped.

The default input collects up to 50 reviews from a sample product:

```json
{
  "startUrls": [
    { "url": "https://review.rakuten.co.jp/item/1/306273_10007430" }
  ],
  "maxItems": 50
}
```

Supported examples:

- Product: `https://item.rakuten.co.jp/soukaidrink/4902102139410/`
- Product reviews: `https://review.rakuten.co.jp/item/1/306273_10007430`
- Shop reviews: `https://review.rakuten.co.jp/shop/4/230284_230284`

Legacy review links ending in `/1.1/` are accepted. Collection always starts at page 1 and uses the actor's filters, regardless of filters or page numbers in the supplied URL. Shop storefront URLs, search URLs and other Rakuten services are not supported.

### Input options

| Input                 | Default        | Description                                                      |
| --------------------- | -------------- | ---------------------------------------------------------------- |
| `startUrls`           | Sample product | Product pages or product/shop review URLs                        |
| `maxItems`            | `50`           | Maximum reviews across all targets                               |
| `maxReviewsPerTarget` | `1000`         | Maximum reviews per product or shop                              |
| `rating`              | `"all"`        | `"all"` or a star rating from `"1"` to `"5"`                     |
| `mediaOnly`           | `false`        | Only product reviews with photos; incompatible with shop targets |
| `stopAtReviewIds`     | `[]`           | Stop a target before a previously collected review ID            |
| `proxyConfiguration`  | Enabled        | Connection settings; keep the default for normal use             |

Targets are processed in input order, so an early target can use the overall limit. To monitor new feedback, pass recent `reviewId` values from your previous run using the same filters. Reviews sharing a date may change order; using several recent IDs is helpful, but collection is not a transactional snapshot.

### Sample output

Illustrative product review; optional fields depend on the source:

```json
{
  "reviewId": "7ab1fe35-950b-4466-a509-902dec8e38c6",
  "reviewType": "product",
  "targetUrl": "https://review.rakuten.co.jp/item/1/306273_10007430",
  "shopId": "306273",
  "shopName": "楽天24 ドリンク館",
  "shopUrl": "https://www.rakuten.co.jp/soukaidrink",
  "productId": "10007430",
  "productName": "い・ろ・は・す 天然水 PET ラベルレス",
  "productUrl": "http://item.rakuten.co.jp/soukaidrink/4902102139410/",
  "rating": 5,
  "title": null,
  "text": "リピーターです。ラベルがないのは分別するのに本当に助かります。",
  "reviewerName": "購入者さん",
  "reviewDate": "2026-09-18",
  "orderDate": "2026-08-21",
  "helpfulVotes": 0,
  "reviewerAgeRange": null,
  "reviewerGender": null,
  "purchaseContext": [],
  "photos": [],
  "sourceUrl": "https://review.rakuten.co.jp/item/1/306273_10007430",
  "scrapedAt": "2026-09-18T12:00:00.000Z"
}
```

Shop records have `reviewType: "shop"` and null product fields. Photos contain `url` and `thumbnailUrl`. Dates preserve the source calendar date; text remains in its original language. `purchaseContext` contains optional source labels such as purchase purpose, recipient or repeat purchase. No verified-purchase status is inferred.

The run summary includes saved counts, stopping reasons, the filtered review count and available product/shop rating summaries. Overall rating totals can differ from filtered counts and distribution totals.

### Pricing

**$2 per 1,000 reviews ($0.002 per review).** One `review` event is charged for each unique review saved within the run. Available photos and product/shop context are included.

| Reviews saved | Review charges |
| ------------- | -------------- |
| 50            | $0.10          |
| 1,000         | $2.00          |
| 10,000        | $20.00         |

Set the maximum charge in Apify to control spending. Separate runs can collect and charge for the same reviews; use known review IDs to stop at previously collected feedback.

### Limitations and troubleshooting

- Only publicly available Rakuten Ichiba Japan reviews are supported. Seller replies and videos are not included.
- Source availability, deleted reviews and changing pagination can affect coverage. The actor does not promise every historical review.
- If a target cannot be processed, other targets are still attempted. The run is marked failed when any target remains unavailable; saved data remains accessible and details are in `RUN-SUMMARY`.
- Reaching a result limit, spending limit or known review ID is a normal stopping condition.
- For customer support, open an issue on this actor's Apify page with the run URL and affected target.

### Related actor

Use [Rakuten Japan Listings Scraper](https://apify.com/piotrv1001/rakuten-japan-listings-scraper) to discover products, then pass product URLs to this actor to collect their reviews.

# Actor input Schema

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

Rakuten Japan product pages, product-review pages or shop-review pages. Targets are processed in input order.

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

Maximum total reviews saved.

## `maxReviewsPerTarget` (type: `integer`):

Limit reviews collected from each product or shop.

## `rating` (type: `string`):

Only collect reviews with this rating, or collect all ratings.

## `mediaOnly` (type: `boolean`):

Product reviews only. Do not combine with shop-review URLs.

## `stopAtReviewIds` (type: `array`):

Stop each target before a review ID collected in an earlier run. Reviews are collected newest first.

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

Connection settings. The default configuration is recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://review.rakuten.co.jp/item/1/306273_10007430"
    }
  ],
  "maxItems": 50,
  "maxReviewsPerTarget": 1000,
  "rating": "all",
  "mediaOnly": false,
  "stopAtReviewIds": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

# 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": [
        {
            "url": "https://review.rakuten.co.jp/item/1/306273_10007430"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/rakuten-japan-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": [{ "url": "https://review.rakuten.co.jp/item/1/306273_10007430" }] }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/rakuten-japan-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": [
    {
      "url": "https://review.rakuten.co.jp/item/1/306273_10007430"
    }
  ]
}' |
apify call piotrv1001/rakuten-japan-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,piotrv1001/rakuten-japan-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/AgAEJreMG3YeWWZO3/builds/bLi3Pcr06KogZgZPz/openapi.json
