Rakuten Scraper | Japan Products, Shops and Rankings avatar

Rakuten Scraper | Japan Products, Shops and Rankings

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Rakuten Scraper | Japan Products, Shops and Rankings

Rakuten Scraper | Japan Products, Shops and Rankings

Collect Rakuten Ichiba products, JPY prices, shop details, rankings and categories from Japan. Export structured rows, with optional review snippets. Pay per delivered row plus a small start fee.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

15

Total users

6

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Rakuten Scraper

Collect Rakuten Ichiba product, shop, ranking and category data from Japan as rows you can export or read through the API.

  • Search Japanese keywords or supply Rakuten Ichiba page URLs.
  • Compare JPY prices, shipping information, points and review totals.
  • Collect shop details, rankings, category names and search suggestions.
  • Add review snippets as separate rows when available.
  • Pay only for the rows you receive: $3.00 per 1,000 rows on the Free plan plus a small start fee.

What does Rakuten Scraper do?

Rakuten Scraper collects publicly available data from Rakuten Ichiba at rakuten.co.jp. Use it for price tracking, catalog research or comparing shops. It does not cover the global rakuten.com marketplace and is not an official Rakuten product.

  • Search: use keyword or searchQueries; narrow results with genreId, prices or filters.
  • Items: supply itemUrl, or shopUrlCode with manageNumber.
  • Shops: use shopUrlCode to collect a shop row and product rows found on its page.
  • Rankings: choose ranking, optionally with a genre and ranking period.
  • Categories: choose categories for genre names and hierarchy information.
  • Suggestions: choose suggest with a keyword for autocomplete suggestions.

enrichReviews is off by default. Each returned review snippet becomes a separate billed row, sharing the input's row allowance with products. Shop disclosure enrichment, enrichLead, is on by default and adds available business information to the shop row.

What data can you extract from Rakuten?

Fields depend on the page and mode. These examples illustrate the format, not a current price or guaranteed result.

Product and ranking rows

FieldDescriptionExample
rowTypeEntity typeproduct
idIdentifier within the row typeexample-shop:bottle-1
titleProduct titleStainless steel bottle
priceListed price2050
currencyPrice currencyJPY
itemIdRakuten item identifier10005699
manageNumberItem code within the shopbottle-1
shopUrlCodeShop code in its URLexample-shop
shopNameDisplayed shop nameExample Shop
urlProduct page addresshttps://item.rakuten.co.jp/example-shop/bottle-1/
shippingIncludedWhether shipping is includedtrue
pointCountListed reward points18
reviewScoreAggregate review rating4.5
reviewCountNumber of reviews120
rankingRankPosition in the selected ranking1
imageUrlMain product image addresshttps://example.com/product.jpg

Review rows

These have rowType="review". Product rows retain aggregate review fields rather than a reviewSnippets list.

FieldDescriptionExample
reviewIdIdentifier for this review rowexample-shop:bottle-1:review:example-1
productIdParent product identifierexample-shop:bottle-1
productUrlParent product addresshttps://item.rakuten.co.jp/example-shop/bottle-1/
textAvailable review textExample review text

Shop rows

These have rowType="shop", with shop identity fields and available disclosure details.

FieldDescriptionExample
companyNameDisclosed business nameExample Company
telPublic business telephone+1 555 0100
businessHoursPublished opening hours09:00-17:00

Category rows

These have rowType="category".

FieldDescriptionExample
genreIdRakuten genre identifier564500
nameCategory nameスマートフォン・タブレット
depthLevel in the returned hierarchy1

Suggestion rows

Identify suggestions by recordType="suggestion"; their rowType is currently product, not a separate suggestion type.

FieldDescriptionExample
recordTypeDistinguishes suggestions from listingssuggestion
keywordRequested search word水筒
nameSuggested search phrase水筒 子供

How to scrape Rakuten

  1. Open Rakuten Scraper in Apify Console. A free Apify account is enough to try it.
  2. Fill one target field, such as keyword, and leave mode on auto.
  3. Set maxResults to 5 for your first run.
  4. Click Start and wait for completion.
  5. Download the dataset or read it through the API.

An empty input starts an example search for 水筒, limited to 3 rows. Normal start and row charges apply. Filling one target field selects the matching mode automatically. URLs take precedence over item or shop identifiers, which take precedence over keywords. genreId narrows a mode; it does not select one by itself.

Enter keyword, or put several keywords in searchQueries. Japanese words are recommended; the Actor does not promise to translate your query. Add genreId to restrict a search to a category.

Items

Paste an Ichiba item address into itemUrl. Alternatively, enter the shop code and item code from the address as shopUrlCode and manageNumber.

Shops

Enter the shop code in shopUrlCode, without the full URL. The shop row counts toward maxResults, along with any product and review rows. This is not a guarantee of the shop's complete inventory.

