SMS API完全ガイド|実装サンプルコード(Python/PHP/Node.js)付き

SMS送信APIは、自社のシステムやアプリケーションにSMS送信機能を組み込むための仕組みです。API連携により、SMS認証の自動化や予約リマインド、重要通知などを効率的に行えます。しかし、多くのサービスがあるため、どのAPIを選べば良いか迷う担当者の方も多いのではないでしょうか。
KDDI Message Cast APIは、市場シェアNo.1(16.59%)を獲得し、国内4キャリア直収接続による98%以上の到達率を実現。さらに2025年5月からは、画像・動画・ボタンを含むリッチなメッセージを配信できる次世代規格RCSにも対応しています。
本記事では、SMS送信APIの基本的な機能や活用シーン、導入のメリット、そして自社に最適なサービスの選び方や導入手順を徹底解説します。Python、PHP、Node.jsでの実装サンプルコードや、Salesforce・kintoneとの連携例、トラブルシューティングまで網羅していますので、ぜひ参考にしてください。
目次
SMS送信向けAPIとは何?
SMS送信向けAPIとは、自社のシステムへSMS送信機能を追加するための仕組み(API)です。API(アプリケーション・プログラミング・インターフェイス)は、自社の顧客管理システム(CRM)や業務システムと、SMS送信サービスのような外部のアプリケーションを連携させるための接続仕様を指します。
APIを利用することで、複雑なプログラムを自社で開発することなく、既存のシステムから直接、個別の顧客へのSMS送信や一斉送信を自動化できます。これにより、手作業での送信ミスを防ぎ、業務効率を大幅に向上させることが可能になります。サービスによっては、配信結果の取得などもAPI経由で行えるため、マーケティング施策の効果測定にも活用できます。

APIの基本概念
続いて、SMS送信におけるAPIの基本概念について、KDDI Message Castを例に挙げてご説明します。
KDDI Message CastのAPIプランは、HTTPSプロトコルを使用し、POST/GET/PUTメソッド に対応した REST API が提供されます。データ形式は JSON形式 をサポートしています。
認証方式 も重要な要素です。KDDI Message Cast APIでは、以下の認証方式が採用されています。
- IPアドレス認証
- Basic認証
- トークン認証(RCS/+メッセージの場合)

