Home      API一覧     楽天GORAプラン検索API

楽天GORAプラン検索APIは、 楽天GORAで提供している各ゴルフ場のプランの詳細や空き枠状況などを取得することが可能なAPIです。

リクエストURL(REST/JSON形式の場合)



https://app.rakuten.co.jp/services/api/Gora/GoraPlanSearch/20170623?format=xml&[parameter]=[value]...
https://app.rakuten.co.jp/services/api/Gora/GoraPlanSearch/20170623?format=json&[parameter]=[value]...

※JSONP形式は、JSON形式で入力パラメーターにcallBackを指定することで出力されます。

フィールド名keywordに対応する[value]はUTF-8でURLエンコードされている必要があります。(リクエストURL全体をエンコードするのではなく、[value]部分を個別にエンコードしてください。)
たとえば、2011/5/31に長野県(areaCode=20)のゴルフ場で、かつ昼食付きのプランで、結果を総合評価順に並べたい場合のリクエストURLは下記になります。(実際には改行せずに1行につなげてリクエストしてください。)

https://app.rakuten.co.jp/services/api/Gora/GoraPlanSearch/20170623?format=xml&
        applicationId=[YOUR_applicationId]
        &playDate=2015-08-31
        &areaCode=20
        &planLunch=1
        &sort=evaluation

※短い時間の間に大量に、同一のリクエストURLへアクセスすると、一定時間利用できなくなる場合がございます。テストの際にはご注意ください。

入力パラメーター


楽天GORAプラン検索API(GoraPlanSearch) 入力パラメーター version:2017-06-23

ID 項目名 パラメーター 型(括弧内は最大バイト数) 必須 デフォルト 備考
区分:共通パラメーター
1 アプリID applicationId String 必須 - こちらで確認できます
2 アフィリエイトID affiliateId String - 指定無し こちらで確認できます
3 レスポンス形式 format String - json json か xml を選択することができます。
json を選択した場合、 callback パラメーター指定により jsonp 形式にすることもできます。
4 コールバック関数名 callback String - 指定無し JSONPとして出力する際のコールバック関数名
(UTF-8でURLエンコードした文字列)
英数字、「.(ドット)」、「_(アンダーバー)」、「[(中括弧)」、「](中括弧)」のいずれか1文字以上
5 出力パラメーター指定 elements String - ALL カンマ区切りで、必要な出力パラメータを指定した場合、
指定された出力パラメータのみを返却します。
(例)elements=reviewCount,reviewAverage
6 出力フォーマットバージョン formatVersion int - 1

出力フォーマットのバージョン指定です。

2 を指定すると、JSONの出力方法が改善され以下のようになります。

formatVersion=1 の場合:
配列データに関して、以下の様にデータが返ります。
したがって、最初の itemName にアクセスするためにitems[0].item.itemNameとたどる必要があります。

{"items": [
    {"item": {
        "itemName": "a",
        "itemPrice": 10
    }},
    {"item": {
        "itemName": "b",
        "itemPrice": 20
    }}
]}

formatVersion=2 の場合:
下記のように、配列中の重複するオブジェクトが省略されます。
最初の itemName にアクセスするためにitems[0].itemNameでアクセスできます。

{"items": [
    {
        "itemName": "a",
        "itemPrice": 10
    },
    {
        "itemName": "b",
        "itemPrice": 20
    }
]}
区分:サービス固有パラメーター
1 ゴルフ場名 golfCourseName String 必須
(*1)
- UTF-8でURLエンコードした文字列
※半角スペース区切りで複数文字での検索も可
(*1)ゴルフ場名、エリアコード、ゴルフ場IDのいずれかが指定されていることが必須です
2 エリアコード areaCode int 必須
(*1)
0 楽天GORAにおけるエリアを特定するためのコード
エリアコードを調べたい場合は、「楽天GORAエリアコード一覧」をご参照ください
(*1)ゴルフ場名、エリアコード、ゴルフ場IDのいずれかが指定されていることが必須です

このフィールドはCSV形式で複数指定することができます。
例) &areaCode=1,2,3
3 ゴルフ場ID golfCourseId long 必須
(*1)
- 楽天GORAゴルフ場検索API(GoraGolfCourceSearch)の出力に含まれる
※カンマ区切りで最大30件指定可
(*1)ゴルフ場名、エリアコード、ゴルフ場IDのいずれかが指定されていることが必須です
4 プレー日 playDate String 必須 - ※YYYY-MM-DDの形式で入力してください
※過去の日付を入れた場合はエラーになります
5 1ページあたりの取得件数 hits int - 30 1から30までの整数
6 取得ページ page int - 1 1から100までの整数
7 ソート sort String - reservation 【並び替え】
reservation:予約が多い
price:料金が安い
【評価順】
evaluation:総合評価
staff:スタッフ接客
facility:設備が充実
meal:食事が美味しい
course:コース/戦略性
costperformance:コストパフォーマンス
distance:距離が長い
fairway:フェアウェイが広い
8 プレー料金(最小価格) minPrice int - 指定無し  
9 プレー料金(最大価格) maxPrice int - 指定無し ※25,000円まで指定可能
10 時間帯指定 startTimeZone int - 0 0:指定しない
4:4時台
5:5時台
6:6時台
7:7時台
8:8時台
9:9時台
10:10時台
11:11時台
12:12時台
13:13時台
14:14時台
15:15時台以降

