ショッピング

Shopping API を使用して、世界中の 700,000 か所の施設の最新の料金と空室状況にアクセスできます。

概要

指定した施設 (1 回のリクエストで最大 250 施設) のすべての客室タイプの料金と空室状況が Shopping API から返されます。応答には、プロモーション、料金が払い戻し可能かどうか、キャンセル料金、該当する市場での料金表示条件を満たす完全な料金内訳など、料金に関する詳細が表示されます。

occupancy パラメータのインスタンスを複数組み込む形で、同じタイプの客室を複数リクエストすることもできます。同じリクエストで同じ定員が複数回リクエストされた場合、応答にはその定員の 1 つの料金セットのみが含まれます。最大 8 部屋までを一度にリクエストできます。一度に 9 部屋以上を予約する必要がある場合は、グループ予約パートナーシップについて、アカウントマネージャーにお問い合わせください。

価格表示に関する変更

カリフォルニア州価格表示規制 (バーマン法) が 2024 年 7 月 1 日に発効されることを受け、近日中に変更を予定しておりますのでお知らせいたします。

バーマン法とは

この法律は、短期宿泊施設に滞在するために必要なすべての料金や手数料 (滞在に対して政府から課される税と手数料を除く) が示されていない、客室料金の広告、表示、または提示を禁止するものです。同法案は、短期宿泊施設の所在地において、消費者が滞在を予約する前に、支払いが必要な合計価格に、滞在に対して政府から課されるすべての税と手数料を含めることも義務付けています。「短期宿泊施設」とは、ホテル、モーテル、ベッド & ブレックファスト イン、またはその他の一時的な宿泊施設を意味し、短期レンタルや連続 30 日以内の滞在者に貸し出される住宅を含みます。 詳細については、カリフォルニア州議会法案第 537 号をご覧ください。

Expedia Group は、API パートナーがさまざまな方法で価格を表示できるよう、API に変更を加えています。ただし、最終的には、Expedia Group の API を利用する各パートナーが、エクスペディアの旅行情報および価格を表示する方法が同法に準拠していることを確認する責任を負うことになりますのでご注意ください。

今後の変更点

エクスペディアは、Rapid API の機能を強化し、宿泊全体について基本料金とエクスペディアおよび宿泊施設が徴収するすべての手数料と税を含む合計価格を示す新しいフィールド property_inclusive を追加します。この合計価格の取り消し線付きバージョンも、新しいフィールド property_inclusive_strikethrough で利用できるようになります。宿泊施設の総額表示に対応した新しいフィールドに加え、API レスポンスで税と手数料の内訳を示す方法も再調整しています。エクスペディアが徴収する手数料はすべて、nightly および stayproperty_fee 価格内訳タイプの一部となり、エクスペディアが徴収する税はすべて、nightly および staytax_and_service_fee 価格内訳タイプの一部となります。

これは全施設に適用されることになるグローバルな変更です。変更点を滞りなく導入してスムーズに理解していただくために、リリース日が 2024 年 5 月 29 日に変更されました。今回の変更に関してご不明な点がございましたら、アカウントマネージャーにお問い合わせください。

ロイヤルティポイント

エクスペディアのビジネスレートプログラムに参加しているロイヤルティプログラムがある宿泊施設では、宿泊でホテルのロイヤルティポイントが貯まる機会をビジネス旅行者に提供しています。パートナーは Shopping 応答の amenities ノードを使用することで、旅行者から会員情報を取得する前にロイヤルティの対象となるかどうかを確認し、対象となるかどうかを表示できます。

Shopping API リクエストで loyalty 値フィルターを使用することで、ロイヤルティ対象のビジネスレートに絞って検索することもできます。

注 : ホテルに以前からロイヤルティプログラムがある場合に限り、ビジネスレートでもロイヤルティポイントを獲得できます。

例 :

ロイヤルティポイントの対象となるホテルビジネスレートには、検索の応答の amenities ノードの下に以下のパラメーターがあります。

