Twilio Lookup APIを使用して、電話番号の契約状況を確認する方法

April 08, 2026
執筆者
レビュー担当者

2026年現在、このチュートリアルで紹介しているAPI機能は米国でのみ提供されています。米国外の国や地域でのご利用を検討中の方は、お問い合わせください。

電話消費者保護法(TCPA)に準拠するため、アプリケーションから連絡する際には事前の同意が必要です。TCPA違反の原因として挙げられるのが、同意した人の電話番号が解約され、新しい所有者に割り当てられているケースです。元の所有者から同意を得ていたとしても、電話番号が別人に渡った時点でその許可は無効となり、新しい所有者に連絡する同意を得たことにはなりません。

TwilioのLookup APIは、電話番号の再割り当て状況を確実に確認できるため、コンタクト率やキャンペーン効率の向上に加え、コンプライアンス違反による罰金リスクの回避にも役立ちます。この機能は、マーケティング通知の最適化に効果的です。

Twilio Lookup APIをセットアップし、電話番号の再割り当て状況を確認する方法

Lookup APIを使用するための前提条件は以下の通りです。

  1. Twilioアカウント - サインアップはこちら。
  2. Twilioのテスト用認証情報 - Consoleの[Auth Tokens](認証トークン)のページで確認できます。
  3. 本番環境で[Reassigned Number](番号再割り当て)データパッケージを利用するには、別途承認が必要です。承認には、通常2〜4営業日かかります。注 - 開発環境では、テスト用認証情報を使用しsてすぐにAPIを試すことができます。

このチュートリアルでは、テスト用認証情報でLookup APIを呼び出し、番号の再割り当て状態を示す確定的な応答を取得する手順を解説します。

APIリクエストの送信には、電話番号の他に、以下の2つのパラメータが必要です。

  1. Fields: reassigned_number。Lookup APIには多様なデータパッケージが用意されており、Fieldsパラメータで取得したい情報を指定します。他の項目もご覧ください。
  2. LastVerifiedDate。エンドユーザーに連絡する同意を得た日付、エンドユーザーに最後に連絡した日付、またはユーザーがアプリケーションで電話番号を最後に更新した日付をYYYYMMDD形式で指定します。

テスト用認証情報を取得したら、その次のリクエストに含まれる認証情報をこの情報に差し替えて置き換えてください。Node.jsやPythonなどの言語でのリクエスト方法についてはドキュメントを参照してください。

curl -X GET "https://lookups.twilio.com/v2/PhoneNumbers/12345678904?Fields=reassigned_number&LastVerifiedDate=20211227" \
-u $TWILIO_TEST_ACCOUNT_SID:$TWILIO_TEST_AUTH_TOKEN

これに対する応答で、再割り当てされた電話番号が返されます。応答には、sim_swapやline_type_intelligenceなど、値がnullのキーも複数出力されます。これは、Fieldsパラメータを使用して複数のデータパッケージを同時にリクエストできるためです。Lookup APIは、デフォルトで番号のフォーマットや検証結果も返します。

{
 …
 // other data packages
 … 
 "reassigned_number": {
    "last_verified_date": "2021-12-27",
    "is_number_reassigned": "yes",
    "error_code": null
  },
  ...
}

また、is_number_reassignedフィールドの値はブール値ではなく、以下の3つのいずれかの値となります。

  1. yes。指定した最終確認日以降に、電話番号が再割り当てされたことを示しています。この場合、別の連絡手段でユーザーにアプローチし、最新の電話番号の確認と、改めて連絡の同意を得る必要があります。
  2. no。電話番号の所有者は変更ありません。この応答が返された場合、同意の証明があればTCPA違反の対象外(セーフハーバー)となります。
  3. no_data_available。一般的に、これはLastVerifiedDateが2021年1月より前であることを意味しており、連絡に関する同意を再度得る必要があることを示しています。

その他の応答については、Lookupのテスト用マジックナンバーをお試しください。

