Rakuten Travel Scraper: Japan Hotels, Rates & Reviews avatar

Rakuten Travel Scraper: Japan Hotels, Rates & Reviews

Pricing

from $1.20 / 1,000 hotel records

Go to Apify Store
Rakuten Travel Scraper: Japan Hotels, Rates & Reviews

Rakuten Travel Scraper: Japan Hotels, Rates & Reviews

Scrape Rakuten Travel, Japan's largest domestic hotel-booking site, by prefecture, keyword or URL. Every row carries name, rating, review count, lowest price and access, with optional details: address, phone, facilities, policies, photos and reviews. No API key needed.

Pricing

from $1.20 / 1,000 hotel records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Scrape Rakuten Travel (travel.rakuten.co.jp), Japan's largest domestic hotel-booking site, into clean structured rows. Search by prefecture, run the site's own keyword search, or paste hotel, area, keyword-results or day-use listing URLs you already have. Every row carries name, rating, review count, lowest price, catch copy and access, and can be enriched from the hotel's own pages: address, phone, check-in times, facilities, credit cards, cancellation policies, photos, the review summary and individual review texts.

Built for price monitoring, market research, inventory tracking and review mining across all 47 prefectures. No API key, no application registration, no account needed: the actor reads the site's own public pages directly.


Why This Scraper?

  • Around 40 fields per hotel, from the listing card through full detail and review pages
  • Three input modes: prefecture walk, keyword search, or any pasted hotel, area, keyword-results or day-use URL
  • The site's own server-side price and review sorts, plus client-side price bounds and a minimum rating filter
  • Review mining: overall score, per-category averages (room, service, location, meals, bath), star histogram and review texts
  • Resume and incremental modes for daily scheduled monitoring of the same scope, returning only what changed
  • Covers all 47 prefectures of the site's own area tree, with the declared result totals respected page by page
  • Bilingual input: Japanese prefecture names (東京, 北海道) and romaji (tokyo, hokkaido) both work

Data You Get

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

FieldExample value
hotelNo0000000
nameSample Seaside Hotel
urlhttps://travel.rakuten.co.jp/HOTEL/0000000/0000000.html
ratingValue4.2
reviewCount1200
minPriceYen8000
minPriceTaxIncludedYen8800
catchcopyA sample one line catch copy from the listing card
accessSample station: 5 min on foot
thumbnailUrlhttps://trvimg.r10s.jp/share/image_up/0000000/sample.jpg
address〒000-0000 Sample prefecture Sample city 1-2-3
phoneNumber000-000-0000
checkInTime15:00〜19:00
checkOutTime10:00
parkingAvailable, 50 cars
facilities["Restaurant", "Large bath", "Non-smoking rooms"]
cancellationPolicyCancellation terms as printed on the page
descriptionFull property description text when details are on
ratingSummary{"overallScore": 4.2, "reviewCount": 1200, "categoryAverages": {"ROOM": 4.1}}
reviews [{"title": "Sample review title", "comment": "Sample review text", "score": 5}]
reviewsTotal1200
changeTypeNEW
changedFields["minPriceYen"]

How to Use

Search one prefecture, with full details (default):

{
"mode": "search",
"locations": ["東京"],
"maxItems": 20
}

Prefecture walk with the site's own price sort, keyword searches and price bounds:

{
"mode": "search",
"locations": ["大阪", "kyoto"],
"keywords": ["温泉 箱根"],
"sortBy": "price_low",
"minPriceYen": 6000,
"maxPriceYen": 25000,
"minRating": "3.5",
"maxItems": 60
}

Paste hotel URLs for exact fetches (reviews included):

{
"mode": "url",
"urls": [
"https://travel.rakuten.co.jp/HOTEL/0000000/0000000.html",
"https://travel.rakuten.co.jp/HOTEL/0000001/0000001.html"
],
"fetchReviews": true,
"maxItems": 10
}

Daily price watch of one prefecture (incremental mode returns only changes after the first run):

{
"mode": "search",
"locations": ["沖縄"],
"maxItems": 0,
"incrementalMode": true,
"stateKey": "okinawa-watch"
}

Input Parameters