Rankings

Set mode to ranking. Without a genre, it requests the overall ranking. period accepts daily, realtime, weekly or monthly.

Categories

Set mode to categories. Add genreId to begin at one genre, and use maxResults to limit delivered rows. The returned hierarchy may be incomplete.

Suggestions

Set mode to suggest and enter keyword. Suggestions are search phrases, not product offers, so price and item identifiers may be absent.

What to fill in

FieldWhat to enterDefault
modeauto, search, item, shop, ranking, categories or suggestauto
keywordOne search word or phraseEmpty; form sample 水筒
searchQueriesSeveral keywordsEmpty
startUrlsIchiba search, item, shop or ranking page URLsEmpty
itemUrlOne item page URLEmpty
shopUrlCodeShop code; combine with manageNumber for an itemEmpty
manageNumberItem code within a shopEmpty
maxResultsMaximum rows per input, from 1 to 50070; form sample 3
genreIdGenre identifier to narrow the selected modeEmpty
genreSlugRecognized genre name or alias; prefer a known genreIdEmpty
sortstandard, price_asc, price_desc, newest, review_count or review_scoreSite order
minPrice, maxPriceOptional price bounds in JPYUnset
filtersFor example, free_shipping or super_dealEmpty
tagsTag values from the relevant search pageEmpty
usedSearch page's used-item setting, 0 or 1Unset
periodRanking perioddaily
pageStarting search page, from 1 to 1001
maxGenreNodesCategory exploration limit; not the delivered row allowance800
enrichDetailsAdd available item-page details to listingsfalse
enrichReviewsRequest review snippets as separate billed rowsfalse
enrichStockRequest available item stock detailsfalse
enrichShippingRequest available item shipping detailsfalse
enrichBenefitsRequest available item points and benefitsfalse
enrichLeadAdd public business disclosures to shop rowstrue

Search with filters:

{
"keyword": "水筒",
"sort": "price_asc",
"minPrice": 500,
"maxPrice": 3000,
"filters": ["free_shipping"],
"maxResults": 5
}

Item: replace the placeholder address with an existing item.

{
"itemUrl": "https://item.rakuten.co.jp/example-shop/example-item/",
"maxResults": 1
}

Shop: replace the placeholder code with an existing shop.

{
"shopUrlCode": "example-shop",
"maxResults": 5
}

Ranking:

{
"mode": "ranking",
"genreId": "560202",
"period": "daily",
"maxResults": 5
}

Categories:

{
"mode": "categories",
"genreId": "564500",
"maxGenreNodes": 5,
"maxResults": 5
}

Suggestions:

{
"mode": "suggest",
"keyword": "水筒",
"maxResults": 5
}
  • maxItems and limit are accepted as aliases for maxResults.
  • Unknown fields do not fail the run by themselves. Close misspellings can be corrected; other unknown fields are ignored with a note.
  • Invalid targets stop processing before rows are charged, with a message such as INVALID_INPUT: itemUrl — paste a Rakuten Ichiba item page address. A start charge can still apply.
  • The INPUT_REPORT record in the run's key-value store records input resolution, including fields filled, corrected or ignored. INPUT_ECHO shows the parsed input.
  • Invalid ranking periods fall back to daily. A reversed price range is removed rather than treated as a valid filter.

Output example

Illustrative product row:

{
"rowType": "product",
"id": "example-shop:bottle-1",
"recordType": "item",
"manageNumber": "bottle-1",
"shopUrlCode": "example-shop",
"title": "Stainless steel bottle",
"price": 2050,
"currency": "JPY",
"shippingIncluded": true,
"pointCount": 18,
"url": "https://item.rakuten.co.jp/example-shop/bottle-1/",
"country": "JP"
}

You can export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. Keep rowType and id when combining exports so products, reviews and shops remain distinguishable.

Why use this Rakuten scraper?

  • Pay per row. Row charges apply to delivered dataset rows, not pages attempted.
  • Several inputs. Supply multiple keywords or URLs in one run, each with its own row allowance.
  • Explicit input feedback. Check INPUT_REPORT before changing a query that produced unexpected results.
  • Keep delivered data. Rows already written remain in the dataset if the run stops. Data not yet delivered is not guaranteed after a manual stop.
  • No proxy setup. You do not need to set up proxies or supply a Rakuten account.

How much does it cost to scrape Rakuten?

The Actor uses pay-per-event pricing. The start event costs $0.005, billed once per allocated GB with a minimum of one event. At the default 512 MB, that means one start event, or $0.005. Platform usage is included in these prices.

Apify planPrice per rowPrice per 1,000 rows
Free$0.003$3.00
Starter$0.003$3.00
Scale$0.0026$2.60
Business$0.0022$2.20
Platinum$0.002$2.00
Diamond$0.0016$1.60