{
  "id": "2096",
  "name": "Eligible for hotel loyalty points"
}

コミッションインセンティブ

Rapid API パートナーは、指定された宿泊予約日や滞在期間に対して宿泊施設のマージンがより高くなる追加のコミッション インセンティブを利用できます。有効なコミッション インセンティブを提供する宿泊施設を特定するには、Rapid Shopping API リクエストの include パラメーターで rooms.rates.marketing_fee_incentives の値を使用してください。リクエストされた滞在期間のすべてまたは一部にコミッション インセンティブが提供される料金には、Shopping API レスポンスの marketing_fee_incentives オブジェクトにインセンティブの提供元や影響を受ける宿泊部分などの追加の詳細情報が含まれています。在庫の並べ替えと選定プロセスで、この内容と既存のmarketing_fee フィールド、つまり利用可能なすべてのインセンティブを含むマーケティング手数料の概算について検討することができます。

宿泊施設 19248 は、12 月の宿泊に高いマージンを提供しています。宿泊施設 19248 に対して、12 月 22 日から 1 月 5 日までの宿泊の Shopping API リクエストを作成します。Shopping API レスポンスの marketing_fee_incentives オブジェクトを見ると、リクエストされた宿泊の一部、つまり 12 月 22 日から 12 月 31 日まで (14 泊のうちの 10 泊に相当) に対して利用できるインセンティブがあることがわかります。

リクエストの例

curl -X GET "https://test.ean.com/v3/properties/availability\
?checkin=2023-12-22\
&checkout=2024-01-05\
&currency=USD\
&country_code=US\
&language=en-US\
&occupancy=2\
&property_id=19248\
&rate_plan_count=1\
&sales_channel=website\
&sales_environment=hotel_only\
&include=rooms.rates.marketing_fee_incentives\
&travel_purpose=leisure" \
 -H "accept: application/json, application/json"\
 -H "accept-encoding: gzip"\
 -H "authorization: EAN apikey=abcd1234,signature=090a77e7ddd7779980231,timestamp=1697664047"\
 -H "user-agent: TravelNow/3.30.112"

レスポンスの例

[
  {
    "property_id": "19248",
    "rooms": [
      {
        "id": "123abc",
        "room_name": "Fancy Queen Room",
        "rates": [
          {
            "id": "333abc",
            ...
            "marketing_fee_incentives": [
              {
                "source": "property",
                "start": "2023-12-22",
                "end": "2023-12-31"
              }
            ],
            "occupancy_pricing": {
              "2": {
                "nightly": [ ... ],
                "stay": [ ... ],
                "totals": {
                  "inclusive": { ... },
                  "exclusive": { ... },
                  "inclusive_strikethrough": { ... },
                  "strikethrough": { ... },
                  "marketing_fee": {
                    "billable_currency": {
                      "value": "276.36",
                      "currency": "USD"
                    },
                    "request_currency": {
                      "value": "276.36",
                      "currency": "USD"
                    }
                  },
                  "gross_profit": { ... },
                  "minimum_selling_price": { ... },
                  "property_fees": { ... }
                },
                "fees": { ... }
              }
            }
          }
        ]
      }
    ]
  }
]

旅行の目的

travel_purpose パラメータを使用すると、旅行の目的がビジネスなのかレジャーなのかを指定できます。2024 年 4 月 1 日以降、ビジネス料金で購入できるパートナーは、ショップリクエストで travel_purpose=business を使用して、ショップ応答でビジネス料金を受け取る必要があります。リクエストに travel_purpose パラメータが指定されていない場合はレジャーとみなされ、ビジネス料金は返されません。

Availability API リクエストに 24 文字追加するだけで、お客様がビジネス目的で旅行する意向であることを簡単に指定できます。

&travel_purpose=business

