# Rakuten Product Scraper (`agentx/rakuten-product-scraper`) Actor

Search Rakuten Ichiba, Japan's merchant-driven online shopping mall, by keyword. Built for marketplace assortment and shop-level product research with normalized titles, JPY prices, images, seller signals, availability, URLs, query, and rank.

- **URL**: https://apify.com/agentx/rakuten-product-scraper.md
- **Developed by:** [AgentX](https://apify.com/agentx) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.59 / 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 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

## Rakuten Product Scraper — Japan Marketplace Search API

Search Rakuten Ichiba by keyword and export normalized Japan marketplace records with current JPY prices, ratings, reviews, shop context, coupon or points promotions, shipping, delivery, badges, sponsored status, images, ranks, and source links.

> **Affiliate disclosure:** Some links in this README include the `fpr=aiagentapi` referral parameter. If you create or use an Apify account through one of those links, AgentX may receive a commission at no additional cost to you.

[![Open Actor](https://img.shields.io/badge/Open_Rakuten_Product_Scraper-bf0000?style=for-the-badge)](https://apify.com/agentx/rakuten-product-scraper?fpr=aiagentapi) [![All APIs](https://img.shields.io/badge/Explore_AgentX_APIs-bf0000?style=for-the-badge)](https://apify.com/agentx?fpr=aiagentapi)

***

### Why Choose This API

#### Merchant-led Japan marketplace data

Rakuten Ichiba results can vary by merchant, listing, promotion, shipping, delivery, and source ranking. The Actor preserves this shop-level context rather than rewriting it as one retailer-owned catalog.

#### Marketplace-ready product coverage

Delivered records can include price, currency, rating, review count, shop context, promotions, shipping cost, delivery text, badges, condition, images, sponsored status, brand, description, specifications, GTIN, and model.

#### Verifiable records without fabricated values

Unavailable source values remain empty instead of being guessed. Each delivered row retains the keyword, market code, rank, product URL, source URL, and processing time needed for review.

#### Auditable normalized records

All results use the shared 58-field AgentX shopping schema and retain query, rank, product URL, source URL, country code, and processing time.

***

### Quick Start Guide

1. [Open Rakuten Product Scraper](https://apify.com/agentx/rakuten-product-scraper?fpr=aiagentapi).
2. Enter a product, brand, or category `keyword`.
3. Keep `country` set to `Japan`, set `max_results` to `10` for the minimum 10-result test, and click **Start**.
4. Review and export the default dataset.

```json
{
  "keyword": "wireless mouse",
  "country": "Japan",
  "max_results": 10
}
```

`max_results` is an upper bound. Rakuten may expose fewer usable public products for a query.

***

### Input Parameters

| Parameter | Type | Required | Limits | Description |
| --- | --- | --- | --- | --- |
| `keyword` | string | Yes | Non-empty | Product, brand, category, or search phrase to extract Rakuten product data |
| `country` | string | Yes | `Japan` | Rakuten country/site setting; this Actor currently supports Japan |
| `max_results` | integer | Yes | 10–10,000 | Maximum number of Rakuten product records to return |

This Actor is fixed to Rakuten and does not expose a `platforms` input. Use [All Shopping Scraper](https://apify.com/agentx/all-shopping-scraper?fpr=aiagentapi) for supported multi-platform searches.

***

### Output Data Schema

The default dataset contains 58 fields. Source-dependent fields are nullable.

| Group | Fields |
| --- | --- |
| Images and identity | `main_image`, `image_urls`, `title`, `brand`, `badges`, `category`, `breadcrumbs`, `description`, `features`, `product_id`, `sku`, `gtin`, `mpn`, `model` |
| Product details | `specifications`, `manufacturer`, `origin`, `energy_class`, `included`, `condition`, `release_date`, `variant_group`, `variants` |
| Price and promotions | `price`, `was_price`, `unit_price`, `currency`, `price_text`, `discount_pct`, `discount_text`, `promo_text`, `installment_text` |
| Availability and demand | `stock_status`, `stock_text`, `sales_text`, `buy_limit`, `rating`, `review_count` |
| Seller and fulfillment | `seller`, `seller_url`, `seller_score`, `shipping_text`, `shipping_cost`, `delivery_text`, `pickup_text`, `return_text`, `return_days`, `warranty_text` |
| Traceability | `platform`, `site`, `country`, `product_url`, `source_url`, `query`, `rank`, `sponsored`, `processor`, `processed_at` |

Example schema record:

```json
{
  "main_image": "https://thumbnail.image.rakuten.co.jp/@0_mall/example/item.jpg",
  "title": "Wireless Mouse Silent Bluetooth 2.4GHz",
  "brand": "Example Brand",
  "product_id": "example-shop/example-item",
  "gtin": "4900000000000",
  "model": "EX-MOUSE-01",
  "price": 2480.0,
  "currency": "JPY",
  "price_text": "¥ 2,480",
  "promo_text": "500 ポイント (5倍)",
  "rating": 4.6,
  "review_count": 1248,
  "seller": "example-shop",
  "shipping_text": "送料無料",
  "shipping_cost": 0.0,
  "delivery_text": "12時までの注文で当日発送",
  "condition": "中古",
  "platform": "rakuten",
  "site": "search.rakuten.co.jp",
  "country": "JP",
  "product_url": "https://item.rakuten.co.jp/example-shop/example-item/",
  "source_url": "https://search.rakuten.co.jp/search/mall/wireless+mouse/",
  "query": "wireless mouse",
  "rank": 1,
  "sponsored": false,
  "processor": "https://apify.com/agentx/rakuten-product-scraper",
  "processed_at": "2026-07-20T00:00:00.000Z"
}
```

This example illustrates the schema and does not represent a live price, shop, promotion, condition, or delivery promise.

***

### Integration Examples

#### Dataset export workflow

Run the Actor from its Store page, inspect the default dataset, and use the export options available through Apify. The completed run exposes its dataset reference for downstream workflows.

#### Shop and offer monitoring

Keep the keyword and result limit stable across scheduled runs. Compare `product_id` or `product_url`, and retain `seller`, `promo_text`, `shipping_text`, `query`, `rank`, `source_url`, and `processed_at` when evaluating changes.

#### Actor API and MCP

The immutable Actor ID is `qAKYGWwODtMikGxLd`. Use it when an integration should remain stable even if a Store slug changes. The same minimum test can be sent with the Apify API:

```json
{
  "keyword": "wireless mouse",
  "country": "Japan",
  "max_results": 10
}
```

Call `POST https://api.apify.com/v2/acts/qAKYGWwODtMikGxLd/runs?token=YOUR_APIFY_TOKEN`, or use the [Actor API page](https://apify.com/agentx/rakuten-product-scraper/api?fpr=aiagentapi) to generate client examples. Apify's [Model Context Protocol integration](https://docs.apify.com/integrations/mcp) can expose the Actor to compatible AI clients; pass the same three public inputs and validate the returned default dataset. Keep API tokens private and never paste them into datasets, logs, or support messages.

***

### Pricing & Cost Calculator

Each Actor start has an `apify-actor-start` event price of $0.01. Delivered records use the `result` event. The table shows the exact cost of the same 10-result example used throughout this README:

| Account tier | Start | Per delivered result | 10-result total |
| --- | ---: | ---: | ---: |
| FREE | $0.01000 | $0.00510 | $0.06100 |
| BRONZE | $0.01000 | $0.00493 | $0.05930 |
| SILVER | $0.01000 | $0.00476 | $0.05760 |
| GOLD | $0.01000 | $0.00459 | $0.05590 |
| PLATINUM | $0.01000 | $0.00459 | $0.05590 |
| DIAMOND | $0.01000 | $0.00459 | $0.05590 |

Billing follows delivered result events, not the requested maximum. Check the live Store pricing panel before large runs.

***

### Compared with alternatives

| Approach | Best fit | Trade-off |
| --- | --- | --- |
| This Actor | Repeatable Rakuten Ichiba keyword research with normalized Japan rows, API access, schedules, and source traceability | Merchant, promotion, shipping, and delivery fields vary by listing and run |
| Manual Rakuten browsing | Inspecting a handful of products and shops interactively | Slow to repeat and difficult to compare as structured history |
| A custom collector | Teams that need bespoke merchant or category logic and can own maintenance | Higher engineering, monitoring, and source-change burden |
| A broad multi-market Actor | One workflow across supported shopping sources | Use [All Shopping Scraper](https://apify.com/agentx/all-shopping-scraper?fpr=aiagentapi) when platform selection matters more than a focused Rakuten contract |

Rakuten Ichiba is a merchant marketplace; a displayed shop, promotion, shipping message, or delivery estimate remains source-provided context rather than independent verification. For a fair trial, run the documented minimum test and inspect source URLs and nullable field coverage before scheduling larger collections.

***

### Use Cases & Applications

- Monitor current JPY prices and source ranking for product queries.
- Compare shop visibility, ratings, reviews, coupons, points, shipping, and delivery text.
- Identify source-marked sponsored rows, badges, and used-item condition.
- Enrich Japanese product catalogs with titles, images, identifiers, brand, model, and source URLs.
- Build auditable Rakuten datasets without inventing missing inventory or offer values.

The output does not verify merchant identity, stock, delivery performance, promotion eligibility, product authenticity, or future prices.

***

### FAQ

#### What does each delivered record represent?

Each row represents one public Rakuten Ichiba product result found for the submitted keyword during that run. It is not a historical snapshot or a guarantee of a future shop offer.

#### Can a run return fewer records than `max_results`?

Yes. `max_results` is an upper bound; the final count depends on the public products available for the query at run time.

#### Why is `stock_text` empty?

Rakuten Ichiba does not expose a reliable inventory value for every public result. Shipping and delivery text are separate source signals and do not prove stock.

#### Is the seller a verified merchant name?

Treat the delivered shop value as source-provided context, not independent identity verification.

#### Is `country` configurable beyond Japan?

No. The current public input supports Japan only.

#### Is the dataset historical?

No. Save successive datasets if you need price, promotion, shipping, or ranking history.

***

### Legal & Compliance

Use the Actor and exported data only when permitted by applicable law, contractual terms, [Rakuten Ichiba's official shopping terms](https://www.rakuten.co.jp/doc/info/rule/ichiba_shopping.html), and your own compliance requirements. The Actor does not grant intellectual-property, resale, privacy, or source-site usage rights. Users remain responsible for inputs, retention, and downstream use. Do not treat a collected price, rank, shop label, promotion, shipping message, or delivery estimate as a future guarantee.

***

### Related Tools

#### Related product scrapers

- [AliExpress Product Scraper](https://apify.com/agentx/aliexpress-product-scraper?fpr=aiagentapi)
- [Bol Product Scraper](https://apify.com/agentx/bol-product-scraper?fpr=aiagentapi)
- [Kakaku Product Scraper](https://apify.com/agentx/kakaku-product-scraper?fpr=aiagentapi)

#### Enrich with AgentX

- [All Shopping Scraper](https://apify.com/agentx/all-shopping-scraper?fpr=aiagentapi)
- [All Jobs Scraper](https://apify.com/agentx/all-jobs-scraper?fpr=aiagentapi)
- [All Property Scraper](https://apify.com/agentx/all-property-scraper?fpr=aiagentapi)

***

### Support & Community

- [Open the Actor](https://apify.com/agentx/rakuten-product-scraper?fpr=aiagentapi)
- [Explore AgentX APIs](https://apify.com/agentx?fpr=aiagentapi)
- Telegram community: [@Apify\_Actor](https://t.me/Apify_Actor)
- Direct support: [@AiAgentApi](https://t.me/AiAgentApi)

When reporting an issue, include the input, run identifier, affected `source_url`, and a small sample. Never publish private tokens.

*Last updated: July 21, 2026. Maintained by AgentX.*

# Actor input Schema

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

Product, brand, category, or search phrase to extract Rakuten product data

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

Rakuten country/site setting. This actor currently supports Japan.

## `max_results` (type: `integer`):

Maximum number of Rakuten product records to return

## Actor input object example

```json
{
  "keyword": "wireless mouse",
  "country": "Japan",
  "max_results": 10
}
```

# Actor output Schema

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

Product records returned by this actor with normalized fields and source URLs.

# 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 = {
    "keyword": "wireless mouse",
    "country": "Japan",
    "max_results": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentx/rakuten-product-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 = {
    "keyword": "wireless mouse",
    "country": "Japan",
    "max_results": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("agentx/rakuten-product-scraper").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 '{
  "keyword": "wireless mouse",
  "country": "Japan",
  "max_results": 10
}' |
apify call agentx/rakuten-product-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qAKYGWwODtMikGxLd/builds/3FAUVgHtlGZapRoOX/openapi.json
