Rakuten Travel Reviews Scraper (楽天トラベル) avatar

Rakuten Travel Reviews Scraper (楽天トラベル)

Pricing

from $1.75 / 1,000 review-scrapeds

Go to Apify Store
Rakuten Travel Reviews Scraper (楽天トラベル)

Rakuten Travel Reviews Scraper (楽天トラベル)

Scrape Rakuten Travel (楽天トラベル) hotel reviews by hotel number, URL or Japanese name: overall and eight category scores, title, full text, stay date, plan and room booked, reviewer profile, hotel reply and averages. Sort newest, highest or lowest, or get only new ones. $2.50 per 1,000 reviews.

Pricing

from $1.75 / 1,000 review-scrapeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

What is Rakuten Travel Reviews Scraper (楽天トラベル)?

Reviews on Rakuten Travel (楽天トラベル), one of Japan's largest domestic travel sites, are written by guests who booked their stay through it, and each guest scores the hotel on up to eight things beside the overall mark. Rakuten Travel Reviews Scraper gets you those reviews in full for any hotel you name: the text, the eight category scores, the plan and room the guest booked, and the hotel's reply.

Reasons to use it:

  • You see more than one number. Room, service, location, breakfast, dinner, bath, facilities and cleanliness are scored separately on each review, and averaged for the hotel.
  • Each review is tied to a stay. The stay date and the room booked are on the row, with the plan where Rakuten shows it.
  • It's fast enough for a whole portfolio. 20 hotels across Japan returned 1,884 reviews in 11 seconds, which is about 13,000 reviews a minute.
  • A scheduled run can return only what's new. In testing, a second run with the same only-new store returned 0 of 180, and reviews you've already had aren't charged.
  • $2.50 per 1,000 reviews on the Free plan and $1.75 on Business. Reviews your filters remove are free.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 25 of 25 live checks on its inputs and filters passed on 7 October 2026
  • 12 hotels run the same day by number, link or Japanese name: 236 reviews, none empty
  • Charges matched the rows: 236 reviews, 2 name lookups
  • A hotel given by its Japanese name resolves to that hotel

The rest, in short:

  • Read the title, full text and overall score of each review
  • See the reviewer's nickname, age band, gender, travel purpose and companion
  • Sort by newest, Rakuten's recommendation, highest or lowest score
  • Filter by rating band, purpose, companion, posting date or replies only
  • Get one summary row per hotel, with averages and the rating distribution, if you don't need the individual reviews

What can you do with Rakuten Travel reviews?

  • Track guest sentiment for a hotel or a competitor set over time
  • Break satisfaction down across eight categories, not one score
  • Segment feedback by travel purpose and companion type
  • Measure how often a property replies to its reviews
  • Watch the rating distribution shift after a refurbishment or a price change
  • Find recurring complaints in the Japanese text, or feed it to a sentiment or topic model
  • Check new reviews daily and alert on low scores

What data can you extract?

📝 Review title and full text⭐ Overall score out of 5
Eight category scores per review🗓️ Posting date
Stay datePlan and room booked
🧑 Reviewer nickname and profileAge band and gender where shown
🧳 Travel purpose and companion💬 Hotel's reply
👍 Likes and view count🔗 Review id and review URL
🏨 Hotel name, number and URLHotel overall score
Hotel's eight category averages📊 Hotel rating distribution
Headline review count and reviews with textHotel area chain

How to scrape Rakuten Travel reviews

It takes a hotel and a number. Sign up for Apify if you haven't (it's free), then:

  1. Open Rakuten Travel Reviews Scraper and add your hotels: Rakuten hotel numbers, hotel or review URLs, or Japanese hotel names.
  2. Say how many reviews you want per hotel, pick a sort, and add any rating, purpose or date filter.
  3. Press Start, and download the reviews as Excel, CSV, JSON, XML or HTML when it finishes.

⬇️ Input

The hotel is the only thing you have to give. A Rakuten hotel number such as 1369 is the surest form, and a hotel or review URL works the same way. You can also type the hotel's Japanese name. Numbers and URLs are free to resolve, and a name costs one hotel-resolved.

If you leave the rest alone you get the 100 newest reviews per hotel, each with the hotel's score summary repeated on it.

More links than you'd want to paste go in "Start URLs", which loads them from a file, a Google Sheet or a remote list. Both inputs are used together.

There are two limits. "Max reviews per hotel" (1 to 50,000, default 100) applies to each hotel on its own: ten hotels at 50 each returns 500. "Maximum results for the whole run" caps the total, with 0 for no cap, and nothing past it is fetched or charged for.