取消線でお得感をアピールした料金表示

  • strikethrough フィールドには、ホテルが資金提供する割引が適用される前の税抜合計金額が表示されます。通常は検索結果に税金や手数料を含まない基本価格を表示する、米国などのロケールでこのフィールドを使用する必要があります。
  • inclusive_strikethrough フィールドには、税金と手数料を含む、割引前の合計金額が表示されます。オールインクルーシブ価格 (基本価格、税金、手数料) を表示するロケールに適用される割引をより明確に表示できるようにこのフィールドは設計されています。このフィールドは、請求可能な通貨とリクエストされた通貨の両方で値を返します。

[
  {
    "property_id": "19248",
    "rooms": [
      {
        "id": "123abc",
        "room_name": "Fancy Queen Room",
        "rates": [
          {
            "id": "333abc",
            ...
            "occupancy_pricing": {
              "2": {
                "nightly": [ ... ],
                "stay": [ ... ],
                "totals": {
                  "inclusive": { ... },
                  "exclusive": { ... },
                  "inclusive_strikethrough": {
                    "billable_currency": {
                      "value": "726.63",
                      "currency": "CAD"
                    },
                    "request_currency": {
                      "value": "549.60",
                      "currency": "USD"
                    }
                  },
                  "strikethrough": {
                    "billable_currency": {
                      "value": "650.00",
                      "currency": "CAD"
                    },
                    "request_currency": {
                      "value": "491.64",
                      "currency": "USD"
                    }
                  },
                  "marketing_fee": { ... },
                  "gross_profit": { ... },
                  "minimum_selling_price": { ... },
                  "property_fees": { ... }
                },
                "fees": { ... }
              }
            }
          }
        ]
      }
    ]
  }
]

プロモーションおよび割引価格の表示

Availability API と Price Check API で提供されるプロモーションや取り消し線に基づいて割引された額を表示する場合、販売の特定の時点で、通常料金 (つまり、割引の計算に使用される料金) についての詳細を示す必要があります。使用する表現については以下の文を参照してください。

EU : 通常料金の詳細を明確に示します (例 : 「この料金は、検索内容に基づき施設によって示された通常料金です」)。

イタリア : 次の表現を使用します : “Questo prezzo è basato sulla tariffa generalmente applicabile fornita dalla struttura per questa camera e per queste date”。

利用不可理由

unavailable_reason 機能を使用すると、設定された滞在 (滞在期間と宿泊者数) で宿泊施設が完全に利用できない理由に関する実用的な情報をリクエストできます。この情報を応答で受け取るには、ショッピング時にオプションのリクエストパラメーター include=unavailable_reason を含める必要があります。ただし、利用できないすべての宿泊施設に、予約できないことに関する不適切な理由があるわけではありません。これらの宿泊施設は応答では返されません。

ショップ応答には、空室がある宿泊施設とそうでない宿泊施設が混在する場合があります。利用できない宿泊施設には property_idscoreunavailable_reason セクションが含まれます。このセクションには、利用できない宿泊施設に関する簡単な説明 (英語) がある code と、宿泊施設 / 客室 / 料金プランを利用可能にするためにリクエストで調整できる追加情報の data が含まれます。たとえば、unavailable_reason codeadults_exceed_threshold の場合、data 内の 2 は、その客室 / 料金で許可される最大人数が大人 2 名であることを意味し、宿泊者数が 2 名を超える場合はエラーが返されます。

注 : 宿泊施設には複数の制限を適用できますが、返される unavailable_reason は 1 つだけです。

[
  {
    "property_id": "824739",
    "score": 12345,
    "unavailable_reason": {
      "code": "adults_exceed_threshold",
      "data": "2"
    }
  }
]

返されるコードの完全なリストについては、こちらを参照してください。

設備 / サービスフィルター

必要に応じて、amenity_category リクエストパラメータと 1 つ以上の特定の設備 / サービスを使用して、Rapid Shop 応答で返された宿泊施設を絞り込むことができます。