このフィールドはCSV形式で複数指定することができます。
例) &startTimeZone=5,7,9
11 連続枠指定 range int - 0 同一コースの連続枠を検索することが出来ます
※指定組数以上の連続枠が検索対象になります
0:指定しない
2:2
3:3
4:4
5:5
6:6
7:7
8:8
9:9
10:10~
12 【プラン指定】キャディ付 planCaddie int(1) - 0 0:選択しない
1:選択する
13 【プラン指定】乗用カート有 planCart int(1) - 0 0:選択しない
1:選択する
14 【プラン指定】宿泊プラン planStay int(1) - 0 0:選択しない
1:選択する
15 【プラン指定】昼食付 planLunch int(1) - 0 0:選択しない
1:選択する
16 【プラン指定】2サム保証 plan2sum int(1) - 0 0:選択しない
1:選択する
17 【プラン指定】4サム割引 planDiscount4sum int(1) - 0 0:選択しない
1:選択する
18 【プラン指定】追加1R無料 planAdd1RFree int(1) - 0 0:選択しない
1:選択する
19 【プラン指定】追加0.5R無料 planAddHalfFree int(1) - 0 0:選択しない
1:選択する
20 【プラン指定】2B追加料金なし planNoAddFee2b int(1) - 0 0:選択しない
1:選択する
21 【プラン指定】3B追加料金なし planNoAddFee3b int(1) - 0 0:選択しない
1:選択する
22 【プラン指定】1ドリンク付 planDrink int(1) - 0 0:選択しない
1:選択する
23 【プラン指定】GORA限定 planGoraOrg int(1) - 0 0:選択しない
1:選択する
24 【プラン指定】レッスン planLesson int(1) - 0 0:選択しない
1:選択する
25 【プラン指定】オープンコンペ planOpenCompe int(1) - 0 0:選択しない
1:選択する
※planCompeからplanOpenCompeに変更いたしました。
26 【プラン指定】9Hプレー planHalfRound int(1) - 0 0:選択しない
1:選択する
27 【プラン指定】早朝プレー planEarly int(1) - 0 0:選択しない
1:選択する
28 【プラン指定】検索除外プラン NGPlan String - 指定無し planCaddie:キャディ付
planCart:乗用カート有
planStay:宿泊プラン
planLesson:レッスン
planOpenCompe:オープンコンペ 【NEW】
planRegularCompe:コンペ【NEW】
planHalfRound:9Hプレー
planEarly:早朝プレー

このフィールドはCSV形式で複数指定することができます。
例) &NGPlan=planCart,planLesson,planHalfRound ※planCompeからplanOpenCompeに変更いたしました。
29 コース種別 courseType int(1) - 0 0:指定しない
1:丘陵
2:林間
3:河川
4:山岳
5:シーサイド
6:高原
30 【コース形状】フェアウェイが広い shapeWideFairway int(1) - 0 0:選択しない
1:選択する
31 【コース形状】OBが少なめ shapeLessOB int(1) - 0 0:選択しない
1:選択する
32 【施設】練習場あり practiceFacility int(1) - 0 0:選択しない
1:選択する
33 【施設】宿泊施設あり lodgingFacility int(1) - 0 0:選択しない
1:選択する
34 【施設】温泉あり onsenFacility int(1) - 0 0:選択しない
1:選択する
35 高速道路コード highwayCode int - 指定無し 楽天GORAにおける高速道路を特定するためのコード
高速道路コードを調べたい場合は、「楽天GORA高速道路コード一覧」をご参照ください
※エリア指定がない場合は、全ての高速道路コードでの絞り込みが可能ですが、エリアが指定された場合、エリアに応じて指定可能な高速道路コードが違いますのでご注意ください
36 インターチェンジからの距離 icDistance int(1) - 0 0:指定しない
1:5km以内
2:10km以内
3:15km以内
4:20km以内
5:25km以内
6:30km以内
7:31km以上
37 ポイントプレゼントフラグ pointFlag int(1) - 0

0:指定しない
1:ポイントプレゼントあり

出力パラメーター