FCCデータベースと「セーフハーバー」の仕組み

Twilioは、米連邦通信委員会(FCC)が管理する公式データベースを参照しており、このデータベースは毎月16日に更新されます。月に複数回、電話番号の再割り当て状況を確認する必要がある場合は、毎月17日に情報を更新することをお勧めします。17日に取得したデータは、翌月16日に公式データベースが更新されるまで有効です。何らかの理由でデータベース側に問題が生じた場合でも、適切なドキュメントを提出することで、発信者が法的責任を免除される可能性があるとFCCは示唆しています。

45日間の猶予期間ルール

報告のタイムラグによるトラブルに対処するため、FCCでは45日間の「猶予期間」を義務付けています。サービスプロバイダーは、解約された電話番号を新しいユーザーへ再割り当てするまでに、少なくとも45日間の「猶予期間」を設けることが義務付けられています。

また、プロバイダーは毎月15日までに解約情報を報告する必要があるため、この45日間の猶予期間により、発信者は再割り当てによるコンプライアンスリスクを軽減できます。例えば、以下のようになります。

  • 1日目: 顧客が電話番号を解約します。

  • 15日目: プロバイダーが、電話番号の解約をFCCに報告します。

  • 16日目: データベースが更新されます。

  • 45日目以降: 45日間の猶予期間が過ぎると、その電話番号は別のユーザーへ正式に再割り当てされることになります。

セーフハーバー(違反の免責)

Lookup Reassigned Number APIからの応答が「no」の場合、TCPAへの準拠が確保され、FCCが定めるセーフハーバーに該当する証明(以下の2および3)となります。

TCPAに基づく賠償責任から免責されるには、発信者は以下を証明する必要があります。(1)通話の対象者から事前に同意を得ていること、(2)同意を取得した日付以降に番号が解約・再割り当てされていないか確認するため、発信者(またはその正当な委託業者)が電話をかける前にデータベースを照会していること、(3)データベースの照会結果として「no」の応答を得ていること。

FCCは、いかなるデータベースも完全なリアルタイム更新ではないことを認めています。セーフハーバーは、公式な情報源を確認するという適切な「デューデリジェンス」を行った場合に適用される法的保護です。ただし、通話対象者から事前に同意を得ていることの立証責任は、発信者側であることは変わりません。

一般的なエラーコードのデバッグ

APIでエラーが発生した場合、エラーコードはreassigned_numberレスポンスキー内にネストされた形で返されます。ただし、HTTPステータスコードは引き続き「200」のまま返されます。1回のリクエストで複数のLookupパッケージを指定でき、そのうち成功するのは一部のみの可能性があるためです。

{
 ...
 "reassigned_number": {
    "error_code": 60606,
    "last_verified_date": null,
    "is_number_reassigned": null,
  },
  ...
}

一般的なエラーは以下の4つです。

電話番号の再割り当て照会機能を本番環境に導入する

マーケティングメッセージにおけるコンプライアンスの遵守は不可欠であり、電話番号の再割り当てを検出することで罰金のリスクを回避できます。Twilioでは発信禁止リストを保持していないため、National Do Not Call(DNC)レジストリと併せてLookup APIの再割り当て照会機能を活用し、顧客への連絡に関する同意状況を判断することを推奨します。アプリケーションを本番環境で実行する準備が整ったら、通信キャリアの承認を取得し、テスト用認証情報から本番環境のAPIキーへと切り替えてリクエストを実行します。

電話番号の再割り当て照会を設定した後は、SMSによる2FAリクエストを送信する前に、Line Type IntelligenceによるVoIP番号の検出、SIM交換された電話番号の検索を含め、Twilio Code Exchangeで他のLookupデータパッケージの試行をお勧めします。その後、Verify APIを組み込むことで、電話番号の所有権を検証し、ユーザー認証プロセスを完了できます。お客様の成功が私たちの喜びです。