応答の絞り込みに使用できる設備 / サービスのリストについては、こちらにある「コンテンツリファレンスリスト」の「アメニティカテゴリ」セクションを参照してください。

単一の設備 / サービスフィルター :

&amenity_category=free_breakfast

複数の設備 / サービスフィルター :

&amenity_category=free_breakfast&amenity_category=free_airport_transfer&amenity_category=casino

レート制限

トラフィックの最適化は、パートナーにレート制限を適用することによって実現します。これらのレート制限により、安定した保守可能なサービスをパートナーに継続的に提供できると同時に、Expedia Group システムの効率的な使用を確保できます。ショップのトラフィックの場合、負荷を決定する重要な要素は、各リクエストで検索される宿泊施設の数、客室の数、滞在期間です。

レート制限の詳細については、 こちらを参照してください。

Price Check

Shop の応答で返された料金を確定します。予約を行う前にこの API を使用して、以前に選択した料金が現在も有効であることを確認します。料金が一致する場合、応答には予約をリクエストするためのリンクが返されます。料金が変更されている場合、応答には新たな料金の詳細とその新料金での予約リンクが返されます。料金が適用されなくなった場合は別の料金で再度検索するよう、応答には新たなショップリクエストのリンクが返されます。

totals.property_feesfees の PriceCheck に表示される請求金額では、前の Shop レスポンスと比べて約 0.1% (1 室あたり × 人数 × 宿泊数) という若干の誤差が生じる場合があります。Expedia Collect (事前決済) の料金で request_currencybillable_currency が異なる場合のみ、施設の手数料でこのような不一致が生じる可能性があります。この場合、API はエラーなしで機能します。

支払いオプション

承認された支払いオプションを返します。この API を使用して支払いページを開き、有効な支払いフォームを表示して、予約をスムーズに進めることができます。Property Collect として示される料金は、施設が承認したカードタイプです。他の料金タイプはすべてエクスペディアが承認している支払いオプションです。

重要な注意事項

  • language では、ハイフンでつながった一対の 2 桁の言語と国のコードのみを使用できます。コードを使用する前にサポート対象言語を確認してください。
  • この 2 桁の country コードは旅行者の販売地点を設定するもので、ローカライズされたコンテンツには影響しません。
  • 静的データ (名称、星評価、地理情報など) は返されません。空室状況と料金に関連したデータのみが提供されます。
  • トークン化されたリクエストリンクは短期間で失効します。トークンリンクが HTTP 503 エラーを返す場合、リンクが失効している可能性があります。ショップの応答を更新して新たな料金チェックまたはデポジットのリンクを取得し、再度お試しください。長期の使用を目的として、リンクの値を保存しないでください。
  • Rapid API では、施設のコンテンツをいつでも更新できます。最新の情報をお客様にお伝えするようお願いいたします。Shop API で、空室状況と料金についてできる限り最新の情報を提供できます。この応答にはない施設レベル、客室レベル、料金レベルの情報をさらに得るには、Property Content API を使用します。
  • API では 1 部屋にのみ基づいて料金を提示します。複数の客室を予約する場合は、追加の計算を自分で行う必要があります。ローンチ必要条件の一部として、統合環境では、旅行を予約するステップでエンドユーザに料金の詳細な内訳を表示する必要があります。この内訳は、セキュリティで保護されたドキュメントのリンクで確認できます。

このサービスのテスト リクエストを実行するには、「テストリクエスト」ドキュメントを参照してください。

API の詳細

このページでショッピング関連のエンドポイント定義を調べてから、API Explorer または別のテストソフトウェアを使用して、例とスキーマ定義が実際の出力とどのように比較されるかを理解します。


その他のリソース

すべての Rapid API エンドポイントを試してみたい場合でも、OpenAPI 仕様や Postman コレクションをダウンロードしたい場合でも、必要なリソースが用意されています。



このページは役に立ちましたか ?
このコンテンツに改善が必要な点があれば、
サービス向上にご協力いただきありがとうございます。