楽天GORAプラン検索API(GoraPlanSearch) 出力パラメーター version:2017-06-23

ID 大分類 小分類 項目名 パラメーター 備考
1 全体情報 検索数 count 検索結果の総商品数
2 ページ番号 page 現在のページ番号
3 ページ内商品始追番 first 検索結果の何件目からか
4 ページ内商品終追番 last 検索結果の何件目までか
5 ヒット件数 hits 1度に返却する商品数
6 総ページ数 pageCount 最大100
7 ゴルフ場情報 ゴルフ場
基本情報
ゴルフ場ID golfCourseId  
8 ゴルフ場名 golfCourseName  
9 ゴルフ場説明文 golfCourseCaption  
10 ゴルフ場予約種別 golfCourseRsvType 1:リアルタイム予約コース
2:リクエスト予約・キャンセル待ち可能コース
3:その他コース
11 エリアコード areaCode エリアコードを調べたい場合は、「楽天GORAエリアコード一覧」をご参照ください。
12 都道府県名 prefecture  
13 最寄高速道路コード highwayCode 高速道路コードを調べたい場合は、「楽天GORA高速道路コード一覧」をご参照ください。
14 最寄高速道路 highway  
15 最寄IC ic  
16 ICからの距離 icDistance  
17 ゴルフ場画像URL golfCourseImageUrl httpsからはじまるゴルフ場画像ごとのURL
18 価格情報 表示用平日プラン最安値(総額) displayWeekdayMinPrice 平日プランの中で最も安価なプラン料金(総額)
(例)平日 8,000円(6,667円+税)~
19 表示用平日プラン最安値(税抜き) displayWeekdayMinBasePrice 平日プランの中で最も安価なプラン料金(総額)から消費税、ゴルフ場利用税、
その他を差し引いた金額
(例)平日 6,667円(総額 8,000円)~
20 表示用休日プラン最安値(総額) displayHolidayMinPrice 休日プランの中で最も安価なプラン料金(総額)
(例)休日 12,000円(10,371円+税)~
21 表示用休日プラン安値(税抜き) displayHolidayMinBasePrice 休日プランの中で最も安価なプラン料金(総額)から消費税、
ゴルフ場利用税、その他を差し引いた金額
(例)休日 10,371円(総額 12,000円)~
22 キャンセル料有無 cancelFeeFlag 0:無し
1:有り
23 キャンセル料 cancelFee  
24 クチコミ クチコミ件数 ratingNum  
25 総合評価 evaluation  
26 URL 予約カレンダーURL(PC) reserveCalUrlPC 入力パラメーターにアフィリエイトIDが含まれていた場合、アフィリエイトURLとなります。
httpsではじまる予約カレンダーのURL(PC)
27 予約カレンダーURL(モバイル) reserveCalUrlMobile 入力パラメーターにアフィリエイトIDが含まれていた場合、アフィリエイトURLとなります。
httpsではじまる予約カレンダーのURL(モバイル)
28 クチコミURL(PC) ratingUrlPC httpsではじまるクチコミのURL(PC)
29 クチコミURL(モバイル) ratingUrlMobile httpsではじまるクチコミのURL(モバイル)
30 ゴルフ場プラン
全体:<planInfo>~</planInfo> 個別:<plan>~</plan>
プラン詳細 プランID planId  
31 プラン名 planName  
32 プランタイプ planType 1:通常
2:お得
3:GORA限定
33 期間限定プラン limitedTimeFlag 0:通常
1:期間限定プラン
34 プラン料金(総額) price 税抜金額、消費税額、ゴルフ場利用税、その他の合計
35 プラン料金(税抜き) basePrice プレー料金などの課税対象金額
36 プラン料金(消費税) salesTax 税抜金額に対する消費税額
37 プラン料金(ゴルフ場利用税) courseUseTax ゴルフ場の所在する都道府県が課する税金(地方税)
38 プラン料金(その他の税) otherTax 入湯税、ゴルファー保険、ゴルフ振興基金などの非課税項目の合計
39 最小プレー人数 playerNumMin  
40 最大プレー人数 playerNumMax  
41 スタート時間帯 startTimeZone ex)6時台、7時台
※ゴルフ場からスタート時間帯情報の登録があったもののみ表示しています。
42 ラウンド数 round  
43 キャディ caddie 0:セルフ
1:キャディ
44 カート種類 cart 1:2人乗りカート
2:4・5人乗りカート
3:電動カート
4:手引きカート
45 2サム保証 assu2sum 0:無し
1:2サム保証
46 2B追加料金フラグ addFee2bFlag 0:無し
1:有り
47 2B追加料金 addFee2b  
48 2B組合せフラグ assortment2bFlag 0:無し
1:有り
49 3B追加料金フラグ addFee3bFlag 0:無し
1:有り
50 3B追加料金 addFee3b  
51 3B組合せフラグ assortment3bFlag 0:無し
1:有り
52 4サム割引フラグ discount4sumFlag 0:無し
1:有り
53 昼食 lunch 0:別料金
1:料金に含まれる
54 1ドリンク drink 0:無し
1:有り
55 宿泊 stay 0:無し
1:有り
56 レッスン lesson 0:無し
1:有り
57 オープンコンペ planOpenCompe 0:無し
1:有り
※compeからplanOpenCompeに変更いたしました。
58 コンペ最低予約可能組数【NEW】 compePlayGroupMin コンペプランである場合、
コンペ最低予約可能組数
59 コンペ最低予約可能人数【NEW】 compePlayMemberMin コンペプランである場合、
コンペ特典(無料の内容)
60 コンペ特典(無料の内容)【NEW】 compePrivilegeFree コンペプランである場合、
コンペ特典(無料の内容)
61 コンペオプション(有料の内容)【NEW】 compeOption コンペプランである場合、
コンペオプション(有料の内容)
62 備考 other  
63 ポイントプレゼントフラグ pointFlag 0: なし
1: あり
64 付与ポイント数 point