<認証用途の画面イメージ>
KDDI Message Cast APIの特徴
KDDI Message Cast APIは、国内キャリア直収接続による高い信頼性と、充実した機能を提供しています。
| 特徴 | 詳細 |
|---|---|
| 市場シェアNo.1 | 16.59%を獲得し、業界トップの地位を確立(2024年BOXIL調査) |
| 到達率 | 国内4キャリア直収接続により、98%以上の到達率を実現 |
| RCS対応 | 2025年5月から次世代規格RCSに対応。画像・動画・ボタンを含むリッチコンテンツ配信が可能 |
| セキュリティ | HTTPSによる暗号化通信に対応 |
| SLA保証 | 24時間365日の監視運用サポート体制 |
| 対応フォーマット | JSON形式(REST API)に対応 |
| 高い開封率 | メールと比べ30%高い開封率を実現 |
| 多機能 | RCS、+メッセージ、SMSの3つを統合配信できる唯一のサービス |
| 受賞歴 | ASPICクラウドアワード2年連続受賞 |
参考記事:API連携によるSMS送信 – SMS送信サービス「KDDIメッセージキャスト」
SMS送信サービスにおけるAPI方式とは?
前提として、SMS送信サービスは大きく「キャリア直収接続」(国内の通信キャリア設備と直接接続する方法)と「国際網接続」の2種類の接続方法があります。到達率やユーザーからの見え方に大きく違いがあるため、SMS送信サービスを選択する際にはまずはじめに必ず確認することを推奨します。
SMSの自動送信にはAPI連携が必要
SMS導入時にAPIが必要となるのは、システムと連携して自動的にSMSを送信する場合です。APIが必要な例で最も多いのがSMS認証(2段階認証)です。例えば、アプリで会員登録する際の本人確認でよく使われます。
このほか、KDDI Message Castの管理画面を使わずに自社のシステムから直接SMSを送信したい場合にもAPIは利用されています。企業システムから直接送信するメリットとしては、顧客データを外部に連携する必要がないことが挙げられます。
参考記事:SMS認証とは?仕組みやメリット、本人確認の方法を解説
SMS送信APIサービスの主な機能
SMS送信APIサービスは、単にメッセージを送るだけでなく、業務効率化やセキュリティ強化に役立つ多様な機能を提供しています。
基本的な機能
KDDI Message Cast APIプランで提供されている基本的な機能を表形式でまとめました。
| 機能 | 概要 |
|---|---|
| SMSの一斉送信・個別送信 | 指定した複数の宛先への一斉送信 や、特定の個人への個別送信 が可能です。 |
| 本人認証(2要素認証) | SMSでワンタイムパスワード(認証コード)を送信し、ログイン時のセキュリティを強化する用途で利用されます。 |
| 長文SMS送信 | 通常の70文字(全角)を超えるメッセージを送信できます。キャリアによって異なり、SoftBankの場合は最大670文字、docomo、au、楽天モバイルの場合は最大660文字 まで対応しています。 |
| 配信結果の取得 | 送信したSMSが相手に届いたか(圏外・電源OFFなどで不達か)といった結果をシステムで確認できます。 |
| 双方向SMS (オプション) | お客様からのSMS返信を受信し、双方向のコミュニケーションが可能です。 |
| RCS配信 | 次世代規格RCSに対応。企業ロゴ、画像、動画、ボタンを含むリッチなメッセージ配信が可能です。 |
| +メッセージ配信 | SMSだけでなく、テキスト、画像、動画などを送信できる+メッセージにも対応しています。 |
| フォールバック機能 | RCS → +メッセージ → SMS の自動切替により、すべての顧客に確実にメッセージを届けます。 |
SMS APIの実装方法
ここでは、KDDI Message Cast API(APIプラン)を使ったSMS送信の実装例を、主要な3つのプログラミング言語で紹介します。RCS/+メッセージからのフォールバック機能を含むAPI仕様を前提としています。