"Travel purpose" takes leisure, business or other. "Companion type" takes solo, family, lover, friend, colleague or other. Both are Rakuten's own categories. For one record per hotel with its averages and no individual reviews, switch on "Summary only".

Recent reviews for one hotel

{
"hotels": ["1369"],
"maxReviewsPerHotel": 200,
"sort": "recent"
}

Critical reviews across a competitor set

{
"hotels": ["1369", "7365", "178586"],
"maxRating": 3,
"sort": "lowest",
"maxReviewsPerHotel": 150
}

Family stays with a hotel reply

{
"hotels": ["1369"],
"companions": ["family"],
"withReplyOnly": true,
"maxReviewsPerHotel": 100
}

A daily watch that returns only new reviews

{
"hotels": ["1369", "7365"],
"postedAfter": "2026-06-01",
"dedupStoreName": "rakuten-reviews-seen",
"maxReviewsPerHotel": 100
}

For developers

  • maxReviewsPerHotel is the per-hotel limit and maxItems the run-wide one. Rows that report a hotel the actor couldn't resolve aren't counted against maxItems.
  • minRating, maxRating, purposes, companions, postedAfter and withReplyOnly are applied to reviews as they're read. When they keep few or none, reading a hotel stops early: after a run of pages that kept nothing, when 20 or more pages have kept fewer than 0.15 a page, or at about three times the pages maxReviewsPerHotel needs.
  • On the recent sort, reading also stops as soon as the reviews predate postedAfter or reach ones an earlier run already returned.
  • minRating above maxRating is refused before anything is read.
  • dedupStoreName names the store of review ids already returned. A run that uses it returns only reviews it hasn't seen.
  • includeHotelSummary (default true) repeats the hotel's overall score, review count, category averages, rating distribution and area on each review row. Switch it off for leaner rows.
  • summaryOnly returns one record per hotel and bills it as hotel-summary.
  • maxConcurrency (default 16, from 1 to 32) is how many requests run at once across the run, and delayMs (default 0, up to 10,000) adds a pause before each. Lower the first only if a run reports errors.

⬆️ Output

Each review is one record, with its hotel's score summary and rating distribution alongside unless you've switched that off. A category the guest didn't rate is left out of scores. Where the hotel replied, hotelReply has the reply's text, date and author.

{
"input": "https://review.travel.rakuten.co.jp/hotel/voice/14550/",
"hotelId": 14550,
"hotelName": "ホテルアルファーワン富山荒町",
"hotelUrl": "https://travel.rakuten.co.jp/HOTEL/14550/14550.html",
"hotelRating": 3.77,
"hotelRatingScale": 5,
"hotelReviewCount": 1687,
"hotelReviewsWithText": 876,
"hotelCategoryScores": {
"room": 3.62, "service": 3.78, "location": 3.71, "breakfast": 3.85,
"dinner": null, "bath": 3.88, "facilities": 3.59, "cleanliness": 3.65
},
"hotelRatingDistribution": { "1": 7, "2": 29, "3": 156, "4": 406, "5": 136 },
"hotelArea": ["全国", "富山県", "富山・八尾・立山"],
"id": "33123479426783",
"reviewId": "33123479426783",
"legacyReviewId": "24858764",
"url": "https://review.travel.rakuten.co.jp/hotel/voice/14550/?f_review=33123479426783",
"title": "駐車場は有料だが朝食の種類が豊富で満足",
"text": "ホテル駐車場が有料になってしまった事以外は満足です。…",
"rating": 5,
"ratingScale": 5,
"scores": { "room": 5, "service": 5, "location": 3, "bath": 4, "facilities": 4, "cleanliness": 4 },
"postedAt": "2026-09-17T23:27:41Z",
"viewCount": 33,
"likes": 0,
"stay": {
"checkIn": "2026-09-16",
"planId": null,
"planName": null,
"roomId": "rdt",
"roomName": "『喫煙』DXツイン■サウナ付展望大浴場",
"adults": null,
"children": null
},
"reviewer": {
"nickname": "ドンたか",
"userId": "RNOXQ3FB",
"gender": "male",
"ageRange": "60s",
"purpose": "leisure",
"companion": "family",
"reviewCount": 12,
"viewCount": 47,
"likes": 0,
"avatar": null
},
"hotelReply": null,
"images": [],
"sort": "recent",
"scrapedAt": "2026-09-25T10:02:39.882Z"
}

You can download the dataset as JSON, CSV, Excel, XML or HTML, and choose which fields to keep before you export.

How many reviews can you get, and how fast?