maxResults applies to each keyword or start URL. A single item, shop, ranking, category or suggestion request counts as one input. The default is 70 rows; larger requests are collected in parts of 70. All row types share the allowance, so 5 rows with reviews enabled need not mean 5 products.

Free Apify plan users are limited to 10 runs of this Actor and 200 rows per run. Set Maximum cost per run (maxTotalChargeUsd in the API) to cap the whole run, including row and start charges.

Example: 3 keywords returning 50 rows each give 150 rows. At default memory on the Free plan: 150 × $0.003 + $0.005 = $0.455. A run that delivers fewer rows incurs fewer row charges; an example run is not automatically free.

What happens when the run timeout is too short

When a collection is expected to outlast your remaining timeout, the run can pause with the status message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It appears as ABORTED temporarily.

When results are ready, the same run resumes, delivers to the same dataset and finishes as SUCCEEDED if collection succeeds. A resumed delivery can show "Resumed: delivering N rows." Rows already delivered are skipped so they are not delivered or charged twice. This automatic pause is different from a manual abort or a collection failure.

  • Automatic pausing is limited to 3 times per run. Keep the default timeout of 3600 seconds to reduce the need to pause.
  • The synchronous endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and can return an empty dataset during a pause. For longer runs, start asynchronously and read the dataset after SUCCEEDED, or use a success webhook.

Use with AI agents and the API

Apify MCP server (Claude, ChatGPT, Cursor, VS Code)

Add this Actor to an MCP client that supports remote servers:

https://mcp.apify.com?tools=lentic_clockss/rakuten-scraper

Sign in with Apify when prompted through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent can read the rows with get-dataset-items.

Clients without remote MCP support can use npx @apify/actors-mcp-server --tools lentic_clockss/rakuten-scraper with APIFY_TOKEN set.

Example prompt: "Search Rakuten Ichiba for 水筒, return 5 rows, and compare listed JPY prices and shipping information."

Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/rakuten-scraper").call(
run_input={"keyword": "水筒", "maxResults": 5}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/rakuten-scraper').call({
keyword: '水筒', maxResults: 5
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

For HTTP, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~rakuten-scraper/runs with Authorization: Bearer <YOUR_APIFY_TOKEN>. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.

Integrations

Connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook from the Actor's Integrations tab. Use Apify Schedules for recurring runs.

日本語の説明

楽天市場の商品、ショップ、ランキング、ジャンル情報を収集します。検索する場合は keyword に「水筒」などの日本語を入力し、最初は maxResults を 5 にしてください。商品ページの指定には itemUrl を使います。日本の楽天市場が対象で、海外の楽天サイトや楽天トラベルは対象外です。料金は開始料金と、実際に出力された行数で決まります。レビューを追加すると、商品とは別の行として数えられ、同じ上限を使います。結果は CSV や Excel で保存できます。入力が空の場合も少量のサンプル検索が実行され、通常の料金が適用されます。取得できない項目や、情報が不足するページもあります。

FAQ

This Actor targets public data. You are responsible for checking Rakuten's terms and applicable data-protection law before collecting or using it. Public availability alone does not remove those obligations; personal data requires a lawful basis. This is not legal advice.

Why did my run end as ABORTED?

Check the status message. The automatic-resume message means the run has paused while awaiting results. Other aborts do not necessarily resume. Keep the run ID when contacting support.

How many results can I get?

maxResults accepts 1–500 rows per input, subject to availability, the whole-run cost cap and free-plan limits. It is a ceiling, not a promise to find that many rows.

Why are some fields empty?

Different pages expose different information. Ranking cards can lack titles or prices; enrichDetails can add item-page fields when available. Shipping, stock and benefits are not guaranteed for every item.

Does this cover rakuten.com, Rakuma, Travel or Books?

No. It targets Japan's Ichiba marketplace, not those separate services. Products sold within Ichiba are distinct from dedicated Rakuten services.

Can I collect every review?

No completeness guarantee is made. Available review snippets become separate rows when enrichReviews is enabled, and they share the input's row limit with products.

Which identifiers should I use to join exports?

Use rowType with id. For products, shopUrlCode and manageNumber identify the item within a shop. Review rows link back through productId and productUrl.

Limitations

  • Japan Ichiba only; no login, checkout or private account data.
  • Site changes or unavailable pages can cause partial data, empty results or failures.
  • Shop mode returns products found on the supplied shop page, not a guaranteed full catalog.
  • Category results can fall back to known category entries and are not guaranteed to form a complete, freshly observed tree.
  • Enrichment may add time and may leave fields empty. Review snippets are not a complete review archive.
  • An accepted Rakuten URL is not proof that every page type on that domain is supported.

More e-commerce and marketplace scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.