共通仕様:
- エンドポイント (例): POST https://xxxxx/xxxxx/v1/fallback/rcs/bot/v1/{botId}/messages
- 認証ヘッダー (例): X-Plusmsg-mkn-Authorization: Bearer {配布トークン}
- 動作指定ヘッダー (例): X-Fallback: 2 (SMSのみを送信する場合)
フォールバック機能について: KDDI Message Cast APIは、受信者の環境に応じて自動的に最適な配信方法を選択します。
- RCS対応端末: リッチなRCSメッセージを配信
- +メッセージ対応端末: +メッセージで配信
- 上記非対応: 標準のSMSで配信
この3階層フォールバック機能により、すべての顧客に確実にメッセージを届けながら、可能な限りリッチなコミュニケーションを実現できます。
Python実装例
# KDDI Message Cast SMS API - Python実装例
import requests
import json
class KDDIMessageCastAPI:
def __init__(self, bot_id, token):
self.bot_id = bot_id
self.token = token
# エンドポイントは契約時に指定されたものを使用してください
self.base_url = "https://example.com/xxxxx/v1/fallback/rcs/bot/v1"
def send_sms(self, to_phone, message):
"""
SMS送信 (X-Fallback: 2 を指定)
Args:
to_phone (str): 送信先電話番号(+81形式)
message (str): メッセージ本文
Returns:
dict: 送信結果
"""
endpoint = f"{self.base_url}/{self.bot_id}/messages"
headers = {
"Content-Type": "application/json",
"X-Plusmsg-mkn-Authorization": f"Bearer {self.token}",
"X-Fallback": "2" # SMSのみを指定
}
payload = {
"message": {
"RCSMessage": {
"textMessage": message
},
"messageContact": {
"userContact": to_phone
}
},
"dst": "0"
}
response = requests.post(
endpoint,
headers=headers,
data=json.dumps(payload)
)
return response.json()
# 使用例
# botId, tokenは契約時に発行されたものを指定
api = KDDIMessageCastAPI(bot_id="your_bot_id", token="your_api_token")
result = api.send_sms(
to_phone="+819012345678",
message="これは、テキストメッセージです"
)
print(result)
PHP実装例
<?php
// KDDI Message Cast SMS API - PHP実装例
class KDDIMessageCastAPI {
private $bot_id;
private $token;
private $base_url = "https://example.com/xxxxx/v1/fallback/rcs/bot/v1"; // 契約時の指定URL
public function __construct($bot_id, $token) {
$this->bot_id = $bot_id;
$this->token = $token;
}
public function sendSMS($to_phone, $message) {
$endpoint = "{$this->base_url}/{$this->bot_id}/messages"; //
$headers = [
"Content-Type: application/json", //
"X-Plusmsg-mkn-Authorization: Bearer {$this->token}", //
"X-Fallback: 2" // SMSのみ
];
$payload = json_encode([
"message" => [
"RCSMessage" => [
"textMessage" => $message //
],
"messageContact" => [
"userContact" => $to_phone //
]
],
"dst" => "0" //
]);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $payload
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
}
// 使用例
$api = new KDDIMessageCastAPI("your_bot_id", "your_api_token");
$result = $api->sendSMS(
"+819012345678", //
"これは、テキストメッセージです" //
);
print_r($result);
?>
Node.js実装例
// KDDI Message Cast SMS API - Node.js実装例
const axios = require('axios');
class KDDIMessageCastAPI {
constructor(botId, token) {
this.botId = botId;
this.token = token;
// エンドポイントは契約時に指定されたものを使用してください
this.baseUrl = 'https://example.com/xxxxx/v1/fallback/rcs/bot/v1'; //
}
async sendSMS(toPhone, message) {
const endpoint = `${this.baseUrl}/${this.botId}/messages`; //
const headers = {
'Content-Type': 'application/json', //
'X-Plusmsg-mkn-Authorization': `Bearer ${this.token}`, //
'X-Fallback': '2' // SMSのみ
};
const payload = {
message: {
RCSMessage: {
textMessage: message //
},
messageContact: {
userContact: toPhone //
}
},
dst: '0' //
};
try {
const response = await axios.post(endpoint, payload, { headers });
return response.data;
} catch (error) {
console.error('SMS送信エラー:', error.response ? error.response.data : error.message);
throw error;
}
}
}
// 使用例
const api = new KDDIMessageCastAPI('your_bot_id', 'your_api_token');
api.sendSMS(
'+819012345678', //
'これは、テキストメッセージです' //
).then(result => {
console.log('送信結果:', result);
});
外部システムとの連携
SMS APIの真価は、既存のシステムと連携することで発揮されます。
Salesforce連携
Salesforceは、世界的に広く使われているCRM(顧客関係管理)システムです。KDDI Message CastはSalesforceとの連携に対応しており、AppExchangeで平均評価4.75という高評価を獲得しています。
AI拡張オプション(Agentforce連携)も提供しており、メッセージの自動生成、最適タイミング送信、双方向自動応答など、AIによる業務効率化も実現できます。
Salesforce連携の活用シーン
| シーン | 説明 |
|---|---|
| 商談成立時の自動SMS送信 | 商談ステージが「成約」に変更されたら、お礼のSMSを自動送信できます |
| フォローアップリマインダー | 最終接触日から30日経過した顧客に、フォローアップSMSを送信できます |
| 契約更新通知 | 契約更新日の1ヶ月前に、更新案内SMSを自動送信できます |
参考記事:SMSのSalesforce連携
kintone連携
kintoneは、サイボウズが提供する業務アプリ構築プラットフォームです。KDDI Message Castは、BIZTEX株式会社が提供する連携プラットフォーム「BIZTEX Connect」を利用することで、kintoneとノーコード・ローコードでの連携が可能です。
kintone連携の活用シーン
| シーン | 説明 |
|---|---|
| 問い合わせ受付時の自動返信 | kintoneに問い合わせが登録されたら、自動で受付完了SMSを送信できます |
| ステータス更新通知 | 案件のステータスが変更されたら、担当者にSMSで通知できます |
| イベント申込み確認 | イベント申込みが登録されたら、確認SMSを自動送信できます |
その他のCRM/MA連携
「BIZTEX Connect」を経由することで、kintone以外にも様々なSaaSとの連携が可能です。
- HubSpot: マーケティングオートメーションと連携して、リード育成にSMSを活用できます
- Microsoft Dynamics 365
- Zoho CRM
また、KDDI Message Castは標準的なREST APIを提供しているため、「BIZTEX Connect」が対応していないシステムや、独自開発したシステムとも個別にAPI連携開発が可能です。
認証とセキュリティ
SMS APIは重要な通知を扱うため、セキュリティが非常に重要です。
認証情報の設定
KDDI Message Cast API(APIプラン)を利用するには、契約後に認証情報が発行されます。 サービスを利用するには、主に以下の設定が必要です。
- Basic認証情報(ID/パスワード)の設定
- 送信元IPアドレスの登録
- トークンの発行(+メッセージ利用の場合)
重要な注意事項: Basic認証情報やトークンは、絶対にGitHubなどの公開リポジトリにコミットしないでください。環境変数や専用の認証情報管理サービス(AWS Secrets Manager、Azure Key Vaultなど)を使用することを推奨します。
セキュリティベストプラクティス
SMS APIを安全に運用するために、以下のベストプラクティスを遵守することが重要です。
| 項目 | 推奨事項 |
|---|---|
| 認証情報管理 | Basic認証情報やトークンは、環境変数や認証情報管理サービスで安全に管理してください。 |
| 通信の暗号化 | 常にHTTPS(TLS)を使用して通信を暗号化してください。 |
| IPアドレス制限 | 送信元サーバーのIPアドレスを登録し、不正なアクセスを防止してください。 |
| ログ監視 | API呼び出しのログを定期的に監視し、異常を検知できるようにしてください。 |
トラブルシューティング
API連携では、様々なエラーに遭遇する可能性があります。
よくあるエラーと対処法
| エラーコード | 説明 | 対処法 |
|---|---|---|
| 401 | 認証エラー | Basic認証の情報が正しいか、送信元IPアドレスが登録されているか、+メッセージの場合はトークンが有効か を確認してください。 |
| 400 | リクエスト形式エラー | JSON形式が正しいか確認してください。必須パラメータ(userContact や textMessage など)が含まれているかも確認が必要です。 |
| 429 | レート制限超過 | 送信間隔を調整してください。短時間に集中すると制限がかかる場合があります。 |
| 500 | サーバーエラー | しばらく待ってから再試行してください。繰り返し発生する場合は、サポートに連絡することをおすすめします。 |
デバッグ方法
API連携のデバッグには、以下の方法が有効です。
ログ出力の実装 リクエストのヘッダー やペイロード、およびレスポンスをログに出力することで、どこで問題が発生しているかを特定しやすくなります。
エラーハンドリングの実装 API呼び出しは必ず try-catch ブロックなどで囲み、HTTPエラーやネットワークエラーを適切に処理してください。
SMS送信向けAPIサービスの活用シーン
SMS送信向けAPIは、その即時性と高い開封率から、多様なビジネスシーンで活用されています。
具体的には、Webサービスやアプリの会員登録時にSMSで認証コードを送る「本人認証」、病院や飲食店の予約前日に確認メッセージを送る「予約リマインド」、料金の支払いが遅れている顧客への「督促連絡」、そして新商品やキャンペーン情報を知らせる「マーケティング・プロモーション」などが代表的な活用例です。
SMSにおけるAPI連携を行うメリット
SMSを活用するうえで、API連携は多くのメリットをもたらします。
- 短期間での導入: ゼロからシステムを開発する場合と比較して、API連携はリードタイムが短く、テストを含めて数日〜数週間で導入可能です。アカウント発行は申込書提出から6~10営業日が目安です。
- 業務効率化とミスの削減: 人の手による作業を自動化し、SMS認証の自動送信などが可能です。これにより業務効率が向上し、宛先間違いなどのヒューマンエラーを防ぎます。
- 無断キャンセルなどのリスク軽減: 飲食店やクリニックの予約リマインドを自動送信することで、顧客の予約忘れを防ぎ、無断キャンセルのリスクを低減できます。
- 到達率・開封率の向上: APIを通じて配信結果(到達・未達など)を取得 し、データを分析できます。これにより、到達しない宛先を除外したり、開封されやすい文面を分析したりと、費用対効果の高い運用が実現します。
SMS送信APIをシステムに組み込む方法
SMS送信でAPIをシステムに組み込むにはサービスを選んで契約・検証することが必要です。
SMS送信APIのサービス選定と契約
まず、SMS送信APIを提供しているサービス会社の情報を集めて選定しましょう。API連携で実現できることはサービス会社によって違います。SMSを運用する上で必要な機能(長文、双方向 など)、将来対応したい機能などをリストアップして、それらを満たす会社を選び出しましょう。
特にCRMなどのシステムを自社で運用している場合には、連携できるかどうかを質問し、実績の有無も確認しましょう。
APIの認証・連携可能性の検証
契約するサービスを決めたら、API認証を受ける必要があります。KDDI Message Cast API(APIプラン)では、IPアドレス登録やBasic認証、トークンなどを使用して認証します。サポート体制が整っているサービスなら、支援を受けながら作業を進められます。
システム開発と実装
API認証が完了したら、自社のシステムと連携させるための開発を行います。KDDI Message Castでは、宛先(userContact)と本文(textMessage)を含むJSONデータをPOSTすることでSMSを送信できるインターフェイスを提供しています。
SMS送信APIを選ぶ際のポイント
SMS送信APIサービスを選ぶ際は、以下のポイントを確認することが重要です。
到達率が高いサービスを選ぶ
API連携は、本人認証や督促など、リアルタイム性と確実性が求められる用途で使われることが多いため、到達率の高い送信方式のサービスを推奨します。「キャリア直収接続」は国内キャリアの設備と直接接続するため、国際網を経由する「国際接続」よりも到達率が高く安定しています。
KDDI Message Castは、国内直収接続により高い到達率を実現しています。
サポートが充実しているAPIを選ぶ
API連携では、少なからず自社でのシステム開発が発生するため、導入後のサポート品質が重要です。トラブル発生時のサポート体制が整っており、問い合わせに迅速に対応してくれるサービスを選ぶことで、安心して開発を進められます。
KDDI Message Castでは、24時間365日体制での監視運用サポート を提供しており、安心のサービス品質を提供しています。
開発が容易なAPIを選ぶ
システム開発者にとって、APIの組み込みやすさは非常に重要な要素です。KDDI Message Castでは、HTTPSとJSONという標準的な技術を採用しており、サンプルコード も参考にしながら実装を進めることができます。
導入事例があるものを選ぶ
導入事例が公開されているかも重要な選定ポイントです。リスクを回避し、安心して導入するためにも、導入事例が豊富なサービスを選ぶのがおすすめです。
API連携の導入事例
日本カーネット株式会社様ではKDDI Message CastのSMS送信サービスでAPI連携を導入して成功しました。日本カーネット様はもともと長文SMS(SoftBank宛なら最大670文字、他キャリア宛なら最大660文字)を送信できる点に魅力を感じ、弊社サービスの利用を検討されていました。
顧客サービスへのSMS活用を円滑に進めるために、日本カーネット様では既存の顧客管理システムとのAPI連携を実施しました。初回無料利用キャンペーンを実施してプロモーションした結果、SMSを利用するユーザー数を大きく増加させるのに成功しています。
参照:日本カーネット株式会社 顧客管理システムからSMS送信のAPIを使用し、SMS送信機能を提供
KDDI Message Cast APIを今すぐ試す
KDDI Message Cast APIは、国内キャリア直収接続による高い到達率 と、充実した機能で、企業のメッセージ配信を強力にサポートします。
料金体系
SMS利用の場合、初期費用・月額費用は0円です。RCS/+メッセージを利用する場合は、別途月額費用がかかります。送信料金は送信成功分のみの完全従量課金制です。
無料トライアルも提供しており、最大2ヶ月、3,000通まで無料でお試しいただけます(業界最高水準)。リスクなく導入検討を進められます。
※ご契約プランにより料金体系が異なる場合があります。詳細はお問い合わせください。
技術サポート
実装についてご不明な点があれば、技術サポートチームがサポートします。24時間365日の監視体制で、安心してご利用いただけます。
参考記事:SMS API連携
法人向けSMS送信サービスなら「KDDI Message Cast」
今回はSMS送信サービスのAPI方式について紹介しました。API方式の場合、企業様でも開発が必要であるため、より信頼性があるサービスを選択することが重要です。
「KDDI Message Cast」はKDDIとKDDIグループのSupershipが共同運営するSMS送信サービスです。サービスを利用することでDMのコストを抑え、電話での連絡の取りづらさも解消し、お客様と確実性の高いコミュニケーションをとることができます。
また、SMSのSalesforce連携も可能です。ぜひお問い合わせください。
まとめ
本記事では、SMS送信APIの機能やメリット、選び方から導入手順、実装サンプルコード(Python/PHP/Node.js)、外部システム連携、トラブルシューティングまでを解説しました。
記事のポイント:
- KDDI Message Cast APIは市場シェアNo.1(16.59%)で、業界をリードしています。
- 国内4キャリア直収接続により98%以上の到達率を実現しています。
- 2025年5月から次世代規格RCSに対応し、RCS → +メッセージ → SMS の3階層フォールバック機能を提供しています。
- JSON形式のREST APIを提供し、認証はIPアドレス認証、Basic認証、トークン認証が使用されます。
- Python、PHP、Node.jsでの実装サンプルコードを参考に、自社システムへの組み込みを進められます。
- Salesforce(AppExchange評価4.75)、kintone、HubSpotなどとの連携に対応しています。
- 無料トライアル(最大2ヶ月3,000通)でリスクなく導入検討できます。
- ASPICクラウドアワード2年連続受賞の信頼性の高いサービスです。
- セキュリティベストプラクティス(IP制限、HTTPS)を遵守することが重要です。
- エラー時のトラブルシューティング方法を理解しておきましょう。
API連携を活用することで、SMS送信を自動化し、業務効率化や顧客サービスの向上を実現できます。サービスを選ぶ際は、到達率の高さやサポート体制、開発の容易さ、導入事例の有無などを比較検討することが重要です。
KDDI Message Castは、市場シェアNo.1(16.59%)という業界トップの実績と、98%以上の到達率を誇る信頼性の高いキャリア直収接続、そして2025年5月から対応した次世代規格RCSにより、最先端のメッセージング体験を提供します。ASPICクラウドアワード2年連続受賞の信頼性と、24時間365日の監視体制による手厚いサポート体制で、多くの企業様に導入いただいています。
無料トライアル(最大2ヶ月3,000通)も提供していますので、SMSのAPI連携をご検討の際は、ぜひお気軽にご相談ください。
資料をダウンロードする(1分)

この資料でわかること
- SMSの利用実態と他コミュニケーションツールとの比較
- ビジネスシーンにおけるSMSの代表的な利用用途
- 「KDDI Message Cast」の導入事例
SMS関連の関連記事

SMS認証における「捨て電話番号」のリスクと企業が導入すべき正規SMS認証システム

SMS配信完全ガイド|配信方法の選び方から運用まで徹底解説【2025年版】

SMS配信サービスの選び方完全ガイド|7つのポイントとKDDI Message Castの特徴【2025年版】

SMSの活用事例12選|販促・マーケティングのポイントやメリット、デメリットを徹底解説

SMS API完全ガイド|実装サンプルコード(Python/PHP/Node.js)付き









