rakuten-travel

Search and compare Japan hotels on Rakuten Travel with room availability, real pricing, and reviews via the Rakuten API.

Requirements

Requires curl, jq, and APPLICATION_ID (Rakuten API Key) environment variable.

Install

npx skills add whtsky/skills -s rakuten-travel

Rakuten Travel

Query Japanese hotel information and room availability via Rakuten Travel API.

Environment Variables

Requires APPLICATION_ID (Rakuten API Key) environment variable.

Direct API Calls with curl

Hotel Search (SimpleHotelSearch)

Search nearby hotels by coordinates:

curl -s "https://app.rakuten.co.jp/services/api/Travel/SimpleHotelSearch/20170426?applicationId=$APPLICATION_ID&latitude=35.6895&longitude=139.6917&searchRadius=1&datumType=1&hits=10&formatVersion=2" | jq '.hotels[] | .[0].hotelBasicInfo | {hotelName, hotelNo, address2, reviewAverage, hotelMinCharge}'

Vacancy Search (VacantHotelSearch)

Search hotels with available rooms for specific dates:

curl -s "https://app.rakuten.co.jp/services/api/Travel/VacantHotelSearch/20170426?applicationId=$APPLICATION_ID&checkinDate=YYYY-MM-DD&checkoutDate=YYYY-MM-DD&adultNum=2&latitude=35.6895&longitude=139.6917&searchRadius=3&datumType=1&hits=10&formatVersion=2" | jq '.hotels[] | .[0].hotelBasicInfo | {hotelName, hotelMinCharge, reviewAverage}'

⚠️ Getting Real Prices (Important!)

hotelMinCharge is a “minimum reference price”, not the actual bookable price! It can differ by 4-7x.

To get real prices, add responseType=large and extract from .[3].roomInfo[1].dailyCharge.total:

curl -s "https://app.rakuten.co.jp/services/api/Travel/VacantHotelSearch/20170426?applicationId=$APPLICATION_ID&checkinDate=YYYY-MM-DD&checkoutDate=YYYY-MM-DD&adultNum=2&latitude=40.8246&longitude=140.7406&searchRadius=2&datumType=1&hits=5&formatVersion=2&responseType=large" | jq '[.hotels[] | {
  name: .[0].hotelBasicInfo.hotelName,
  rating: .[0].hotelBasicInfo.reviewAverage,
  price: .[3].roomInfo[1].dailyCharge.total
}] | sort_by(.price)'

Response structure (responseType=large):

Common Parameters

Location (choose one)

Optional Parameters

Common Region Codes

RegionmiddleClassCodesmallClassCode examples
Tokyotokyoshinjuku, shibuya, ginza
Osakaosakaumeda, namba, tennoji
Kyotokyotokawaramachi, gion
Hokkaidohokkaidosapporo, otaru
Okinawaokinawanaha

Response Fields

View source on GitHub →