Sitata APIを活用して旅行者の渡航制限を把握する方法
皆さんの中にはご存知ない方もいるかもしれませんが、Sitataの最初の基盤は、疾病の早期検出のために構築されました。実際、創業者には2016年のTedX講演があり、なぜ旅行者に警告して疾病の拡散を防ぐ必要があるのかについて語っています。ですから、2019年12月初旬に異常な肺炎の集団感染が報告された際、私たちがCOVID-19にいち早く注目したのも驚くことではありません。2020年1月2日、私たちの健康チームは、旅行者とビジネスパートナー向けに最初の警告を発する必要があると判断しました。これは世界保健機関(WHO)よりも数日も早い対応でした!
その後の避けられない混乱の中で、私たちはある閃きを得ました。疾病があまりにも急速に拡大していたため、世界の対応は良くても混乱を極めるだろうことは明らかでした。各国が感染拡大を抑えるために独自の規制やルールを制定するでしょう。これは必然的に世界の旅行に大混乱をもたらし、それでも旅行を希望する人々にとって大きな混乱の元となるはずでした。私たちの予測は的中し、私たちはこの問題に対処することを決意しました。Sitataは、COVID-19に起因する渡航制限や入国要件の変更を監視する専用APIとサービスを世界で最初に構築した企業の一つです。高度なイベント検出ソフトウェアシステムと専任のアナリストチームを既に有していた私たちは、この取り組みに必要なすべての適切なツールとプロセスを備えていました。
この新サービスを開始して以来、Eddy Travels、Flight Centre、Etihad Airwaysなど、多様な組織が自社の顧客の利益のためにこのデータを活用しています。また、近日中に発表される組織もさらにあります!旅行に焦点を当てたより多くの組織がこの提供から恩恵を受けられるようにするため、以下では様々なユースケースでAPIをどのように使用するかを説明する一連の例を詳細に記述しました。これらの説明が、皆さん自身の取り組みを始める手助けとなれば幸いです。
入国要件
間違いなく、旅行者が最初に尋ねる質問は「そこに行けますか?」と「隔離されますか?」です。ですから、ここから始めるのが良いでしょう。私たちは、国や地域への入国に関する「はい/いいえ」で答えられる厳格な質問に答えるために、入国要件データセットを作成しました。
本記事執筆時点で、このデータセットには以下の10の異なるカテゴリが含まれています:
- 居住者は入国できますか?
- 外国人は入国できますか?
- 通過は許可されていますか?
- 到着時の検査(疾病発生時)は必要ですか?
- 検査証明書(疾病発生時)は許可されていますか?
- 到着時の隔離(疾病発生時)は必要ですか?
- ワクチンは必要ですか?
- 保険は必要ですか?
- 検査証明書は必要ですか?
- 登録フォーム(健康関連その他)は必要ですか?
各カテゴリは、以下のいずれかの値を取ることができます:
- はい
- はい(例外あり)
- いいえ
- いいえ(例外あり)
ほとんどの値は「はい」と「いいえ」ですが、現地の状況は必ずしも単純ではありません。時には、各国政府が実施した非常に奇妙で非常識なルールがあり、「例外あり」というタイプの値を必要とすることがあります。
入国要件は、本質的には、ある主体が一つまたは複数の国や地域に対して課した一連の規則を文書化したレコードです。私たちのデータ構造では、その主体は国、州、あるいは自治体さえもあり得ます。一般的に、Sitataは現在、国レベルのデータをカバーしています。ただし、アメリカ合衆国などの特定の地域については、州/省レベルのレコードもいくつか保持しています。
**origin_country_division_id** または **origin_country_region_id** フィールドの下にエントリがあるレコードは、それぞれ州レベルまたは自治体レベルのものです。より詳細なデータが必要な場合は、お問い合わせいただければ、ユースケースについて話し合うことができます。
入国要件のデータ構造に慣れるために、ぜひAPIドキュメントをご覧ください。
データ構造について少し混乱を招く可能性があるのは、「origin(起点)」 という用語の使い方です。開発者はしばしば「origin」を出発地や起点と考えがちなので、混乱を招きます。しかし、私たちが「origin」で意味するのは、実際には他の国や地域に課された規則の「発信元」、つまり制限を作成した国や地域のことです。
もう一つ重要な点は、影響を受ける国のリスト(affected_countries)の動作方法です。affected_countriesが空の場合、それはグローバルルール、つまりすべての国が影響を受けると解釈すべきです。
いくつかの例
ドキュメントでご覧になったように、APIからデータを取得する方法はいくつかあります。以下では、最も一般的なユースケースのいくつかを見ていきましょう。
2つの国間の要件を取得するには?
この種のリクエストを行う方法はいくつかあります。最もシンプルなバージョンは、**departure**(出発)と **destination**(到着)パラメータを使用する方法です。これらのパラメータは、ISO 3166-1 alpha-2 コードを入力として受け付けます。
GET https://www.sitata.com/api/v2/entry_requirements?departure=DE&destination=IN
レスポンスには、出発国から出発し目的地の国へ旅行する旅行者が理解するために必要なすべての要件(国レベルおよび州レベル)が含まれます。
州レベルのデータが必要な場合は?
Sitataは特定の地域について州レベルのデータを持っています。特定のエントリが州レベルのものであるかは、origin_country_division_id フィールドに値があるかどうかでわかります。また、**destination_country_division** パラメータを使用して、州レベルのデータのみを取得するようにフィルタリングすることもできます。このパラメータは ISO_3166-2 の値を期待します。例えば、アメリカ合衆国のテキサス州の場合は US-TX です。
GET https://www.sitata.com/api/v2/entry_requirements?departure=DE&destination_country_division=IN-AP
国ごとにクエリを実行し、州レベルのデータが存在するかどうかをフィルタリングして確認し、存在すればそれを使用する方が簡単かもしれないことに注意してください。
2つの空港間の要件を取得するには?
国の場合と同様に、Sitata APIは2つの空港間の結果を返すことができます。departure_airport と destination_airport パラメータは、ICAO または IATA 空港コードを使用して結果をフィルタリングします。レスポンスには、対応する出発国から出発し目的地の国へ旅行する旅行者が理解するために必要なすべての制限(国レベルおよび州レベル)が含まれます。
GET https://www.sitata.com/api/v2/entry_requirements?departure_airport=MUC&destination_airport=BOM
レスポンスには、出発国から出発し目的地の国へ旅行する旅行者が理解するために必要なすべての制限(国レベルおよび州レベル)が含まれます。
都市の情報しかない場合は?
Sitataは、特定の都市名によるクエリに対応しないことを選択しました。なぜなら、それは衝突や混乱を招く可能性があるからです。代わりに、私たちは緯度・経度座標によるAPIへのクエリに対応することを選択しました。これにより、結果セットに曖昧さが生じることはありません。パラメータは departure_lat、departure_lng、destination_lat、destination_lng です。
GET https://www.sitata.com/api/v2/entry_requirements?departure_lat=48.13743&departure_lng=11.57549&destination_lat=19.0760&destination_lng=72.8777
都市を位置情報に解決し、座標に基づいてクエリを実行すれば、私たちのAPIは、出発国から出発し目的地の国へ旅行する旅行者が理解するために必要なすべての制限(国レベルおよび州レベル)で応答します。
追加データ
一部のタイプの入国要件には、extras と呼ばれるメタデータタイプのフィールドに関連する追加データがある場合があります。このフィールドは、特定の要件に関する様々な追加情報のキー/値マッピングです。
隔離日数は?
このデータエントリは、入国要件 タイプ5 に該当します。このエントリでは、**extras** マッピングに quarantine_days というフィールドが含まれ、課された隔離日数を示す整数が格納されます。
陰性のCOVID検査証明は入国何時間前まで有効?
このデータエントリは、入国要件 タイプ8 に該当します。このエントリでは、**extras** マッピングに entry_hours というフィールドが含まれ、入国前に陰性のCOVID検査が許可される時間数を示す整数が格納されます。
お知らせください
私たちは、旅行者が道中で遭遇する可能性が高いことを理解する手助けをするために、皆さんのあらゆるニーズを満たす非常に堅牢な製品を持っていると信じています。もし私たちが対応していない特定のユースケースがありましたら、ぜひお知らせください!
待って… まだあります!
この記事は、入国要件と渡航制限情報のためにSitata APIと対話する方法を説明する2部構成のシリーズの第1部です。これまで、国や地域に入国するために必要な「はい/いいえ」タイプの要件を概説する「入国要件」について話してきましたが、国内で何が起こるかについてはまだ話していません。国に入ることについて知るのと、国内を移動できるか、ビーチを訪れられるか、あるいは義務的な夜間外出禁止令があるかどうかを理解するのとは別のことです。
第2回の記事では、私たちの「渡航制限」データセットについて掘り下げます。ヒント:ほとんど同じですので、それまでにAPIドキュメントを覗いてみることもできます。