電話番号の検証およびフォーマットAPI
電話番号検証APIは242の国と地域でサポートされています。
電話番号の検証およびフォーマットAPIを使用すると、ユーザーがさまざまな形式で入力した電話番号を簡単に処理できます。たとえば、1(212)-867-53-09
、+1 212 8675309
、001-212.867.5309
、または単に2128675309
のように不規則な形式でも、当APIは構造をインテリジェントに検出し、標準化された形式に変換します。
このツールは、入力を自動的にE.164形式に変換します。これは国際電話番号の標準形式です。たとえば、+1 212 867 5309
は+12128675309として返され、国際的な通話システムや統合に適しています。
フォーマットだけでなく、APIは詳細な電話番号検証機能も提供します。番号がisValid: true
(国内の番号計画に従って有効)かどうかをチェックし、isPossible: true
(現時点で割り当てられていなくても存在する可能性があるか)も判定します。これは、保存や処理前の事前検証に役立ちます。
numberTypeパラメータにより、電話番号が携帯電話、固定電話、またはVoIPかを識別できます。SMS認証では携帯電話番号のみを許可したい場合や、オフィス連絡先では固定電話のみを使用したい場合などに役立ちます。
市外局番認識をサポートしており、APIは電話番号の地理的な由来も特定できます。たとえば、212
で始まる番号はニューヨーク市(マンハッタン)に自動的にマッピングされます。この機能は、位置情報に基づくセグメンテーションや分析に最適です。
各電話番号には、ISO地域コード(例:US
)や数値の国コード(例:1
)などの国レベルの詳細メタデータも付随しており、アプリケーション内で地域ごとのロジックや表示形式を実現できます。
✅ APIレスポンス
JSONレスポンス例:
{
"status": true,
"remaining_credits": 15709,
"expires": 0,
"duration": "18ms",
"regionCode": "US",
"countryCode": 1,
"country": "Unites States",
"national": "(212) 867-5309",
"international": "+1 212-867-5309",
"e164": "+12128675309",
"isValid": true,
"isPossible": true,
"numberType": "FIXED_LINE_OR_MOBILE",
"nationalSignificantNumber": "2128675309",
"rawInput": "+1 212 867 5309",
"isGeographical": true,
"areaCode": "212",
"location": "New York City (Manhattan)"
}
電話番号検証APIを試してみる
基本的な使い方
次のエンドポイントに電話番号を送信してください:
https://api.genderapi.io/api/phone?key=YOUR_API_KEY&number=12128675309
こちらのリンクから1日200クレジット付きの無料APIキーを取得できます。
アドレスパラメータ
APIは、address
というオプションのパラメータもサポートしており、国際電話コードが含まれていない電話番号を処理する場合に非常に役立ちます。このフィールドを使うことで、想定される地域をシステムが判定し、正確に番号を解析できます。たとえば、入力が2128675309
で、国コードが指定されていない場合、address=US
、address=United States
、またはaddress=New York
を指定することで、APIはその番号がアメリカ合衆国に属すると判断します。
address
パラメータは、以下のような形式に対応しています:
- ISO 3166-1 alpha-2コード(例:
US
、DE
、TR
) Germany
、Turkey
、America
のような国名Berlin
、Istanbul
、New York
などの都市名または地域名
address
パラメータは任意ですが、電話番号が国際電話コード(例:+1
、+44
、+90
)で始まっていない場合は必須となります。この文脈情報がないと、APIは国内番号形式を正しく解釈できない可能性があります。
アドレスパラメータ付きの例:
https://api.genderapi.io/api/phone?key=YOUR_API_KEY&number=12128675309&address=US
レスポンスフィールド
フィールド | 型 | 説明 |
---|---|---|
status | Boolean | リクエストが成功した場合はtrue 。 |
remaining_credits | Integer | このリクエスト後に残っているAPIクレジット数。 |
expires | Integer(UNIXタイムスタンプ) | クレジットの有効期限(秒単位)。 |
duration | String | リクエスト処理にかかった時間(例:308ms )。 |
regionCode | String | 検出された国のISO 3166-1 alpha-2地域コード(例:US )。 |
countryCode | Integer | 国際電話の国番号(例:アメリカ合衆国は1 )。 |
country | String | 人間が読みやすい形式の国名(例:United States)。 |
national | String | 国内形式でフォーマットされた電話番号(例:(212) 867–5309 )。 |
international | String | 国際形式でフォーマットされた番号(例:+1 212–867–5309 )。 |
e164 | String | E.164形式での電話番号(例:+12128675309 )。 |
isValid | Boolean | 地域の規則に従って番号が有効な場合はtrue 。 |
isPossible | Boolean | 構文的に有効で存在する可能性がある場合はtrue (まだ割り当てられていなくても)。 |
numberType | Enum[String] | 電話番号のタイプ。例:FIXED_LINE 、MOBILE 、FIXED_LINE_OR_MOBILE など。 |
nationalSignificantNumber | String | 国番号なしの完全な国内番号(例:2128675309 )。 |
rawInput | String | APIリクエストで提供された元の電話番号。 |
isGeographical | Boolean | 地理的な地域に関連付けられる番号(例:固定電話)の場合はtrue 。 |
areaCode | String | 番号の市外局番部分(例:212 )。 |
location | String | 市外局番に関連付けられた地理的位置(例:New York City (Manhattan) )。 |
番号タイプの値
タイプ | 説明 |
---|---|
FIXED_LINE | 地理的な場所に結び付けられた標準の固定電話番号。 |
MOBILE | 通話およびSMSが可能な携帯・モバイル番号。 |
FIXED_LINE_OR_MOBILE | 固定電話またはモバイルのいずれかである可能性がある番号。番号計画では区別が不明確。 |
TOLL_FREE | 通話料が受信者負担となるフリーダイヤル番号(例:アメリカの800番号)。 |
PREMIUM_RATE | エンタメや情報サービスなどで高額料金がかかるプレミアム番号。 |
SHARED_COST | 発信者と受信者で通話料を分担する番号。 |
VOIP | SkypeやGoogle Voiceなどインターネット経由の通話サービス用VoIP番号。 |
PERSONAL_NUMBER | ユーザーが任意の電話番号に転送できる個人用番号。 |
PAGER | テキスト通知に使用されるポケットベル番号(現在はほぼ廃止)。 |
UAN | 企業が単一の連絡先として使用するユニバーサルアクセス番号。 |
VOICEMAIL | ボイスメールサービスにアクセスするための専用番号。 |
UNKNOWN | 番号タイプを判定できなかった場合。 |
+
記号や国名のスペースなど)が含まれている場合は、
GETリクエストを送信する前に必ずURLエンコードしてください。そうしないと、リクエストが失敗したり、パラメータが正しく解釈されない可能性があります。
❌ 誤った例:
curl "https://api.genderapi.io/api/phone?number=+49 151 12345678&address=United States&key=YOUR_API_KEY"✅ 正しい使用法(URLエンコード済み):
curl "https://api.genderapi.io/api/phone?number=%2B49%20151%2012345678&address=United%20States&key=YOUR_API_KEY"プログラミング言語に用意されているURLエンコード関数を使って、送信前にパラメータをエンコードすることもできます。
POSTリクエストによる電話番号検証API
POSTメソッドを使用して、アメリカの電話番号を検証できます。
E.164形式、国内形式、または国際形式の電話番号とともに、国名/住所を指定するだけです。
APIキーはBearerトークンとして送信する必要があります。
cURLの例
curl -X POST "https://api.genderapi.io/api/phone" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"number": "+12128675309", "address": "US"}'
PHP cURLの例
<?php
$url = "https://api.genderapi.io/api/phone";
$data = array(
"number" => "+12128675309",
"address" => "US"
);
$payload = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Authorization: Bearer YOUR_API_KEY"
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
JavaScript fetch の例
fetch("https://api.genderapi.io/api/phone", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
number: "+12128675309",
address: "United States"
})
})
.then(response => response.json())
.then(data => console.log(data));
Python requests の例
import requests
url = "https://api.genderapi.io/api/phone"
payload = {
"number": "+12128675309",
"address": "United States"
}
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
クライアントライブラリ
統合をより簡単にするために、さまざまなプログラミング言語向けの公式およびコミュニティ提供のクライアントライブラリを用意しています。
これらのライブラリを使用すれば、Phone Number Validation APIなどのGenderAPIエンドポイントとやり取りする際に、HTTPリクエストやJSON解析を手動で行う必要はありません。
環境に合ったライブラリを選択し、インストールするだけで、簡単にリクエストを実行できます。
利用可能なクライアントライブラリとインストール手順は以下のページで確認できます:
https://www.genderapi.io/ja/docs-client-libraries
よくある質問(FAQ)
1. Phone Number Validation & Formatter APIとは?
世界中の電話番号を検証、フォーマット、および解析できるツールです。番号をE.164の標準形式に変換し、地域、タイプ(携帯/固定)、有効性などのメタデータを特定できます。
2. このAPIは何に使われますか?
電話番号が有効かどうかのチェック、国際利用向けのフォーマット、番号タイプの識別(例:モバイル、VoIP)、地域メタデータの検出、CRMやマーケティング、ユーザー登録などでのクリーンな電話番号入力に使用されます。
3. 何カ国に対応していますか?
このAPIは242の国と地域の電話番号をサポートしています。国際的または地域的なアプリケーションにも対応可能です。
4. どのフォーマットに対応していますか?
国内形式、国際形式、E.164形式など、さまざまな形式の番号を受け付け、自動的に正しい形式に変換します。
5. 国または住所パラメータを省略するとどうなりますか?
電話番号が「+」で始まらず、かつaddress
パラメータが指定されていない場合、APIは番号を正しく解釈できない可能性があります。US
、United States
、New York
などのaddress
パラメータの指定を推奨します。
6. 番号タイプの検出は可能ですか?
はい。APIはnumberType
フィールドを返し、MOBILE
、FIXED_LINE
、VOIP
などを示します。
7. isValid
とisPossible
の違いは?
isValid
はその番号が正式に割り当てられ、地域のルールに準拠していることを意味します。isPossible
はその番号構造が理論上は存在可能かを示し、まだ割り当てられていない場合も含みます。
8. APIレスポンスの内容は?
成功したレスポンスには、ステータス、フォーマット済みの番号(国内・国際・E.164)、地域情報、番号タイプ、クレジット使用量などが含まれます。詳細は「APIレスポンス例」セクションをご覧ください。
9. APIキーの送信方法は?
GETリクエストでは、?key=YOUR_API_KEY
としてURLに追加します。
POSTリクエストでは、ヘッダーにBearerトークン形式で送信します:
"Authorization: Bearer YOUR_API_KEY"
10. status: false
が返された場合は?
リクエストが失敗したことを意味します。message
フィールドに、パラメータ不足・無効な電話番号・クレジット不足などのエラー理由が記載されます。
11. 入力に特殊文字やスペースを含めても良いですか?
はい、ただしGETリクエストではURLエンコードが必要です。たとえばスペースは%20
に置き換える必要があります。正しい使用法については上記の警告セクションをご覧ください。
12. 異なる形式や言語で住所を指定できますか?
はい。address
パラメータは、US
、DE
、TR
などのISO 3166-1 alpha-2コードに加え、国名や都市名(異なる言語も含む)も受け付けます。
APIは内蔵AIを用いて適切な国や地域をインテリジェントに解釈します。例:
address=Deutschland
address=États-Unis
address=İstanbul
address=New York
address=Estados Unidos
これらの入力はすべて、問題なくそれぞれの国や地域に正しくマッピングされます。