m einen SMS per Code zu senden, führen Sie einen HTTPS POST an https://api.broadnet.me/sms/sendSms mit einem Authorization: Bearer-Header und einem JSON-Body aus, der senderId, destinationNumber, die Nachricht und messageType enthält. Ein erfolgreicher Aufruf liefert HTTP 200 mit der Nachrichten-ID als Response-Body zurück; das Zustellergebnis trifft später als Zustellungsbericht (DLR) in Ihrem Webhook ein. Jede unten aufgeführte Sprache verwendet ausschließlich ihre Standard-HTTP-Bibliothek; die einzige offizielle SDK ist für TypeScript und Node.js vorgesehen.
Wichtigste Erkenntnisse
- Endpunkt: POST https://api.broadnet.me/sms/sendSms, JSON Body, Bearer-Token.
- Pflichtfelder: senderId, destinationNumber (internationales Format ohne Pluszeichen), Nachricht, messageType (TEXT).
- Response: 200 mit der Nachrichten-ID; bewahren Sie diese auf, um sie mit den Zustellungsberichten abzugleichen.
- Fehler: Ein fehlendes oder ungültiges Token führt zu einem 401 vom Gateway; API-Fehler liefern Status, Error, Message, errorCode und requestUri zurück.
- Eine offizielle SDK: @broadnet/cpaas-sdk für TypeScript/Node.js; generieren Sie Clients für andere Sprachen aus der OpenAPI-Spezifikation.
Was benötigen Sie vor dem Versand?
- Ein Zugriffstoken aus Ihrem BroadNet-Konto, das in einer Umgebungsvariablen (unten BROADNET_TOKEN) gespeichert wird, niemals im Quellcode oder in einer mobilen App.
- Eine Absenderkennung, die für das Zielland zugelassen ist; einige Länder erfordern vorab eine Registrierung.
- Eine Zielnummer im internationalen Format, zum Beispiel 447700900123 (eine fiktive britische Nummer).
Testzugänge erhalten Sie von unseren Ingenieuren: Fordern Sie diese an und Sie erhalten die Test-Zugangsdaten innerhalb eines Werktages; die erste Testnachricht wird in der Regel etwa fünf Minuten später versendet. Der Quickstart führt Sie durch den Prozess.
Wie sieht die Anfrage aus?
Hier ist die Anfrage mit cURL. Jedes untenstehende Beispiel sendet denselben JSON-Body.
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. 2603121407537573731Wie sendet man eine SMS mit Python?
Mit der requests-Library setzt das json=-Argument den Content-Type-Header automatisch für Sie.
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 IDWie sendet man eine SMS mit PHP?
Die curl-Erweiterung von PHP ist ausreichend; ein zusätzliches Paket ist nicht erforderlich.
<?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;Wie sendet man eine SMS mit Node.js?
Node.js 18 und neuere Versionen haben fetch integriert:
// 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 IDOder nutzen Sie das offizielle 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 IDWie sendet man eine SMS mit Java?
Java 11 und neuere Versionen beinhalten 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 }}Wie sendet man eine SMS mit Go?
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}Wie sendet man eine SMS mit C# und .NET?
.NET 6 und neuere Versionen benötigen kein NuGet-Paket: HttpClient und System.Net.Http.Json sind integriert.
// .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 IDWas ist die Rückmeldung und wie werden Fehler behandelt?
| Antwort | Bedeutung | Vorgehensweise |
|---|---|---|
| 200 + Nachrichten-ID | Für die Zustellung akzeptiert | Speichern Sie die ID zusammen mit Ihrem eigenen Datensatz; warten Sie auf die DLR |
| 400 | Validierungsfehler oder fehlendes Feld | Anfrage korrigieren; keinen erneuten Versuch mit unveränderten Daten unternehmen |
| 401 | Fehlendes oder ungültiges Bearer-Token | Überprüfen Sie das Token und den Authorization-Header |
| 500 | Unerwarteter Serverfehler | Wiederholung mit Backoff versuchen; prüfen Sie den Nachrichtenstatus vor einem erneuten Senden |
Ein 200-Status bedeutet, dass die Plattform die Nachricht angenommen hat, nicht dass sie das Endgerät erreicht hat. Die Zustellung wird durch den Delivery Receipt gemeldet; lesen Sie was ein DLR ist und SMS Delivery Receipts und Fehlercodes. Die API verfügt über keinen Idempotenz-Header; bewahren Sie daher die zurückgegebene Nachrichten-ID auf und prüfen Sie deren Status vor einem erneuten Senden, um Duplikate zu vermeiden. Die Seite Fehlercodes listet die weiteren Fehler auf.
Wie machen Sie die Lösung bereit für den Produktivbetrieb?
- Speichern Sie das Token serverseitig. Rufen Sie die SMS API niemals von einem Browser oder einer mobilen App aus auf, da das Token dort extrahiert werden könnte; nutzen Sie stattdessen Ihr eigenes Backend.
- Lange Nachrichten bewusst versenden: GSM-7 umfasst 160 Zeichen pro SMS, Unicode (UCS-2) 70 Zeichen, und längere Texte werden in kostenpflichtige Segmente aufgeteilt. Siehe das SMS Zeichenlimit.
- Stellen Sie Massenversand in eine Warteschlange und beachten Sie den Durchsatz Ihres Kontos; lesen Sie die Rate Limits.
- Empfangen Sie Delivery Receipts über einen Webhook und speichern Sie den finalen Status.
- Validieren Sie Nummern zuerst im internationalen Format; siehe E.164 Telefonnummern-Validierung.
Bei sehr hohem Volumen oder einem bestehenden Telecom-Stack eignet sich SMPP unter Umständen besser als REST; siehe SMPP vs. REST. Die Plattform von BroadNet verarbeitet 30.000 SMS pro Sekunde pro Knoten.
Häufig gestellte Fragen
Was ist der einfachste Weg, eine SMS per Code zu versenden?
Ein HTTPS POST an ein SMS API mit einem Access-Token und einem JSON Body. Bei BroadNet ist dies ein POST https://api.broadnet.me/sms/sendSms mit senderId, destinationNumber, der Nachricht und messageType.
Gibt es einen BroadNet SDK für Python, PHP oder Java?
Nein. Es gibt einen offiziellen SDK, @broadnet/cpaas-sdk für TypeScript und Node.js. Andere Sprachen rufen die REST API direkt auf, wie hier gezeigt, oder generieren einen Client aus der OpenAPI-Spezifikation.
In welchem Format sollte die Telefonnummer vorliegen?
Internationales Format mit Ländercode, ohne Pluszeichen oder Leerzeichen, zum Beispiel 447700900123.
Bedeutet eine 200-Antwort, dass die SMS zugestellt wurde?
Nein. Es bedeutet, dass die Nachricht angenommen wurde. Der Zustellbericht (DLR) gibt an, ob sie das Endgerät erreicht hat.
Kann ich SMS direkt von einer Android- oder iOS-App aus senden?
Nicht sicher. Legen Sie den API-Aufruf auf Ihren Server, damit der Access-Token niemals innerhalb der App übertragen wird, und lassen Sie die App Ihren Server aufrufen.
Wo finde ich die vollständige API-Referenz?
In der API-Referenz und im OpenAPI-Spezifikationsdokument.
Code-Beispiele sind diejenigen auf unseren Entwicklerseiten, die gegen die veröffentlichte OpenAPI-Spezifikation geprüft wurden. Überprüft am 28. September 2026. Siehe unsere redaktionellen Standards.