ポイントアッププランの楽天スーパーポイントは、ご予約&プレーされた予約者に付与されます。 予約をキャンセルした場合、楽天スーパーポイントは付与されません。

特典ポイントは、プレー翌月の中旬頃までに通常ポイントとして付与されます。通常のプレーポイントとは、付与時期が 異なりますので、ご注意ください。

65 在庫情報
<calInfo>~</calInfo>
プレー日 playDate  
66 在庫ステータス stockStatus 1: 空き有り/リクエスト予約可
2: 空き有り/リクエスト予約不可
3: 在庫有り お得プラン
4: 在庫有り GORA限定プラン
5: リクエスト予約のみ
6: キャンセル待ち
67 在庫数 stockCount  
68 予約ページURL(PC) reservePageUrlPC 入力パラメーターにアフィリエイトIDが含まれていた場合、アフィリエイトURLとなります
※在庫状況はリアルタイムに変更するため、予約ページにて各種受付を終了していることがございますことをご了承ください。
httpsではじまる予約ページのURL(PC)
69 予約ページURL(モバイル) reservePageUrlMobile 入力パラメーターにアフィリエイトIDが含まれていた場合、アフィリエイトURLとなります
※在庫状況はリアルタイムに変更するため、予約ページにて各種受付を終了していることがございますことをご了承ください。
httpsではじまる予約ページのURL(モバイル)

アフィリエイトに関して


デベロッパーは、楽天GORAプラン検索APIからアフィリエイトURLを取得することが可能です。リンク先にそのアフィリエイトURLを指定することで、楽天アフィリエイト経由の成果報酬を獲得することができます。
アフィリエイトURLを作るには、APIの入力パラメーターに「アフィリエイトID」を含めてリクエストしてください。
入力パラメーターcarrierでPCが指定された場合でもモバイルが指定された場合でも同様の方法でアフィリエイトURLを作成することができます。(2011年05月現在)

エラー

エラー内容はHTTPステータスコードとレスポンスボディから判断できます。

HTTPステータスコード 意味 レスポンスボディ例 (JSON)
400 パラメーターエラー (必須パラメータ不足)

applicationId を指定しなかった場合

{
    "error": "wrong_parameter",
    "error_description": "specify valid applicationId"
}

keyword が正しい値でなかった時。(半角1文字のみ指定など)

{
    "error": "wrong_parameter",
    "error_description": "keyword parameter is not valid"
}
404 対象のデータが存在しなかった場合
{
    "error": "not_found",
    "error_description": "not found"
}
429 リクエスト過多 (各ユーザ制限値超過)

APIリクエスト数が上限に達した場合のエラーです。しばらく時間を空けてから、ご利用ください。

{
    "error": "too_many_requests",
    "error_description": "number of allowed requests has been exceeded for this API. please try again soon."
}
500 楽天ウェブサービス内のエラー

システムエラー。長時間続くようであれば、こちらよりごお問い合わせください。

{
    "error": "system_error",
    "error_description": "api logic error"
}
503 メンテナンス・リクエスト過多 (全ユーザ制限値超過)

メンテナンス (XXX/XXX にはAPI名が入る)

{
    "error": "service_unavailable",
    "error_description": "XXX/XXX is under maintenance"
}

レスポンスボディの形式は format に従います。

format エラー出力例
json
{
    "error": "wrong_parameter",
    "error_description": "page must be a number"
}
xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <error>wrong_parameter</error>
    <error_description>page must be a number</error_description>
</root>