ParameterTypeDefaultDescription
modeselectsearchsearch walks prefecture area pages and keyword results; url processes pasted URLs.
locationsarray["東京"]Prefecture words (Japanese or romaji) matched against the site's 47-prefecture area tree. Search mode only.
keywordsarray[]Keyword searches run on the site's own search, following the site's own results pager (about 30 hotels per page). Search mode only.
urlsarray[]Hotel URLs (one hotel each), or area /yado/, /ds/yado/, keyword-results and day-use listing URLs (walked like a search). URL mode only.
sortByselectrecommendedThe site's server-side order of each prefecture walk: recommended, price low/high, review score. Search mode, area walks only.
minPriceYeninteger-Keep rows at or above this price in yen. Both modes.
maxPriceYeninteger-Keep rows at or below this price in yen. Both modes.
minRatingstring-Keep rows whose review score is at least this (for example 4.0). Both modes.
sortResultsByselectsite_orderReorder this run's collected rows after the read. Both modes.
fetchDetailsbooleantrueRead each hotel's own page for address, phone, check-in times, facilities, policies and photos. Adds the per-hotel detail enrichment charge.
fetchReviewsbooleanfalseAlso read the review page: summary, per-category averages and review text. Covered by the same enrichment charge.
maxReviewsinteger20Maximum review rows per hotel when fetchReviews is on. 0 = all available reviews. The enrichment event is charged once for each started block of 10 returned review rows.
maxItemsinteger20The single output cap across all sources. 0 = unlimited.
maxPagesinteger0Safety bound on listing pages per source. 0 = no page limit.
resumeFromRunIdstring-Continue one interrupted run: skip records that run already collected.
incrementalModebooleanfalseScheduled monitoring: return only NEW, UPDATED and REAPPEARED records against the previous run of the same scope.
stateKeystring-Optional name for an incremental monitoring campaign.
emitUnchangedbooleanfalseAlso return UNCHANGED rows (billed).
emitExpiredbooleanfalseAlso return EXPIRED rows after a complete scan (billed).
proxyobjectstandard proxyThe default standard Apify proxy serves every page this actor reads.
mcpConnectorsarray[]Optional MCP connector IDs for the condensed result export.
notionParentPageUrlstring-Optional Notion parent page URL for the MCP export.
maxNotifyListingsinteger50Maximum condensed records sent to MCP connectors per run.

Output Example

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

{
"recordId": "0000000",
"hotelNo": "0000000",
"rowType": "hotel",
"url": "https://travel.rakuten.co.jp/HOTEL/0000000/0000000.html",
"name": "Sample Seaside Hotel",
"ratingValue": 4.2,
"reviewCount": 1200,
"minPriceYen": 8000,
"minPriceTaxIncludedYen": 8800,
"catchcopy": "A sample one line catch copy from the listing card",
"access": "Sample station: 5 min on foot",
"position": 3,
"searchSource": "東京",
"address": "〒000-0000 Sample prefecture Sample city 1-2-3",
"phoneNumber": "000-000-0000",
"faxNumber": "000-000-0001",
"checkInTime": "15:00〜19:00",
"checkOutTime": "10:00",
"parking": "Available, 50 cars",
"totalRooms": 120,
"facilities": ["Restaurant", "Large bath", "Non-smoking rooms"],
"roomAmenities": ["TV", "Refrigerator", "Hair dryer"],
"creditCards": ["VISA", "Master Card"],
"meals": ["[Breakfast] Restaurant"],
"cancellationPolicy": "Sample cancellation terms from the hotel page",
"description": "Sample full property description.",
"photoUrls": ["https://trvimg.r10s.jp/share/image_up/0000000/sample.jpg"],
"ratingSummary": {
"overallScore": 4.2,
"reviewCount": 1200,
"categoryAverages": {"ROOM": 4.1, "BREAKFAST": 4.3},
"starHistogram": {"FIVE": 500, "FOUR": 400}
},
"reviews": [
{
"reviewId": "000000",
"title": "Sample review title",
"comment": "Sample review text.",
"postedAt": "2026-01-01T00:00:00Z",
"score": 5,
"nickname": "SampleNick",
"stayDate": "2026-01-01",
"planName": "Sample plan name"
}
],
"reviewsTotal": 1200,
"scrapedAt": "2026-01-01T00:00:00Z",
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-01-01T00:00:00Z",
"lastSeenAt": "2026-01-01T00:00:00Z"
}

Send results into your apps (MCP connectors)

Optionally pipe this actor's results into the apps you already use with MCP connectors: authorize one under Apify, Settings, API & Integrations, then select it in the mcpConnectors input and set notionParentPageUrl for Notion. Each connector receives a condensed summary per record (a title plus key fields flattened to text, maxNotifyListings per run), not the full record; the complete record always stays in the Apify dataset. Leave the inputs empty and nothing changes: the export never runs and the dataset output is identical.

Plan Requirement

  • Works on any Apify plan, including the free tier. Per-event pricing is shown on the actor page before a run.
  • Prices are the site's publicly displayed lowest rates for its default availability window, in Japanese yen; a rate move between scheduled runs classifies as UPDATED in incremental mode.
  • Keyword searches follow the site's own results pager (about 30 hotels per page). Prefecture walks follow the site's own pager, 30 hotels per page.
  • The keyword results page is served in the site's legacy Japanese text encoding; the actor encodes your keywords and decodes the page for you.
  • A run needs no account and no API registration on any surface it reads.