ードからSMSを送信するには、Authorization: Bearerヘッダーと、senderId、destinationNumber、メッセージ、messageTypeを含むJSONボディを添えて、https://api.broadnet.me/sms/sendSmsに対して1回のHTTPS POSTを行います。呼び出しが成功すると、レスポンスボディにメッセージIDを含むHTTP 200が返されます。配信結果は、後ほど配信レポート(DLR)としてWebhookに届きます。以下の各言語では、標準のHTTPライブラリのみを使用しています。唯一の公式なSDKは、TypeScriptおよびNode.js用です。
重要なポイント
- エンドポイント:https://api.broadnet.me/sms/sendSms,にJSONボディとBearerトークンをPOSTします。
- 必須フィールド:senderId、destinationNumber(プラス記号なしの国際形式)、メッセージ、messageType(TEXT)。
- レスポンス:メッセージIDを含む200。配信レポートと照合するために保持してください。
- エラー:トークンが不足しているか無効な場合は、ゲートウェイから401が返されます。APIエラーの場合は、status、error、message、errorCode、requestUriが返されます。
- 唯一の公式SDK: TypeScript/Node.js用の @broadnet/cpaas-sdk。OpenAPI仕様から他の言語用のクライアントを生成できます。
送信前に必要なものは?
- BroadNetアカウントのアクセストークンです。環境変数(以下のBROADNET_TOKEN)に保存し、ソースコードやモバイルアプリには決して含めないでください。
- 送信先の国で許可されている送信元ID。国によっては事前の登録が必要です。
- 国際形式の宛先番号。例:447700900123(架空の英国番号)。
テストアクセスは当社のエンジニアが提供します。テストアクセスを申し込むと、1営業日以内にテスト用認証情報が発行され、通常はその約5分後に最初のテストメッセージが送信されます。詳細は クイックスタート をご覧ください。
リクエストの形式は?
cURLを含むリクエストの例です。以下のすべての例では、同じJSONボディを送信します。
curl -X POST https://api.broadnet.me/sms/sendSms \ -H "Authorization: Bearer $BROADNET_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT" }' # 200 OK → response body is the message ID, e.g. 2603121407537573731Pythonを使用してSMSを送信するにはどうすればよいですか?
requestsライブラリを使用すると、json=引数がContent-Typeヘッダーを自動的に設定します。
import os, requests r = requests.post( "https://api.broadnet.me/sms/sendSms", headers={"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"}, json={ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT", },) print(r.status_code, r.text) # message IDPHPを使用してSMSを送信するにはどうすればよいですか?
PHPのcurl拡張機能で十分です。パッケージは必要ありません。
<?php$ch = curl_init("https://api.broadnet.me/sms/sendSms");curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer " . getenv("BROADNET_TOKEN"), "Content-Type: application/json", ], CURLOPT_POSTFIELDS => json_encode([ "senderId" => "BroadNet", "destinationNumber" => "447700900123", "message" => "Your verification code is 482913", "messageType" => "TEXT", ]),]); $messageId = curl_exec($ch);echo $messageId;Node.jsを使用してSMSを送信するにはどうすればよいですか?
Node.js 18以降にはfetchが組み込まれています。
// Node.js 18+ (fetch)const res = await fetch("https://api.broadnet.me/sms/sendSms", { method: "POST", headers: { Authorization: `Bearer ${process.env.BROADNET_TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify({ senderId: "BroadNet", destinationNumber: "447700900123", message: "Your verification code is 482913", messageType: "TEXT", }),}); console.log(await res.text()); // message IDまたは、公式のTypeScript/Node.js SDKである@broadnet/cpaas-sdkを使用してください。
// npm install @broadnet/cpaas-sdk axiosimport { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk"; const sms = new SMSSMSApi( new Configuration({ basePath: "https://api.broadnet.me", accessToken: process.env.BROADNET_TOKEN!, }),); const res = await sms.smsSendsmsPost({ sMSSmsRequest: { senderId: "BroadNet", destinationNumber: "447700900123", message: "Your verification code is 482913", messageType: "TEXT", },}); console.log(res.data); // message IDJavaを使用してSMSを送信するにはどうすればよいですか?
Java 11以降にはjava.net.http.HttpClientが含まれています:
// Java 11+ — java.net.http is built in, nothing to installimport java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse; public class SendSms { public static void main(String[] args) throws Exception { String json = "{" + "\"senderId\": \"BroadNet\", " + "\"destinationNumber\": \"447700900123\", " + "\"message\": \"Your verification code is 482913\", " + "\"messageType\": \"TEXT\"" + "}"; HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.broadnet.me/sms/sendSms")) .header("Authorization", "Bearer " + System.getenv("BROADNET_TOKEN")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(json)) .build(); HttpResponse<String> res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); System.out.println(res.statusCode() + " " + res.body()); // 200 + message ID }}Goを使用してSMSを送信する方法は?
package main import ( "bytes" "fmt" "io" "net/http" "os") func main() { body := []byte(`{ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT" }`) req, err := http.NewRequest(http.MethodPost, "https://api.broadnet.me/sms/sendSms", bytes.NewReader(body)) if err != nil { panic(err) } req.Header.Set("Authorization", "Bearer "+os.Getenv("BROADNET_TOKEN")) req.Header.Set("Content-Type", "application/json") res, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer res.Body.Close() id, _ := io.ReadAll(res.Body) fmt.Println(res.StatusCode, string(id)) // 200 + message ID}C#と.NETを使用してSMSを送信する方法は?
.NET 6以降ではNuGetパッケージは不要です。HttpClientとSystem.Net.Http.Jsonが組み込まれています。
// .NET 6+ console app (Program.cs) — HttpClient is built in, no NuGet packageusing System;using System.Net.Http;using System.Net.Http.Headers;using System.Net.Http.Json; using var http = new HttpClient();http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", Environment.GetEnvironmentVariable("BROADNET_TOKEN")); // PostAsJsonAsync sends Content-Type: application/jsonvar res = await http.PostAsJsonAsync("https://api.broadnet.me/sms/sendSms", new{ senderId = "BroadNet", destinationNumber = "447700900123", message = "Your verification code is 482913", messageType = "TEXT",}); var id = await res.Content.ReadAsStringAsync();Console.WriteLine($"{(int)res.StatusCode} {id}"); // 200 + message ID返却される値とエラーハンドリングの方法は?
| レスポンス | 意味 | 対処方法 |
|---|---|---|
| 200 +メッセージID | 配信受付済み | IDを自社レコードに保存し、DLRを待機してください |
| 400 | バリデーションエラーまたは必須項目の不足 | リクエストを修正してください。内容を変更せずに再試行しないでください |
| 401 | Bearerトークンが不足しているか、無効です | トークンとAuthorizationヘッダーを確認してください |
| 500 | 予期しないサーバーエラーが発生しました | バックオフを用いて再試行してください。再送前にメッセージステータスを確認してください |
200はプラットフォームがメッセージを受理したことを意味し、端末が受信したことを意味するものではありません。配信状況は配信レポートで確認できます。DLRとは何かおよびSMSの配信レポートとエラーコードを参照してください。APIにはべき等性ヘッダーがないため、重複を避けるために、返されたメッセージIDを保持し、再送前にそのステータスを確認してください。その他の詳細はエラーコードのページに記載されています。
本番環境への移行にはどうすればよいですか?
- トークンはサーバーサイドで管理してください。トークンが抽出される可能性があるブラウザやモバイルアプリから、直接SMS APIを呼び出すことは避け、独自のバックエンドから呼び出すようにしてください。
- 長いメッセージの送信について:GSM-7では、1 SMSあたり160文字、Unicode (UCS-2)では70文字が上限となり、これを超えるテキストは課金対象のセグメントに分割されます。SMSの文字数制限を参照してください。
- SMS一斉送信をキューに入れ、アカウントのスループットを遵守してください。詳細はレート制限をご確認ください。
- Webhookで配信レポートを受信し、最終ステータスを保存します。
- まず番号を国際形式に検証してください。E.164電話番号検証をご参照ください。
非常に大量の送信を行う場合や、既存の通信スタックをお持ちの場合は、RESTよりもSMPPが適している場合があります。SMPP vs RESTをご覧ください。BroadNetのプラットフォームは、1ノードあたり毎秒30,000件のSMSを処理できます。
よくある質問
コードからSMSを送信する最も簡単な方法は何ですか?
アクセストークンとJSONボディを使用して、SMS APIに1回のHTTPS POSTリクエストを送信します。BroadNetの場合、それはsenderId、destinationNumber、メッセージ、およびmessageTypeを含むhttps://api.broadnet.me/sms/sendSmsのPOSTです。
Python、PHP、またはJava用のBroadNet SDKはありますか?
いいえ。TypeScriptおよびNode.js向けに、公式SDKである@broadnet/cpaas-sdkが1つ提供されています。他の言語では、こちらに示すようにREST APIを直接呼び出すか、OpenAPI仕様からクライアントを生成してください。
電話番号の形式はどうすればよいですか?
国番号を含む国際形式で、プラス記号やスペースは含めないでください。例:447700900123。
200レスポンスは、SMSが配信されたことを意味しますか?
いいえ。それはメッセージが受理されたことを意味します。配信レポート(DLR)によって、端末に届いたかどうかが報告されます。
AndroidまたはiOSアプリから直接SMSを送信できますか?
安全ではありません。アクセストークンがアプリ内に含まれないよう、APIの呼び出しはサーバー側で行い、アプリからそのサーバーを呼び出すようにしてください。
APIの完全なリファレンスはどこにありますか?
APIリファレンスおよびOpenAPI仕様書にあります。
コードサンプルは、公開されているOpenAPI仕様書に照らして検証された、当社のデベロッパーページ上のものです。2026年9月28日レビュー済み。当社の編集基準をご覧ください。