RunResultsTime
Four hotels, 100 newest each400 reviews6.5 s
20 hotels across Japan, 100 newest each (3 October 2026)1,884 reviews11 s
One hotel (given as its review URL), 10 newest10 reviews4 s
Kyoto Century Hotel (given as its review URL) and a Takayama ryokan, 200 newest each334 reviews: every text review the ryokan has (134) and 200 of the hotel's 4,750
Three hotels, 60 newest each180 reviews, 102 with a hotel reply; a second run with the same only-new store returned 0

The 20-hotel run is about 13,000 reviews a minute. A list of thousands of hotels fits in one run.

One number needs explaining. A hotel's headline review count on Rakuten includes submissions that are a score with no text, and those have no review page. hotelReviewsWithText is how many reviews the pages actually hold, and that's the most a run can return for the hotel.

How much does it cost to scrape Rakuten Travel reviews?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
hotel-resolved, per Japanese name looked up (URLs and numbers skip it)$0.002$0.002$0.002$0.002
review-scraped, per review returned$0.0025$0.00225$0.002$0.00175
hotel-summary, per hotel in summaryOnly mode$0.002$0.0018$0.0016$0.0014

Enterprise plans pay the Business price.

$2.50 per 1,000 reviews on the Free plan, $1.75 on Business. You pay for reviews you receive. The ones a filter drops and the ones an only-new run has already given you cost nothing, and proxy usage and platform usage are included.

  • One hotel by number, 500 reviews: 0.002 + 500 × 0.0025 = $1.252 ($0.877 on Business)
  • Twenty hotels by name, summary rows only: 0.002 + 20 × 0.002 + 20 × 0.002 = $0.082 ($0.07 on Business)

On Apify's Free plan, the $5 of monthly credits is about 1,990 reviews with this actor, taken 200 at a time from hotels given by number.

Limitations

  • The most you can get for a hotel is its reviews with text. The headline count is higher because it includes score-only submissions.
  • Don't plan on review photos. images was empty on all 216 reviews in our 7 October 2026 sample.
  • Reviewer names are site nicknames.
  • Review text is Japanese as written. The site doesn't translate reviews.
  • Rating, purpose, companion, date and reply filters are applied as reviews are read, and a narrow filter still reads through the pages in between.
  • The recommended order is Rakuten's own ranking. Nothing on a review shows why it sits where it does.
  • Party size (stay.adults, stay.children) was empty on every review measured, and the plan name is missing on some reviews.

FAQ

Why did I get fewer reviews than the count on the hotel's page?

Rakuten's headline count includes guests who left a score and no text. Those have no review page. Compare your rows with hotelReviewsWithText instead: in one run a Takayama ryokan returned all 134 of its text reviews.

How do I get only the reviews posted since my last run?

Give "Only-new store" a name and schedule the run with the newest-first sort. Each run returns reviews it hasn't returned before and stops reading when it reaches ones it has. You aren't charged for those.

Can I pull just the bad reviews?

Set "Maximum rating" to 3 (or lower) and sort by lowest. The competitor-set example above does this for three hotels. Add "With hotel reply only" if what you want is how the property answered.

Should I use the hotel's name or its number?

The number, when you have it. It's free to resolve and there's no lookup involved. Japanese names work and cost $0.002 each to look up. Rakuten Travel Search Scraper returns the numbers for a whole area if you need to collect them first.

Are the reviews in English?

They're in Japanese, as the guests wrote them. Rakuten Travel publishes no translation, and neither does this actor.

Do I need proxies, an account or an API key?

You don't need any of them. Proxy usage is included in the price and there's nothing to configure.

Scraping publicly available data is generally legal, but reviews contain personal data, and you should collect them only where you have a legitimate reason. This actor reads only what the site serves to any logged-out visitor. You're responsible for complying with Rakuten's terms and applicable law.

Run it from your own tools

Review monitoring is a schedule plus an only-new store: add the actor to an Apify Schedule, name the store, and send each run's new reviews to Slack or a Google Sheet through Apify's integrations. A webhook can start your own job when a run finishes.

The API call for a short run is POST https://api.apify.com/v2/acts/boncross~rakuten-travel-reviews/run-sync-get-dataset-items, with the input JSON as the body. Longer runs use the asynchronous run endpoint. Node.js and Python have an apify-client package each.

Through the Apify MCP server at mcp.apify.com, an agent in Claude, Cursor, ChatGPT or another MCP client gets the actor as a tool named boncross/rakuten-travel-reviews. It can then pull a Japanese hotel's recent reviews and summarise them for you.

More from BonCross

Your feedback

Seen a review on 楽天トラベル that didn't come through, or a score in the wrong category? Raise it on the Issues tab in Apify Console with the hotel number. We read each issue and reply there.