Rakuten - Products, Variants & Reviews avatar

Rakuten - Products, Variants & Reviews

Pricing

from $1.50 / 1,000 product results

Go to Apify Store
Rakuten - Products, Variants & Reviews

Rakuten - Products, Variants & Reviews

Scrape Rakuten Ichiba (rakuten.co.jp): name, JPY price, reference price and discount, Rakuten points, shipping, stock, shop, genre, tags, images, size/colour variants with per-variant price, specs, and customer reviews with star breakdown and shop replies. Search or paste URLs; incremental mode.

Pricing

from $1.50 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

9 days ago

Last modified

Categories

Share

Rakuten Japan Scraper: Products, Variants & Reviews

Rakuten Japan Scraper turns Rakuten Ichiba (楽天市場, rakuten.co.jp), Japan's largest online marketplace of independent shops, into clean structured rows. Search by keyword (optionally narrowed with a tag), genre or shop code the same way Rakuten's own filters do, or paste any product, review, category, shop or search link you already have. Every product comes back with price, the reference ("was") price and discount, Rakuten points, shipping and delivery, stock, the selling shop's own details, category, tags, images, size and colour variants, full specifications and, on request, individual customer reviews with the star breakdown and shop replies. Export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Three ways to find products, plus a keyword refinement. Keyword (optionally narrowed further with a tag), genre or shop code searches built with Rakuten's own filters, or paste any Rakuten Ichiba link you already have: search, category, shop, product or review.
  • One flat record per product, about 95 named fields. Price, points, shipping, stock, shop, taxonomy, media, specs and reviews all in a single row, plus the pieces that only exist per size/colour variant.
  • Marketplace aware. Every product carries the id, name, rating and review count of the independent shop that actually sells it, not just Rakuten's own catalogue metadata.
  • The reference ("was") price and discount, where Rakuten actually publishes them. Only the product page carries the strike-through price, never invented from a search result card.
  • Rakuten's own signals carried through untouched. Point multipliers, the Super DEAL flag and the 39-shop free-shipping marker travel with the price, not just a generic "on sale" flag.
  • Reviews on demand. The star histogram, individual review text, shop replies and Rakuten's own AI review summary, only fetched (and charged) when you turn them on.
  • Built for monitoring. Incremental mode returns only new and changed products on a recurring run, and a refused run fails loudly instead of quietly returning an empty dataset.

Use Cases

  • Price and stock monitoring: track a shop's whole catalogue or a keyword search daily and get only the products that actually changed.
  • Assortment and catalogue research: map genres, tags and shop catalogues with price tiers, size and colour variants.
  • Review mining: collect ratings, review text and shop replies to analyse customer sentiment per product or per shop.
  • Marketplace and competitor tracking: compare price, points and shipping terms across different shops selling similar products.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
id"412233_10000482"
itemCode"10000482"
url"https://item.rakuten.co.jp/paletuft-zakka/mug-classic-01/"
name"パレタフト ハンドメイド陶器マグカップ 300ml 北欧デザイン"
brand"PALETUFT"
shopId"412233"
shopName"パレタフト雑貨店"
shopUrlCode"paletuft-zakka"
price2160
currency"JPY"
originalPrice2880
discountPercent25.0
pointCount21
shippingFee0
isFreeShippingtrue
availability"InStock"
genrePath["生活雑貨・キッチン用品", "食器", "マグカップ"]
tags[{"id": "9001234", "name": "北欧雑貨", "groupName": "スタイル"}]
variants[{"variantId": "77021", "options": ["ネイビー"], "price": 2160, "originalPrice": 2880}]
rating4.39
reviewCount96
isSponsoredfalse
sourceUrl"https://search.rakuten.co.jp/search/mall/mug/?s=2"

Turning on Fetch product details adds description, salesDescription, catchCopy, the full attributes specification table, shippingCarriers, customizationOptions and shop breadcrumbs. Turning on Fetch reviews adds the individual reviews[] array (each row carrying reviewId, rating, title, body, a public display author nickname, postedAt, verifiedPurchase, helpfulCount, the variantInfo purchased and the shop's public shopReply), the 1 to 5 star ratingBreakdown and Rakuten's own aiReviewSummary and aiReviewTopics. Turning on Incremental mode adds changeType (NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED), changedFields, firstSeenAt and lastSeenAt to every row; these four fields are absent entirely when incremental mode is off.

How to Use

  1. Pick a mode: search (build a search from keywords, genres, tags or shop codes) or url (paste Rakuten links you already have).
  2. Fill in the fields for that mode, and switch on Fetch product details and/or Fetch reviews if you want the reference price, specs, variants or individual reviews.
  3. Set Max products to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword with Rakuten's own filters:

{
"mode": "search",
"queries": ["コーヒー豆"],
"genreIds": ["100316"],
"minPrice": 1000,
"maxPrice": 5000,
"minRating": "4",
"condition": "new",
"sortBy": "price-asc",
"maxItems": 200
}

Paste links you already have (a search page and a category page):

{
"mode": "url",
"urls": [
"https://search.rakuten.co.jp/search/mall/coffee/?s=2",
"https://www.rakuten.co.jp/category/100316/"
],
"maxItems": 100
}

Walk one shop's whole catalogue with details and reviews:

{
"mode": "search",
"shopUrlCodes": ["sawaicoffee-tea"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerItem": 30,
"maxItems": 50
}

Daily monitoring of the same search:

{
"mode": "search",
"queries": ["コーヒー豆"],
"incrementalMode": true,
"stateKey": "coffee-daily-watch",
"maxItems": 0
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/rakuten-ichiba-scraper").call(
run_input={"mode": "search", "queries": ["コーヒー豆"], "maxItems": 50}
)
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"], product["shopName"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/rakuten-ichiba-scraper').call({
mode: 'search', queries: ['コーヒー豆'], maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

How far a search reaches

Rakuten caps how deep any single search can be walked: the result pages report the reachable slice themselves (often a few hundred products for a broad keyword, even when millions match), and the walk stops there. To go wider, split the search: add genres, tags, price bands or shop codes. Result pages carry about 45 products each. Result pages can also include a handful of paid placements even on a sorted run, so a price-sorted page is not perfectly monotonic; those rows are marked isSponsored: true so you can filter or keep them deliberately.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one specific interrupted run: paste its run or dataset ID and this run walks the same search or URLs again from the start, skipping every product id that run already collected as it re-encounters it, so you don't pay twice. A page that turns out to be entirely already-collected does not stop the walk early; it keeps going to the same natural end (or cap) a fresh run would reach. The run also saves its own progress as it goes, so a platform migration or a Resurrect of that same run continues on its own, without re-collecting or re-charging anything already pushed.
  • Incremental mode (incrementalMode) is for recurring monitoring: schedule the same search or URLs daily and later runs return only what changed. Each product is classified NEW, UPDATED (with changedFields naming exactly what moved, for example price or pointCount), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED, or EXPIRED. REAPPEARED only fires for a product whose stored state was previously marked gone, which itself only happens once a prior run was allowed to mark it EXPIRED. EXPIRED itself is produced only when Emit expired is on and this run's scan of the tracked search was complete: nothing capped by Max products, nothing cut short of its natural end by Max pages, Resume not used, at least one product actually scanned, and no page refused. A partial or capped run never tombstones a product that simply wasn't reached yet. With incremental mode off, every row is the plain base record, with no changeType, changedFields, firstSeenAt or lastSeenAt at all.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where products should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch builds a search from keywords, genres, tags or shop codes; url takes Rakuten links you already have.
queriesarray(none)Search keywords (search mode only). Japanese and English both work; each keyword runs its own paginated search. Prefill: ["コーヒー"].
genreIdsarray(none)Rakuten genre (category) IDs to browse, or to narrow a keyword search to. Prefill: empty.
tagIdsarray(none)Brand and specification facet tag IDs. Needs at least one keyword; ignored if a genre is also set, since Rakuten can't apply both at once. Prefill: empty.
shopUrlCodesarray(none)Shop codes whose whole catalogue should be walked. Prefill: empty.
shopIdinteger(none)Restrict a keyword or genre search to one numeric shop ID.
sortBystringstandardSearch mode only, and has no effect on a shop-code walk. Result ordering applied by Rakuten itself: standard (relevance), price, price plus shipping, newest, most reviewed, or highest rated.
minPriceinteger(none)Minimum price in yen (search mode only).
maxPriceinteger(none)Maximum price in yen (search mode only).
minRatingstring(empty; any rating)Search mode only, and has no effect on a shop-code walk. Only return products rated at least this highly: 3.5, 4 or 4.5.
conditionstringanyNew only, used only, or any (search mode only).
urlsarray(none)Rakuten URLs to walk or fetch directly (url mode only). Prefill: one sample search URL.
maxItemsinteger50Cap on products returned across every keyword, genre, shop and URL combined. 0 = unlimited.
maxPagesinteger(none)Optional bound on result pages per scope. Prefill: 0 (no page limit).
fetchDetailsbooleanfalseAdds description, specs, images, every size/colour variant and the reference ("was") price and discount percent. Charges the enrichment surcharge.
fetchReviewsbooleanfalseAdds individual reviews, the star breakdown and Rakuten's own AI review summary. Charges the same surcharge, once per product, whether or not Fetch product details is also on.
maxReviewsPerIteminteger30Reviews to return per product when Fetch reviews is on. 0 returns every review a product has.
resumeFromRunIdstring(none)Continue one specific interrupted run; products it already collected are skipped.
incrementalModebooleanfalseReturn only new and changed products by default on a recurring run over the same search or URLs (reappeared and expired products need Emit expired too, plus a complete scan).
stateKeystring(none)Name or deliberately share an incremental-mode monitoring campaign.
emitUnchangedbooleanfalseAlso return (and bill) products that have not changed since the last run.
emitExpiredbooleanfalseAlso return (and bill) products no longer found, once a run has fully scanned the tracked search.
proxyobject{"useApifyProxy": true}Connection settings. The default group works on every plan.
mcpConnectorsarray(none)Optional: send a summary of each product to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which product pages are created.
maxNotifyListingsinteger50Cap on products written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"id": "412233_10000482",
"itemCode": "10000482",
"manageNumber": "mug-classic-01",
"url": "https://item.rakuten.co.jp/paletuft-zakka/mug-classic-01/",
"itemUrl": "https://item.rakuten.co.jp/paletuft-zakka/mug-classic-01/",
"name": "パレタフト ハンドメイド陶器マグカップ 300ml 北欧デザイン",
"subtitle": "ギフト箱入り 2色展開",
"catchCopy": "手になじむシンプルなマグカップ",
"brand": "PALETUFT",
"shopId": "412233",
"shopName": "パレタフト雑貨店",
"shopUrlCode": "paletuft-zakka",
"shopUrl": "https://www.rakuten.co.jp/paletuft-zakka/",
"shopRating": 4.6,
"shopReviewCount": 3820,
"shopIsExcellent": true,
"shopIs39": true,
"price": 2160,
"currency": "JPY",
"priceMin": 2160,
"priceMax": 2160,
"hasPriceRange": false,
"originalPrice": 2880,
"originalPriceLabel": "メーカー希望価格",
"discountPercent": 25.0,
"pointCount": 21,
"isSponsored": false,
"isSoldOut": false,
"availability": "InStock",
"shippingFee": 0,
"isFreeShipping": true,
"genreId": "300258",
"genrePath": ["生活雑貨・キッチン用品", "食器", "マグカップ"],
"tags": [{ "id": "9001234", "name": "北欧雑貨", "groupId": "1000900", "groupName": "スタイル" }],
"variants": [
{ "variantId": "77021", "options": ["ネイビー"], "price": 2160, "originalPrice": 2880, "pointCount": 21 },
{ "variantId": "77022", "options": ["アイボリー"], "price": 2160, "originalPrice": 2880, "pointCount": 21 }
],
"hasMultipleVariants": true,
"description": "手になじむ丸みのあるフォルムのマグカップです。ギフト箱にお入れしてお届けします。",
"attributes": [{ "name": "素材", "value": "陶器" }, { "name": "容量", "value": "300 ml" }],
"images": ["https://tshop.r10s.jp/paletuft-zakka/cabinet/mug-classic-01/main.jpg"],
"imageCount": 1,
"rating": 4.39,
"reviewCount": 96,
"ratingBreakdown": [
{ "stars": 5, "count": 58 }, { "stars": 4, "count": 24 }, { "stars": 3, "count": 9 },
{ "stars": 2, "count": 3 }, { "stars": 1, "count": 2 }
],
"aiReviewSummary": "使いやすいサイズ感とデザインが好評です。",
"reviews": [
{
"reviewId": "a1b2c3d4-e5f6-4789-a0b1-c2d3e4f5a6b7",
"rating": 5,
"title": "とても気に入りました",
"body": "軽くて持ちやすく、毎日のコーヒーに使っています。",
"author": "コーヒー好きさん",
"postedAt": "2026/06/14",
"verifiedPurchase": true,
"helpfulCount": 4,
"variantInfo": "ネイビー",
"shopReply": "ご購入ありがとうございます。",
"images": []
}
],
"reviewsReturned": 1,
"detailFetched": true,
"reviewsFetched": true,
"scrapedAt": "2026-09-15T03:00:00+00:00",
"sourceUrl": "https://search.rakuten.co.jp/search/mall/mug/?s=2",
"resultPage": 1,
"resultPosition": 3
}

Plan Requirement

The default proxy setting works out of the box, and the run automatically retries with a different connection when one is refused. For large or frequent runs, the residential proxy group gives more headroom; pick it under Connection.

FAQ

How much does it cost?

You pay per product returned, plus a once-per-product surcharge when Fetch product details and/or Fetch reviews are on (a product enriched with both is still charged only once, not twice). A pasted product or review link's own page is read and included at no surcharge either way; only the other half (detail or reviews) is charged if its toggle is on. The Pricing tab shows the current rates. Use Max products to cap the cost of any run.

This actor collects only publicly available product and review data. You are responsible for how you use it: follow Rakuten's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product names, prices and specifications are generally facts, but images, descriptions and shop-authored text may be subject to third-party rights.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated products by default, and unchanged ones are not billed. Turn on Emit expired too, once a run scans the whole scope end to end, to also get expired products and, on a later run, reappeared ones.

Does this cover Rakuten in other countries?

No. This actor covers rakuten.co.jp (Rakuten Ichiba, Japan) only. Rakuten's other country sites, including the cash-back and coupon portal at rakuten.com and the separate marketplaces in France and Taiwan, are different platforms with their own catalogues, currencies and URL grammar, not a mode of this actor.

Why did my run fail instead of returning an empty dataset?

If a run returns nothing and some pages could not be read, the run stops with a clear message so "nothing matched" is never confused with "nothing could be read". Run it again in a few minutes, or select a different proxy group. A genuinely empty search where every page was actually read still finishes successfully with zero rows.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

🔗 Want more Rakuten data?

Pair this actor with these related scrapers from the same team:

🏨 Rakuten Travel Scraper
Scrape Rakuten Travel, Japan's largest domestic hotel-booking site, by prefecture...
👗 ZOZOTOWN
Scrape ZOZOTOWN (zozo.jp), Japan's largest fashion marketplace: name, brand, JPY price...
🧩 Isetan Mitsukoshi
Scrape the Isetan Mitsukoshi department store online shop (mistore.jp). Search by keyword...
🛒 Nitori Japan Furniture & Home Goods Scraper
Scrape Nitori Japan (nitori-net.jp) furniture and home goods by keyword, category or...
🛒 Mercari Japan Scraper
From $0.80/1K. Scrape Mercari Japan listings, sellers and reviews at scale. Extract...
🧩 Suumo.jp Scraper
Scrape Suumo, Japan's largest property portal: rental rooms with rent, management fees...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.